Refactoring the sdc-BE-init python scripts

Deeper refactoring of python script:
- create the python package with init script
- support for python 3.x
- reuse code
- new design
- support for .json conf file
- update the docker chef script

Issue-ID: SDC-2784
Signed-off-by: Krystian Kedron <k.kedron@partner.samsung.com>
Change-Id: I02169eb7d0e3e90851ba1811536d1712c3b4145f
diff --git a/catalog-be/.gitignore b/catalog-be/.gitignore
index 9ef05f3..ff9fd70 100644
--- a/catalog-be/.gitignore
+++ b/catalog-be/.gitignore
@@ -1 +1,2 @@
-/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/files/default/Artifact-Generator.properties
\ No newline at end of file
+/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/files/default/Artifact-Generator.properties
+!/sdc-backend-init/scripts/**
diff --git a/catalog-be/pom.xml b/catalog-be/pom.xml
index d0a0f95..cbaf209 100644
--- a/catalog-be/pom.xml
+++ b/catalog-be/pom.xml
@@ -1165,6 +1165,27 @@
                   </resources>
                 </configuration>
               </execution>
+              <execution>
+                <id>copy-sdc-be-py</id>
+                <phase>verify</phase>
+                <goals>
+                  <goal>copy-resources</goal>
+                </goals>
+                <configuration>
+                  <outputDirectory>
+                    sdc-backend-init/
+                  </outputDirectory>
+                  <resources>
+                    <resource>
+                      <directory>${project.parent.basedir}/catalog-be/src/main/resources/</directory>
+                      <includes>
+                        <include>scripts/sdcBePy/**</include>
+                        <inculde>scripts/setup.py</inculde>
+                      </includes>
+                    </resource>
+                  </resources>
+                </configuration>
+              </execution>
             </executions>
           </plugin>
           <plugin>
diff --git a/catalog-be/sdc-backend-init/Dockerfile b/catalog-be/sdc-backend-init/Dockerfile
index cb26610..3ffcbe6 100644
--- a/catalog-be/sdc-backend-init/Dockerfile
+++ b/catalog-be/sdc-backend-init/Dockerfile
@@ -1,11 +1,22 @@
-FROM onap/base_sdc-python:1.6.0-SNAPSHOT-latest
+FROM onap/base_sdc-python:1.7.0
 
-COPY --chown=sdc:sdc chef-solo /home/sdc/chef-solo/
+# user/group args are inherited from base_sdc-python base image
+COPY --chown=$user:$group scripts /home/$user/scripts
 
-COPY --chown=sdc:sdc chef-repo/cookbooks /home/sdc/chef-solo/cookbooks/
+RUN chmod 770 -R /home/$user/scripts && \
+    cd /home/$user/scripts && \
+    python setup.py install --user
 
-COPY --chown=sdc:sdc startup.sh /home/sdc/
+ENV PATH=$PATH:/home/$user/.local/bin
 
-RUN chmod 770 /home/sdc/startup.sh
+COPY --chown=$user:$group chef-solo /home/$user/chef-solo/
 
-ENTRYPOINT [ "/home/sdc/startup.sh" ]
+COPY --chown=$user:$group chef-repo/cookbooks /home/$user/chef-solo/cookbooks/
+
+COPY --chown=$user:$group startup.sh /home/$user/
+
+RUN chmod 770 /home/$user/startup.sh
+
+WORKDIR /home/$user/
+
+ENTRYPOINT /home/${user}/startup.sh
diff --git a/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/recipes/1_create_consumer_and_user.rb b/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/recipes/1_create_consumer_and_user.rb
index 97d140a..bf8065b 100644
--- a/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/recipes/1_create_consumer_and_user.rb
+++ b/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/recipes/1_create_consumer_and_user.rb
@@ -1,46 +1,43 @@
 if node['disableHttp']
   protocol = "https"
+  https_flag = "--https"
   be_port = node['BE']['https_port']
 else
   protocol = "http"
+  https_flag = ""
   be_port = node['BE']['http_port']
 end
 
-
-template "/var/tmp/user.py" do
-    source "user.py.erb"
-    sensitive true
-    mode 0755
-    variables({
-      :protocol => protocol,
-      :be_ip => node['Nodes']['BE'],
-      :be_port => be_port
-    })
+if node['BE']['user_conf']
+  user_conf_dir = "--conf " + node['BE']['user_conf']
+else
+  # set default user configuration file
+  user_conf_dir = ""
 end
 
 bash "executing-create_user" do
-   code <<-EOH
-     python /var/tmp/user.py
-     rc=$?
-     if [[ $rc != 0 ]]; then exit $rc; fi
-   EOH
+  code <<-EOH
+    sdcuserinit -i #{node['Nodes']['BE']} -p #{be_port} #{user_conf_dir} #{https_flag}
+    rc=$?
+    if [[ $rc != 0 ]]; then exit $rc; fi
+  EOH
 end
 
 template "/var/tmp/consumers.py" do
-    source "consumers.py.erb"
-    sensitive true
-    mode 0755
-    variables({
-      :protocol => protocol,
-      :be_ip => node['Nodes']['BE'],
-      :be_port => be_port
-    })
+  source "consumers.py.erb"
+  sensitive true
+  mode 0755
+  variables({
+    :protocol => protocol,
+    :be_ip => node['Nodes']['BE'],
+    :be_port => be_port
+  })
 end
 
 bash "executing-consumers" do
-   code <<-EOH
-     python /var/tmp/consumers.py
-     rc=$?
-     if [[ $rc != 0 ]]; then exit $rc; fi
-   EOH
+  code <<-EOH
+    python /var/tmp/consumers.py
+    rc=$?
+    if [[ $rc != 0 ]]; then exit $rc; fi
+  EOH
 end
diff --git a/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/recipes/3_import_Normatives.rb b/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/recipes/3_import_Normatives.rb
index b640b3a..f59d916 100644
--- a/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/recipes/3_import_Normatives.rb
+++ b/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/recipes/3_import_Normatives.rb
@@ -3,7 +3,7 @@
 if node['disableHttp']
   protocol = "https"
   be_port = node['BE']['https_port']
-  param="-i #{be_ip} -p #{be_port} --scheme #{protocol}"
+  param="-i #{be_ip} -p #{be_port} --https"
 else
   protocol = "http"
   be_port = node['BE']['http_port']
@@ -11,38 +11,39 @@
 end
 
 cookbook_file "/var/tmp/normatives.tar.gz" do
-      source "normatives.tar.gz"
-   end
+  source "normatives.tar.gz"
+end
 
 bash "executing-import_Normatives" do
-   code <<-EOH
-     set -x
-     cd /var/tmp
-     tar xvfz /var/tmp/normatives.tar.gz
-     cd /var/tmp/normatives/scripts/import/tosca/
-     /bin/chmod +x *.py
+  code <<-EOH
+    set -ex
 
-     # executing the normatives
-     # add --debug=true to the importNormativeAll.py arguments to enable debug
+    cd /var/tmp/
+    tar -xvf normatives.tar.gz
+    
+    # executing the normatives
+    # add --debug to the importNormativeAll.py arguments to enable debug
+    
+    check_normative="/tmp/check_normative.out"
+    status_code=$(curl -k -s -o ${check_normative} -w "%{http_code}\\n" -X GET -H 'Content-Type: application/json;charset=UTF-8' -H 'USER_ID: jh0003' -H 'X-ECOMP-RequestID: cbe744a0-037b-458f-aab5-df6e543c4090' "#{protocol}://#{be_ip}:#{be_port}/sdc2/rest/v1/screen")
+    if [ "$status_code" != 200 ] ; then
+      exit "$status_code"
+    fi
+    
+    #curl -s -X GET -H "Content-Type: application/json;charset=UTF-8" -H "USER_ID: jh0003" -H "X-ECOMP-RequestID: cbe744a0-037b-458f-aab5-df6e543c4090" "#{protocol}://#{be_ip}:#{be_port}/sdc2/rest/v1/screen" > ${check_normative}
+    
+    resources_len=`cat ${check_normative}| jq '.["resources"]|length'`
+    mkdir -p /var/lib/jetty/logs
 
-     check_normative="/tmp/check_normative.out"
-     status_code=$(curl -k -s -o ${check_normative} -w "%{http_code}\\n" -X GET -H 'Content-Type: application/json;charset=UTF-8' -H 'USER_ID: jh0003' -H 'X-ECOMP-RequestID: cbe744a0-037b-458f-aab5-df6e543c4090' "#{protocol}://#{be_ip}:#{be_port}/sdc2/rest/v1/screen")
-     if [ "$status_code" != 200 ] ; then
-        exit "$status_code"
-     fi
-
-     #curl -s -X GET -H "Content-Type: application/json;charset=UTF-8" -H "USER_ID: jh0003" -H "X-ECOMP-RequestID: cbe744a0-037b-458f-aab5-df6e543c4090" "#{protocol}://#{be_ip}:#{be_port}/sdc2/rest/v1/screen" > ${check_normative}
-
-     resources_len=`cat ${check_normative}| jq '.["resources"]|length'`
-     mkdir -p /var/lib/jetty/logs
-     if [ $resources_len -eq 0 ] ; then
-        python importONAPNormativeAll.py #{param} > /var/lib/jetty/logs/importNormativeAll.log
-            rc=$?
-            if [[ $rc != 0 ]]; then exit $rc; fi
-     else
-        python upgradeONAPNormative.py #{param} > /var/lib/jetty/logs/upgradeNormative.log
-            rc=$?
-            if [[ $rc != 0 ]]; then exit $rc; fi
-     fi
-   EOH
+    cd /var/tmp/normatives/import/tosca/
+    if [ $resources_len -eq 0 ] ; then
+      sdcimportall #{param} > /var/lib/jetty/logs/importNormativeAll.log
+      rc=$?
+      if [[ $rc != 0 ]]; then exit $rc; fi
+    else
+      sdcupgradeall #{param} > /var/lib/jetty/logs/upgradeNormative.log
+      rc=$?
+      if [[ $rc != 0 ]]; then exit $rc; fi
+    fi
+  EOH
 end
diff --git a/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/templates/default/check_Backend_Health.py.erb b/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/templates/default/check_Backend_Health.py.erb
index bcacf88..ebd8ea5 100644
--- a/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/templates/default/check_Backend_Health.py.erb
+++ b/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/templates/default/check_Backend_Health.py.erb
@@ -30,7 +30,7 @@
     proc = subprocess.Popen( command , shell=True , stdout=subprocess.PIPE )
     (out, err) = proc.communicate()
     result = out.strip()
-    return result
+    return str(result, "UTF-8")
 
 ##############################
 #    Main
@@ -39,12 +39,12 @@
 for i in range(1,10):
     myResult = checkBackend()
     if myResult == '200':
-        print '[INFO]: Backend is up and running'
+        print('[INFO]: Backend is up and running')
         beStat=1
         break
     else:
         currentTime = datetime.now()
-        print '[ERROR]: ' + currentTime.strftime('%Y/%m/%d %H:%M:%S') + bcolors.FAIL + ' Backend not responding, try #' + str(i) + bcolors.ENDC
+        print('[ERROR]: ' + currentTime.strftime('%Y/%m/%d %H:%M:%S') + bcolors.FAIL + ' Backend not responding, try #' + str(i) + bcolors.ENDC)
         time.sleep(10)
 
 if beStat == 0:
diff --git a/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/templates/default/consumers.py.erb b/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/templates/default/consumers.py.erb
index b09b719..02ca9a8 100644
--- a/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/templates/default/consumers.py.erb
+++ b/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/templates/default/consumers.py.erb
@@ -28,7 +28,7 @@
     proc = subprocess.Popen( command , shell=True , stdout=subprocess.PIPE )
     (out, err) = proc.communicate()
     result = out.strip()
-    return result
+    return str(result, "UTF-8")
 
 
 def checkConsumer(consumerName):
@@ -37,18 +37,18 @@
     proc = subprocess.Popen( command , shell=True , stdout=subprocess.PIPE )
     (out, err) = proc.communicate()
     result = out.strip()
-    return result
+    return str(result, "UTF-8")
 
 
 def createConsumer( consumerName, consumerSalt, consumerPass ):
-    print '[INFO] ' + consumerName
+    print('[INFO] ' + consumerName)
     command="curl -k -s -o /dev/null -w \"%{http_code}\" -X POST -i -H \"Accept: application/json; charset=UTF-8\" -H \"Content-Type: application/json\" -H \"USER_ID: jh0003\" "+PROTOCOL+"://"  + BE_IP  + ":" + BE_PORT + "/sdc2/rest/v1/consumers/ -d '{\"consumerName\": '" + consumerName + "', \"consumerSalt\": '" + consumerSalt + "',\"consumerPassword\": '" + consumerPass + "'}'"
 
     proc = subprocess.Popen( command , shell=True , stdout=subprocess.PIPE)
 
     (out, err) = proc.communicate()
     result = out.strip()
-    return result
+    return str(result, "UTF-8")
 
 
 
@@ -69,25 +69,25 @@
 for i in range(1,10):
     myResult = checkBackend()
     if myResult == '200':
-        print '[INFO]: Backend is up and running'
+        print('[INFO]: Backend is up and running')
         beStat=1
         break
     else:
         currentTime = datetime.now()
-        print '[ERROR]: ' + currentTime.strftime('%Y/%m/%d %H:%M:%S') + bcolors.FAIL + ' Backend not responding, try #' + str(i) + bcolors.ENDC
+        print('[ERROR]: ' + currentTime.strftime('%Y/%m/%d %H:%M:%S') + bcolors.FAIL + ' Backend not responding, try #' + str(i) + bcolors.ENDC)
         time.sleep(10)
 
 if beStat == 0:
-    print '[ERROR]: ' + time.strftime('%Y/%m/%d %H:%M:%S') + bcolors.FAIL + 'Backend is DOWN :-(' + bcolors.ENDC
+    print('[ERROR]: ' + time.strftime('%Y/%m/%d %H:%M:%S') + bcolors.FAIL + 'Backend is DOWN :-(' + bcolors.ENDC)
     exit()
 
 for consumer in consumersList:
     myResult = checkConsumer(consumer)
     if myResult == '200':
-        print '[INFO]: ' + consumer + ' already exists'
+        print('[INFO]: ' + consumer + ' already exists')
     else:
         myResult = createConsumer( consumer, salt, password )
         if myResult == '201':
-            print '[INFO]: ' + consumer + ' created, result: [' + myResult + ']'
+            print('[INFO]: ' + consumer + ' created, result: [' + myResult + ']')
         else:
-            print '[ERROR]: ' + bcolors.FAIL + consumer + bcolors.ENDC + ' error creating , result: [' + myResult + ']'
+            print('[ERROR]: ' + bcolors.FAIL + consumer + bcolors.ENDC + ' error creating , result: [' + myResult + ']')
diff --git a/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/templates/default/user.py.erb b/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/templates/default/user.py.erb
deleted file mode 100644
index c2f267b..0000000
--- a/catalog-be/sdc-backend-init/chef-repo/cookbooks/sdc-catalog-be-setup/templates/default/user.py.erb
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/python
-import subprocess
-#from time import sleep
-import time
-from datetime import datetime
-
-BE_IP="<%= @be_ip %>"
-BE_PORT="<%= @be_port %>"
-PROTOCOL="<%= @protocol %>"
-
-class bcolors:
-    HEADER    = '\033[95m'
-    OKBLUE    = '\033[94m'
-    OKGREEN   = '\033[92m'
-    WARNING   = '\033[93m'
-    FAIL      = '\033[91m'
-    ENDC      = '\033[0m'
-    BOLD      = '\033[1m'
-    UNDERLINE = '\033[4m'
-
-
-##############################
-#    Functions
-##############################
-def checkBackend():
-    command="curl -k -s -o /dev/null -I -w \"%{http_code}\" -i -H \"Accept: application/json; charset=UTF-8\" -H \"Content-Type: application/json\" -H \"USER_ID: jh0003\" "+PROTOCOL+"://" + BE_IP + ":" + BE_PORT + "/sdc2/rest/v1/user/jh0003"
-
-    proc = subprocess.Popen( command , shell=True , stdout=subprocess.PIPE )
-    (out, err) = proc.communicate()
-    result = out.strip()
-    return result
-
-
-def checkUser(userName):
-    command="curl -k -s -o /dev/null -I -w \"%{http_code}\" -i -H \"Accept: application/json; charset=UTF-8\" -H \"Content-Type: application/json\" -H \"USER_ID: jh0003\" "+PROTOCOL+"://" + BE_IP + ":" + BE_PORT + "/sdc2/rest/v1/user/" + userName
-
-    proc = subprocess.Popen( command , shell=True , stdout=subprocess.PIPE )
-    (out, err) = proc.communicate()
-    result = out.strip()
-    return result
-
-
-
-
-def createUser( firstName, lastName, userId , email_dom , role ):
-    print '[INFO] create first:[' + firstName + '], last:[' + lastName + '], Id:[' + userId + '], email:[' + userId + '@' + email_dom + '], role:[' + role +']'
-    command="curl -k -s -o /dev/null -w \"%{http_code}\" -X POST -i -H \"Accept: application/json; charset=UTF-8\" -H \"Content-Type: application/json\" -H \"USER_ID: jh0003\" "+PROTOCOL+"://" + BE_IP + ":" + BE_PORT + "/sdc2/rest/v1/user/ -d '{\"firstName\": \"" + firstName + "\", \"lastName\": \"" + lastName + "\",\"userId\": \"" + userId + "\",\"email\": \"" + userId + "@" + email_dom + "\",\"role\": \"" + role + "\"}'"
-
-    proc = subprocess.Popen( command , shell=True , stdout=subprocess.PIPE)
-    (out, err) = proc.communicate()
-    result = out.strip()
-    return result
-
-
-
-
-##############################
-#    Definitions
-##############################
-userId    = [ "demo" , "op0001" , "gv0001" , "jh0003" , "jm0007" , "cs0008" ]
-firstName = [ "demo" , "Oper" , "Giuseppe" , "Jimmy" , "Joni" , "Carlos" ]
-lastName  = [ "demo" , "P" , "Verdi" , "Hendrix" , "Mitchell" , "Santana" ]
-role      = [ "ADMIN" , "OPS" , "GOVERNOR" , "ADMIN" , "TESTER" , "DESIGNER" ]
-email_dom = "openecomp.org"
-beStat=0
-
-
-##############################
-#    Main
-##############################
-
-for i in range(1,10):
-    myResult = checkBackend()
-    if myResult == '200':
-        print '[INFO]: Backend is up and running'
-        beStat=1
-        break
-    else:
-        currentTime = datetime.now()
-        print '[ERROR]: ' + currentTime.strftime('%Y/%m/%d %H:%M:%S') + bcolors.FAIL + ' Backend not responding, try #' + str(i) + bcolors.ENDC
-        time.sleep(10)
-
-if beStat == 0:
-    print '[ERROR]: ' + time.strftime('%Y/%m/%d %H:%M:%S') + bcolors.FAIL + 'Backend is DOWN :-(' + bcolors.ENDC
-    exit()
-
-for user in userId:
-    myResult = checkUser(user)
-    pos = userId.index(user)
-    if myResult == '200':
-        print '[INFO]: ' + user + ' already exists'
-    else:
-        myResult = createUser( firstName[pos], lastName[pos], userId[pos], email_dom, role[pos] )
-        if myResult == '201':
-            print '[INFO]: ' + userId[pos] + ' created, result: [' + myResult + ']'
-        else:
-            print '[ERROR]: ' + bcolors.FAIL + userId[pos] + bcolors.ENDC + ' error creating , result: [' + myResult + ']'
diff --git a/catalog-be/sdc-backend-init/startup.sh b/catalog-be/sdc-backend-init/startup.sh
index a379677..83bfbf2 100644
--- a/catalog-be/sdc-backend-init/startup.sh
+++ b/catalog-be/sdc-backend-init/startup.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-cd /home/sdc/chef-solo || exit $?
+cd /home/"${user}"/chef-solo || exit $?
 chef-solo -c solo.rb -E "${ENVNAME}"
 rc=$?
 if [ $rc != 0 ]; then exit $rc; fi
diff --git a/catalog-be/src/main/assembly/normatives.xml b/catalog-be/src/main/assembly/normatives.xml
index 0598672..03ad2f8 100644
--- a/catalog-be/src/main/assembly/normatives.xml
+++ b/catalog-be/src/main/assembly/normatives.xml
@@ -10,9 +10,9 @@
 		<directory>src/main/resources/import</directory>
         <outputDirectory>import</outputDirectory>
 	</fileSet>
-	<fileSet>
-		<directory>src/main/resources/scripts</directory>
-        <outputDirectory>scripts</outputDirectory>
-	</fileSet>
+<!--	<fileSet>-->
+<!--		<directory>src/main/resources/scripts</directory>-->
+<!--        <outputDirectory>scripts</outputDirectory>-->
+<!--	</fileSet>-->
   </fileSets>
 </assembly>
diff --git a/catalog-be/src/main/resources/scripts/.gitignore b/catalog-be/src/main/resources/scripts/.gitignore
new file mode 100644
index 0000000..be20bef
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/.gitignore
@@ -0,0 +1,132 @@
+# Created by .ignore support plugin (hsz.mobi)
+### Python template
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+pip-wheel-metadata/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+#  Usually these files are written by a python script from a template
+#  before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+.python-version
+
+# pipenv
+#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+#   However, in case of collaboration, if having platform-specific dependencies or dependencies
+#   having no cross-platform support, pipenv may install dependencies that don't work, or not
+#   install all needed dependencies.
+#Pipfile.lock
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importAnnotationTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importAnnotationTypes.py
deleted file mode 100644
index 5f0d4ad..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importAnnotationTypes.py
+++ /dev/null
@@ -1,35 +0,0 @@
-import sys
-
-from importCommon import parse_cmd_line_params
-from importNormativeElements import import_element
-
-IMPORT_ANNOTATION_URL = "/sdc2/rest/v1/catalog/uploadType/annotationtypes"
-ANNOTATION_FILE_PATH = "../../../import/tosca/annotation-types/"
-ANNOTATION_ZIP_FILE = "annotationTypesZip"
-ANNOTATION_ELEMENT_NAME = "annotationTypes"
-
-#####################################################################################################################################################################################
-#																																		       										#
-# Import tosca data types																										   													#
-# 																																			   										#
-# activation :																																   										#
-#       python importAnnotaionTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]  #
-#																																		  	   										#
-# shortest activation (be host = localhost, be port = 8080): 																				   										#
-#		python importAnnotaionTypes.py [-f <input file> | --ifile=<input file> ]												 				           							#
-#																																		       										#
-#####################################################################################################################################################################################
-
-
-def import_annotation_types(scheme, be_host, be_port, admin_user, exit_on_success):
-    import_element(scheme, be_host, be_port, admin_user, exit_on_success, ANNOTATION_FILE_PATH, IMPORT_ANNOTATION_URL,
-                   ANNOTATION_ELEMENT_NAME, ANNOTATION_ZIP_FILE)
-
-
-def main(argv):
-    scheme, be_host, be_port, admin_user = parse_cmd_line_params(argv)
-    import_annotation_types(scheme, be_host, be_port, admin_user, True)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importCategoryTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importCategoryTypes.py
deleted file mode 100644
index cb361c6..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importCategoryTypes.py
+++ /dev/null
@@ -1,75 +0,0 @@
-from importCommon import *
-from importNormativeElements import createNormativeElement
-
-
-#########################################################################################################################################################################################
-#																																		       											#
-# Import categoriy types																										   														#
-# 																																			   											#
-# activation :																																   											#
-#       python importCategoryTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]   #
-#																																		  	   											#
-# shortest activation (be host = localhost, be port = 8080): 																				   											#
-#		python importCategoryTypes.py [-f <input file> | --ifile=<input file> ]												 				           									#
-#																																		       											#
-#########################################################################################################################################################################################
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ]'
-
-
-def importCategories(scheme, be_host, be_port, admin_user, exit_on_success, file_dir):
-    result = createNormativeElement(scheme, be_host, be_port, admin_user, file_dir,
-                                    "/sdc2/rest/v1/catalog/uploadType/categories", "categoryTypes", "categoriesZip")
-
-    print_frame_line()
-    print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    if result[1] is None or result[1] not in [200, 201, 409]:
-        error_and_exit(1, None)
-    else:
-        if exit_on_success is True:
-            error_and_exit(0, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:h:s:", ["ip=", "port=", "user=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    importCategories(scheme, be_host, be_port, admin_user, True, "../../../import/tosca/categories/")
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importCommon.py b/catalog-be/src/main/resources/scripts/import/tosca/importCommon.py
deleted file mode 100644
index 6f976d0..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importCommon.py
+++ /dev/null
@@ -1,90 +0,0 @@
-import getopt
-import sys
-
-###############################################################################################################
-#
-#
-###############################################################################################################
-
-debugFlag = True
-
-
-def join_strings(lst):
-    concat = ""
-    for string in lst:
-        if string is not None:
-            if type(string) == int:
-                string = str(string)
-            concat += (string + " ")
-    return concat
-
-
-def debug(desc, *args):
-    if debugFlag:
-        print desc, join_strings(args)
-
-
-def is_debug():
-    return debugFlag
-
-
-def log(desc, arg=None):
-    print desc, arg
-
-
-def error_and_exit(error_code, error_desc):
-    if error_code > 0:
-        print "status={0}. {1}".format(error_code, '' if error_desc is None else error_desc)
-    else:
-        print "status={0}".format(error_code)
-    sys.exit(error_code)
-
-
-def print_name_and_return_code(name, code):
-    print "{0:30} | {1:6}".format(name, code)
-
-
-def print_frame_line():
-    print "----------------------------------------"
-
-
-def parse_cmd_line_params(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:h:s:", ["ip=", "port=", "user=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-    return scheme, be_host, be_port, admin_user
-
-
-def usage():
-    print sys.argv[
-        0], '[optional -s <scheme> | --scheme=<scheme>, default http ] [-i <be host> | --ip=<be host>] [-p <be port> ' \
-            '| --port=<be port> ] [-u <user userId> | --user=<user userId> ] '
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importDataTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importDataTypes.py
deleted file mode 100644
index c37fc87..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importDataTypes.py
+++ /dev/null
@@ -1,76 +0,0 @@
-from importCommon import *
-from importNormativeElements import createNormativeElement
-
-
-#####################################################################################################################################################################################
-#																																		       										#
-# Import tosca data types																										   													#
-# 																																			   										#
-# activation :																																   										#
-#       python importDataTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ] 	#
-#																																		  	   										#
-# shortest activation (be host = localhost, be port = 8080): 																				   										#
-#		python importDataTypes.py [-f <input file> | --ifile=<input file> ]												 				           									#
-#																																		       										#
-#####################################################################################################################################################################################
-
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ]'
-
-
-def importDataTypes(scheme, be_host, be_port, admin_user, exit_on_success, file_dir):
-    result = createNormativeElement(scheme, be_host, be_port, admin_user, file_dir, "/sdc2/rest/v1/catalog/uploadType/datatypes", "dataTypes", "dataTypesZip")
-
-    print_frame_line()
-    print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    if result[1] is None or result[1] not in [200, 201, 409]:
-        error_and_exit(1, None)
-    else:
-        if exit_on_success is True:
-            error_and_exit(0, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:h:s:", ["ip=", "port=", "user=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-    #print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    importDataTypes(scheme, be_host, be_port, admin_user, True, "../../../import/tosca/data-types/")
-
-
-if __name__ == "__main__":
-        main(sys.argv[1:])
-
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importGroupTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importGroupTypes.py
deleted file mode 100644
index 7db6033..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importGroupTypes.py
+++ /dev/null
@@ -1,75 +0,0 @@
-from importCommon import *
-from importNormativeElements import createNormativeElement
-
-
-#####################################################################################################################################################################################
-#																																		       										#
-# Import tosca data types																										   													#
-# 																																			   										#
-# activation :																																   										#
-#       python importGroupTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]  #
-#																																		  	   										#
-# shortest activation (be host = localhost, be port = 8080): 																				   										#
-#		python importGroupTypes.py [-f <input file> | --ifile=<input file> ]												 				           								#
-#																																		       										#
-#####################################################################################################################################################################################
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ]'
-
-
-def importGroupTypes(scheme, be_host, be_port, admin_user, exit_on_success, file_dir):
-    result = createNormativeElement(scheme, be_host, be_port, admin_user, file_dir,
-                                    "/sdc2/rest/v1/catalog/uploadType/grouptypes", "groupTypes", "groupTypesZip", True)
-
-    print_frame_line()
-    print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    if result[1] is None or result[1] not in [200, 201, 409]:
-        error_and_exit(1, None)
-    else:
-        if exit_on_success:
-            error_and_exit(0, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:h:s:", ["ip=", "port=", "user=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    importGroupTypes(scheme, be_host, be_port, admin_user, True, "../../../import/tosca/group-types/")
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
deleted file mode 100644
index 92b8634..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
+++ /dev/null
@@ -1,137 +0,0 @@
-from importNormativeTypes import *
-
-
-#####################################################################################################################################################################################
-#																																		       										#
-# Import heat types																										   															#
-# 																																			   										#
-# activation :																																   										#
-#       python importHeatTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]	#
-#																																		  	   										#
-# shortest activation (be host = localhost, be port = 8080): 																				   										#
-#		python importHeatTypes.py [-f <input file> | --ifile=<input file> ]												 				           									#
-#																																		       										#
-#####################################################################################################################################################################################
-
-def importHeatTypes(scheme, be_host, be_port, admin_user, file_dir, update_version):
-    heat_types = ["globalNetwork",
-                  "globalPort",
-                  "globalCompute",
-                  "volume",
-                  "cinderVolume",
-                  "contrailVirtualNetwork",
-                  "neutronNet",
-                  "neutronPort",
-                  "novaServer",
-                  "extVl",
-                  "internalVl",
-                  "extCp",
-                  "vl",
-                  "eline",
-                  "abstractSubstitute",
-                  "Generic_VFC",
-                  "Generic_VF",
-                  "Generic_CR",
-                  "Generic_PNF",
-                  "Generic_Service",
-                  "contrailNetworkRules",
-                  "contrailPort",
-                  "portMirroring",
-                  "serviceProxy",
-                  "contrailV2NetworkRules",
-                  "contrailV2VirtualNetwork",
-                  "securityRules",
-                  "contrailAbstractSubstitute",
-                  "contrailCompute",
-                  "contrailV2VirtualMachineInterface",
-                  "subInterface",
-                  "contrailV2VLANSubInterface",
-                  "multiFlavorVFC",
-                  "vnfConfiguration",
-                  "extCp2",
-                  "extNeutronCP",
-                  "extContrailCP",
-                  "portMirroringByPolicy",
-                  "forwardingPath",
-                  "configuration",
-                  "VRFObject",
-                  "extVirtualMachineInterfaceCP",
-                  "VLANNetworkReceptor",
-                  "VRFEntry",
-                  "subInterfaceV2",
-                  "contrailV2VLANSubInterfaceV2",
-                  "fabricConfiguration"]
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    results = []
-    for heat_type in heat_types:
-        result = createNormativeType(scheme, be_host, be_port, admin_user, file_dir, heat_type, update_version)
-        results.append(result)
-        if result[1] is None or result[1] not in response_codes:
-            print "Failed creating heat type " + heat_type + ". " + str(result[1])
-    return results
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    update_version = 'true'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:v:h:s:", ["ip=", "port=", "user=", "updateversion=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-v", "--updateversion"):
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    results = importHeatTypes(scheme, be_host, be_port, admin_user, "../../../import/tosca/heat-types/", update_version)
-
-    print "-----------------------------"
-    for result in results:
-        print "{0:20} | {1:6}".format(result[0], result[1])
-    print "-----------------------------"
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_normatives = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_normatives)) > 0:
-        error_and_exit(1, None)
-    else:
-        error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNfvTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importNfvTypes.py
deleted file mode 100644
index ed68695..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNfvTypes.py
+++ /dev/null
@@ -1,115 +0,0 @@
-from importNormativeTypes import *
-
-
-#####################################################################################################################################################################################################
-#																																		       														#
-# Import Nfv Types from a given file																										   														#
-# 																																			   														#
-# activation :																																   														#
-#       python importNfvTypes.py [optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ] #
-#																																		  	  														#
-# shortest activation (be host = localhost, be port = 8080): 																				   														#
-#		python importUsers.py [-f <input file> | --ifile=<input file> ]												 				           														#
-#																																		       														#
-#####################################################################################################################################################################################################
-
-def importNfvTypes(scheme, be_host, be_port, admin_user, file_dir, update_version):
-    nfv_types = ["underlayVpn",
-                 "overlayTunnel",
-                 "genericNeutronNet",
-                 "allottedResource",
-                 "extImageFile",
-                 "extLocalStorage",
-                 "extZteCP",
-                 "extZteVDU",
-                 "extZteVL",
-                 "NSD",
-                 "VDU",
-                 "vduCompute",
-                 "Cp",
-                 "vduVirtualStorage",
-                 "vduVirtualBlockStorage",
-                 "vduVirtualFileStorage",
-                 "vduVirtualObjectStorage",
-                 "vduVirtualStorage",
-                 "vnfVirtualLink",
-                 "vnfExtCp",
-                 "vduCp",
-                 "VNF",
-                 "PonUni",
-                 "OltNni",
-                 "OntNni"]
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    results = []
-    for nfv_type in nfv_types:
-        result = createNormativeType(scheme, be_host, be_port, admin_user, file_dir, nfv_type, update_version)
-        results.append(result)
-        if result[1] is None or result[1] not in response_codes:
-            print "Failed creating heat type " + nfv_type + ". " + str(result[1])
-    return results
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    update_version = 'true'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:v:h:", ["ip=", "port=", "user=", "updateversion="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-v", "--updateversion"):
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    results = importNfvTypes(scheme, be_host, be_port, admin_user, "../../../import/tosca/nfv-types/", update_version)
-
-    print "-----------------------------"
-    for result in results:
-        print "{0:20} | {1:6}".format(result[0], result[1])
-    print "-----------------------------"
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_normatives = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_normatives)) > 0:
-        error_and_exit(1, None)
-    else:
-        error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNodeType.py b/catalog-be/src/main/resources/scripts/import/tosca/importNodeType.py
deleted file mode 100644
index 5552199..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNodeType.py
+++ /dev/null
@@ -1,170 +0,0 @@
-import json
-import os
-import zipfile
-from StringIO import StringIO
-
-import pycurl
-
-import importCommon
-from importCommon import *
-
-
-################################################################################################################################################
-#																																		       #	
-################################################################################################################################################
-
-
-def createZipFromYml(ymlFile, zipFile):
-    zip = zipfile.ZipFile(zipFile, 'w', zipfile.ZIP_DEFLATED)
-
-    zip.write(ymlFile, os.path.basename(ymlFile))
-    zip.close()
-
-
-def createUserNormativeType(scheme, be_host, be_port, admin_user, file_dir, element_name):
-    try:
-        log("in create normative type ", element_name)
-        debug("userId", admin_user)
-        debug("fileDir", file_dir)
-
-        _buffer = StringIO()
-        c = pycurl.Curl()
-
-        url = scheme + '://' + be_host + ':' + be_port + '/sdc2/rest/v1/catalog/upload/multipart'
-        c.setopt(c.URL, url)
-        c.setopt(c.POST, 1)
-
-        admin_header = 'USER_ID: ' + admin_user
-        # c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json', adminHeader])
-        c.setopt(pycurl.HTTPHEADER, [admin_header])
-
-        ymlFile = file_dir + element_name + "/normative-types-new-" + element_name + ".yml"
-        zipFile = file_dir + element_name + "/normative-types-new-" + element_name + ".zip"
-        debug(ymlFile)
-        debug(zipFile)
-        path = zipFile
-        debug("path=" + path)
-        current_json_file = file_dir + element_name + "/" + element_name + ".json"
-        debug(current_json_file)
-        json_file = open(current_json_file)
-
-        debug("before load json")
-        json_data = json.load(json_file, strict=False)
-        debug(json_data)
-
-        json_as_str = json.dumps(json_data)
-        debug(path)
-        send = [('resourceMetadata', json_as_str), ('resourceZip', (pycurl.FORM_FILE, path))]
-        debug(send)
-        c.setopt(pycurl.HTTPPOST, send)
-
-        c.setopt(c.WRITEFUNCTION, _buffer.write)
-        if scheme == 'https':
-            c.setopt(pycurl.SSL_VERIFYPEER, 0)
-            c.setopt(pycurl.SSL_VERIFYHOST, 0)
-
-        c.perform()
-
-        # print("Before get response code")
-        http_res = c.getinfo(c.RESPONSE_CODE)
-        if http_res is not None:
-            debug("http response=", http_res)
-        # print('Status: ' + str(responseCode))
-        debug(_buffer.getvalue())
-        c.close()
-
-        return element_name, http_res, _buffer.getvalue()
-
-    except Exception as inst:
-        print("ERROR=" + str(inst))
-        return element_name, None, None
-
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-l <directory base location> | --location=<directory base location>] [-e <element name> | --element=<element name>]'
-    print "----------------- Example -------------------"
-    print "python importNodeType.py -d false -l  /home/vagrant/catalog-be-1604.0.2.15.6-SNAPSHOT/scripts/import/tosca/../../../import/tosca/user-normative-types/ -e root1"
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    debug_f = None
-    location = None
-    element = None
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:d:l:e:h:s:",
-                                   ["ip=", "port=", "user=", "location=", "element=", "debug=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-l", "--location"):
-            location = arg
-        elif opt in ("-e", "--element"):
-            element = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-d", "--debug"):
-            print arg
-            debug_f = bool(arg.lower() == "true" or arg.lower() == "yes")
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    if debug_f is not None:
-        print 'set debug mode to ' + str(debug_f)
-        importCommon.debugFlag = debug_f
-
-    if location is None:
-        print 'Missing file location'
-        usage()
-        sys.exit(3)
-
-    if element is None:
-        print 'Missing element name. E.g. root, compute, ...'
-        usage()
-        sys.exit(3)
-
-    # pathdir = os.path.dirname(os.path.realpath(sys.argv[0]))
-
-    # baseFileLocation = pathdir + "/../../../import/tosca/"
-    # fileDir = baseFileLocation + "user-normative-types/"
-
-    # normativeType = "root1"
-
-    result = createUserNormativeType(scheme, be_host, be_port, admin_user, location, element)
-    # result = createUserNormativeType(beHost, bePort, adminUser, fileDir, normativeType)
-    print "---------------------------------------"
-    print "{0:30} | {1:6}".format(result[0], result[1])
-    print "---------------------------------------"
-
-    if result[1] is None or result[1] not in [200, 201]:
-        print "Failed creating normative type " + element + ". " + str(result[1])
-        error_and_exit(1, None)
-
-    error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeAll.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeAll.py
deleted file mode 100644
index c61b8bc..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeAll.py
+++ /dev/null
@@ -1,145 +0,0 @@
-import os
-import time
-
-import importCommon
-from importAnnotationTypes import import_annotation_types
-from importCategoryTypes import importCategories
-from importCommon import *
-from importDataTypes import importDataTypes
-from importGroupTypes import importGroupTypes
-from importHeatTypes import importHeatTypes
-from importNormativeCapabilities import importNormativeCapabilities
-from importNormativeInterfaceLifecycleTypes import importNormativeInterfaceLifecycleType
-from importNormativeRelationships import importNormativeRelationships
-from importNormativeTypes import importNormativeTypes
-from importPolicyTypes import importPolicyTypes
-
-
-#################################################################################################################################################################################################################################
-#																																		       																					#
-# Import all users from a given file																										   																					#
-# 																																			   																					#
-# activation :																																   																					#
-#       python importNormativeAll.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>]	#
-#									 [-v <true|false> | --updateversion=<true|false>]																																			#
-#																																		  	   																					#
-# shortest activation (be host = localhost, be port = 8080, user = jh0003): 																				   																	#
-#		python importNormativeAll.py											 				           																														#
-#																																		       																					#
-#################################################################################################################################################################################################################################
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>] [-v <true|false> | --updateversion=<true|false>]'
-
-
-def handleResults(results, update_version):
-    print_frame_line()
-    for result in results:
-        print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_results = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_results)) > 0:
-        error_and_exit(1, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    debug_f = None
-    update_version = 'true'
-    importCommon.debugFlag = False
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:d:v:h:s:",
-                                   ["ip=", "port=", "user=", "debug=", "updateversion=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-d", "--debug"):
-            print arg
-            debug_f = bool(arg.lower() == "true" or arg.lower() == "yes")
-        elif opt in ("-v", "--updateversion"):
-            print arg
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user, ', debug =', debug_f, ', updateversion =', update_version
-
-    if debug_f is not None:
-        print 'set debug mode to ' + str(debug_f)
-        importCommon.debugFlag = debug_f
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    print sys.argv[0]
-    path_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
-    debug("path dir =" + path_dir)
-
-    base_file_location = path_dir + "/../../../import/tosca/"
-
-    file_location = base_file_location + "data-types/"
-    importDataTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    print 'sleep until data type cache is updated'
-    time.sleep(70)
-
-    file_location = base_file_location + "capability-types/"
-    importNormativeCapabilities(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "relationship-types/"
-    importNormativeRelationships(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "interface-lifecycle-types/"
-    importNormativeInterfaceLifecycleType(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "categories/"
-    importCategories(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "normative-types/"
-    results = importNormativeTypes(scheme, be_host, be_port, admin_user, file_location, update_version)
-    handleResults(results, update_version)
-
-    file_location = base_file_location + "heat-types/"
-    results_heat = importHeatTypes(scheme, be_host, be_port, admin_user, file_location, update_version)
-    handleResults(results_heat, update_version)
-
-    file_location = base_file_location + "group-types/"
-    importGroupTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "policy-types/"
-    importPolicyTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    import_annotation_types(scheme, be_host, be_port, admin_user, False)
-
-    error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeCapabilities.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeCapabilities.py
deleted file mode 100644
index 989233d..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeCapabilities.py
+++ /dev/null
@@ -1,78 +0,0 @@
-import importCommon
-from importCommon import *
-from importNormativeElements import createNormativeElement
-
-
-#################################################################################################################################################################################################
-#																																		       													#
-# Import normative capabilities																										   															#
-# 																																			   													#
-# activation :																																   													#
-#       python importNormativeCapabilities.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]	#
-#																																		  	  													#
-# shortest activation (be host = localhost, be port = 8080): 																				   													#
-#		python importNormativeCapabilities.py [-f <input file> | --ifile=<input file> ]												 				           									#
-#																																		       													#
-#################################################################################################################################################################################################
-
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ]'
-
-
-def importNormativeCapabilities(scheme, be_host, be_port, admin_user, exit_on_success, file_dir):
-    result = createNormativeElement(scheme, be_host, be_port, admin_user, file_dir,
-                                    "/sdc2/rest/v1/catalog/uploadType/capability", "capabilityTypes",
-                                    "capabilityTypeZip")
-
-    print_frame_line()
-    print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    if result[1] is None or result[1] not in [200, 201, 409]:
-        importCommon.error_and_exit(1, None)
-    else:
-        if exit_on_success is True:
-            importCommon.error_and_exit(0, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:h:s:", ["ip=", "port=", "user=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        importCommon.error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    importNormativeCapabilities(scheme, be_host, be_port, admin_user, True, "../../../import/tosca/capability-types/")
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeElements.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeElements.py
deleted file mode 100644
index 47ed633..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeElements.py
+++ /dev/null
@@ -1,108 +0,0 @@
-import pycurl
-import zipfile
-from StringIO import StringIO
-import json
-import copy
-from importCommon import *
-
-
-#################################################################################################################################################################################
-#																																		       									#
-# Import all users from a given file																										   									#
-# 																																			   									#
-# activation :																																   									#
-#       python importUsers.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]   #
-#																																		  	   									#
-# shortest activation (be host = localhost, be port = 8080): 																				   									#
-#		python importUsers.py [-f <input file> | --ifile=<input file> ]												 				           									#
-#																																		       									#
-#################################################################################################################################################################################
-def import_element(scheme, be_host, be_port, admin_user, exit_on_success, file_dir, url_suffix, element_name, element_form_name,
-                   with_metadata=False):
-    result = createNormativeElement(scheme, be_host, be_port, admin_user, file_dir, url_suffix, element_name, element_form_name, with_metadata)
-    print_frame_line()
-    print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    if result[1] is None or result[1] not in [200, 201, 409]:
-        error_and_exit(1, None)
-    else:
-        if exit_on_success:
-            error_and_exit(0, None)
-
-
-
-def createNormativeElement(scheme, be_host, be_port, admin_user, file_dir, url_suffix, element_name, element_form_name,
-                           with_metadata=False):
-    try:
-        log("in create normative element ", element_name)
-        buffer = StringIO()
-        c = pycurl.Curl()
-
-        url = scheme + '://' + be_host + ':' + be_port + url_suffix
-        c.setopt(c.URL, url)
-        c.setopt(c.POST, 1)
-
-        admin_header = 'USER_ID: ' + admin_user
-        c.setopt(pycurl.HTTPHEADER, [admin_header])
-
-        type_file_name = file_dir + "/" + element_name
-
-        multi_part_form_data = create_multipart_form_data(element_form_name, type_file_name, with_metadata, element_name)
-
-        c.setopt(pycurl.HTTPPOST, multi_part_form_data)
-        c.setopt(c.WRITEFUNCTION, buffer.write)
-
-        if scheme == 'https':
-            c.setopt(pycurl.SSL_VERIFYPEER, 0)
-            c.setopt(pycurl.SSL_VERIFYHOST, 0)
-
-        c.perform()
-
-        http_res = c.getinfo(c.RESPONSE_CODE)
-        if http_res is not None:
-            debug("http response=", http_res)
-        debug("response buffer", buffer.getvalue())
-        c.close()
-        return (element_name, http_res, buffer.getvalue())
-
-    except Exception as inst:
-        print("ERROR=" + str(inst))
-        return (element_name, None, None)
-
-
-def create_multipart_form_data(element_form_name, type_file_name, with_metadata, element_name):
-    tosca_type_zip_part = create_zip_file_multi_part(element_form_name, type_file_name, element_name)
-    multi_part_form_data = [tosca_type_zip_part]
-    if with_metadata:
-        metadata_type_part = create_metadata_multipart(type_file_name)
-        multi_part_form_data.append(metadata_type_part)
-    debug(multi_part_form_data)
-    return multi_part_form_data
-
-
-def create_metadata_multipart(type_file_name):
-    metadata = create_json_metadata_str(type_file_name)
-    return ("toscaTypeMetadata", metadata)
-
-
-def create_zip_file_multi_part(element_form_name, type_file_name, element_name):
-    zf = zipfile.ZipFile(type_file_name + ".zip", "w")
-    zf.write(type_file_name + '.yml', element_name + '.yml')
-    zf.close()
-
-    tosca_type_zip_path = type_file_name + ".zip"
-    tosca_type_zip_part = (element_form_name, (pycurl.FORM_FILE, tosca_type_zip_path))
-    return tosca_type_zip_part
-
-
-def create_json_metadata_str(file_name):
-    type_metadata_json_file = file_name + ".json"
-    debug(type_metadata_json_file)
-    json_file = open(type_metadata_json_file)
-
-    debug("before load json")
-    json_data = json.load(json_file, strict=False)
-    debug(json_data)
-
-    return json.dumps(json_data)
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeInterfaceLifecycleTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeInterfaceLifecycleTypes.py
deleted file mode 100644
index 1e6b9ca..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeInterfaceLifecycleTypes.py
+++ /dev/null
@@ -1,77 +0,0 @@
-from importCommon import *
-from importNormativeElements import createNormativeElement
-
-
-#############################################################################################################################################################################################################
-#																																		       																#
-# Import all users from a given file																										   																#
-# 																																			   																#
-# activation :																																   																#
-#       python importNormativeInterfaceLifecycleTypes.py  [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]	#
-#																																		  	   																#
-# shortest activation (be host = localhost, be port = 8080): 																				   																#
-#		python importNormativeInterfaceLifecycleTypes.py [-f <input file> | --ifile=<input file> ]												 				           									#
-#																																		       																#
-#############################################################################################################################################################################################################
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ]'
-
-
-def importNormativeInterfaceLifecycleType(scheme, be_host, be_port, admin_user, exit_on_success, file_dir):
-    result = createNormativeElement(scheme, be_host, be_port, admin_user, file_dir,
-                                    "/sdc2/rest/v1/catalog/uploadType/interfaceLifecycle", "interfaceLifecycleTypes",
-                                    "interfaceLifecycleTypeZip")
-
-    print_frame_line()
-    print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    if result[1] is None or result[1] not in [200, 201, 409]:
-        error_and_exit(1, None)
-    else:
-        if exit_on_success is True:
-            error_and_exit(0, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:h:s:", ["ip=", "port=", "user=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    importNormativeInterfaceLifecycleType(scheme, be_host, be_port, admin_user, True,
-                                          "../../../import/tosca/interface-lifecycle-types//")
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeNoHeatAndNormativeTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeNoHeatAndNormativeTypes.py
deleted file mode 100644
index b06959a..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeNoHeatAndNormativeTypes.py
+++ /dev/null
@@ -1,136 +0,0 @@
-import os
-import time
-
-import importCommon
-from importCommon import *
-from importDataTypes import importDataTypes
-from importGroupTypes import importGroupTypes
-from importNormativeCapabilities import importNormativeCapabilities
-from importNormativeInterfaceLifecycleTypes import importNormativeInterfaceLifecycleType
-from importPolicyTypes import importPolicyTypes
-
-
-#####################################################################################################################################################################################################################################################
-#																																		       																										#
-# Import all users from a given file																										   																										#
-# 																																			   																										#
-# activation :																																   																										#
-#       python importNormativeNoHeatAndNormativeTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>]	#
-#									 [-v <true|false> | --updateversion=<true|false>]																																								#
-#																																		  	   																										#
-# shortest activation (be host = localhost, be port = 8080, user = jh0003): 																				   																						#
-#		python importNormativeNoHeatAndNormativeTypes.py											 				           																														#
-#																																		       																										#
-#####################################################################################################################################################################################################################################################
-
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>] [-v <true|false> | --updateversion=<true|false>]'
-
-
-def handleResults(results, update_version):
-    print_frame_line()
-    for result in results:
-        print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_results = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_results)) > 0:
-        error_and_exit(1, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    debug_f = None
-    update_version = 'true'
-    importCommon.debugFlag = False
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:d:v:h:s:",
-                                   ["ip=", "port=", "user=", "debug=", "updateversion=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-d", "--debug"):
-            print arg
-            debug_f = bool(arg.lower() == "true" or arg.lower() == "yes")
-        elif opt in ("-v", "--updateversion"):
-            print arg
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user, ', debug =', debug_f, ', updateversion =', update_version
-
-    if debug_f is not None:
-        print 'set debug mode to ' + str(debug_f)
-        importCommon.debugFlag = debug_f
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    print sys.argv[0]
-    path_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
-    debug("path dir =" + path_dir)
-
-    base_file_location = path_dir + "/../../../import/tosca/"
-
-    file_location = base_file_location + "data-types/"
-    importDataTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    print 'sleep until data type cache is updated'
-    time.sleep(70)
-
-    file_location = base_file_location + "capability-types/"
-    importNormativeCapabilities(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "interface-lifecycle-types/"
-    importNormativeInterfaceLifecycleType(scheme, be_host, be_port, admin_user, False, file_location)
-
-    # fileLocation = baseFileLocation + "categories/"
-    # importCategories(beHost, bePort, adminUser, False, fileLocation)
-
-    # fileLocation = baseFileLocation + "normative-types/"
-    # results = importNormativeTypes(beHost, bePort, adminUser, fileLocation, updateversion)
-    # handleResults(results, updateversion)
-
-    # fileLocation = baseFileLocation + "heat-types/"
-    # resultsHeat = importHeatTypes(beHost, bePort, adminUser, fileLocation, updateversion)
-    # handleResults(resultsHeat, updateversion)
-
-    file_location = base_file_location + "group-types/"
-    importGroupTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "policy-types/"
-    importPolicyTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeRelationships.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeRelationships.py
deleted file mode 100644
index a6040d0..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeRelationships.py
+++ /dev/null
@@ -1,82 +0,0 @@
-import importCommon
-from importCommon import *
-from importNormativeElements import createNormativeElement
-
-
-#################################################################################################################################################################################################
-#																																		       													#
-# Import normative relationships
-# 				   															#
-# 																																			   													#
-# activation :																																   													#
-#       python importNormativeRelationships.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p
-#  <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]	#
-#																																		  	  													#
-# shortest activation (be host = localhost, be port = 8080): 																				   													#
-#		python importNormativeRelationships.py [-f <input file> | --ifile=<input file> ]
-# 					 				           									#
-#																																		       													#
-#################################################################################################################################################################################################
-
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ]'
-
-
-def importNormativeRelationships(scheme, be_host, be_port, admin_user, exit_on_success, file_dir):
-    result = createNormativeElement(scheme, be_host, be_port, admin_user, file_dir,
-                                    "/sdc2/rest/v1/catalog/uploadType/relationship", "relationshipTypes",
-                                    "relationshipTypeZip")
-
-    print_frame_line()
-    print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    if result[1] is None or result[1] not in [200, 201, 409]:
-        importCommon.error_and_exit(1, None)
-    else:
-        if exit_on_success is True:
-            importCommon.error_and_exit(0, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:h:s:", ["ip=", "port=", "user=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        importCommon.error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    importNormativeRelationships(scheme, be_host, be_port, admin_user, True,
-                                 "../../../import/tosca/relationship-types/")
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py
deleted file mode 100644
index 889ea05..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py
+++ /dev/null
@@ -1,177 +0,0 @@
-import json
-import zipfile
-from StringIO import StringIO
-
-import pycurl
-
-from importCommon import *
-
-
-#########################################################################################################################################################################################
-#																																		       											#
-# Import all users from a given file																										   											#
-# 																																			   											#
-# activation :																																   											#
-#       python importNormativeTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]	#
-#							  [-v <true|false> | --updateversion=<true|false>]																											#
-# shortest activation (be host = localhost, be port = 8080): 																				   											#
-#		python importNormativeTypes.py [-f <input file> | --ifile=<input file> ]												 				           								#
-#																																		       											#	
-#########################################################################################################################################################################################
-
-def createNormativeType(scheme, be_host, be_port, admin_user, file_dir, element_name, update_version):
-    try:
-        log("in create normative type ", element_name)
-        debug("userId", admin_user)
-        debug("fileDir", file_dir)
-
-        buffer = StringIO()
-        c = pycurl.Curl()
-        if is_debug():
-            c.setopt(pycurl.VERBOSE, 1)
-
-        url = scheme + '://' + be_host + ':' + be_port + '/sdc2/rest/v1/catalog/upload/multipart'
-        if update_version is not None:
-            url += '?createNewVersion=' + update_version
-        c.setopt(c.URL, url)
-        c.setopt(c.POST, 1)
-
-        admin_header = 'USER_ID: ' + admin_user
-        # c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json', adminHeader])
-        c.setopt(pycurl.HTTPHEADER, [admin_header])
-
-        yml_path = file_dir + element_name + "/" + element_name + ".yml"
-        path = file_dir + element_name + "/" + element_name + ".zip"
-
-        zf = zipfile.ZipFile(path, "w")
-        zf.write(yml_path, element_name + '.yml')
-        zf.close()
-
-        debug(path)
-        current_json_file = file_dir + element_name + "/" + element_name + ".json"
-        # sed -i 's/"userId": ".*",/"userId": "'${USER_ID}'",/' ${current_json_file}
-
-        jsonFile = open(current_json_file)
-
-        debug("before load json")
-        json_data = json.load(jsonFile, strict=False)
-        debug(json_data)
-
-        json_as_str = json.dumps(json_data)
-
-        send = [('resourceMetadata', json_as_str), ('resourceZip', (pycurl.FORM_FILE, path))]
-        debug(send)
-        c.setopt(pycurl.HTTPPOST, send)
-
-        # data = json.dumps(user)
-        # c.setopt(c.POSTFIELDS, data)
-
-        if scheme == 'https':
-            c.setopt(pycurl.SSL_VERIFYPEER, 0)
-            c.setopt(pycurl.SSL_VERIFYHOST, 0)
-
-        # c.setopt(c.WRITEFUNCTION, lambda x: None)
-        c.setopt(c.WRITEFUNCTION, buffer.write)
-
-        # print("before perform")
-        c.perform()
-
-        # print("Before get response code")
-        http_res = c.getinfo(c.RESPONSE_CODE)
-        if http_res is not None:
-            debug("http response=", http_res)
-        # print('Status: ' + str(responseCode))
-        debug(buffer.getvalue())
-        c.close()
-
-        return (element_name, http_res, buffer.getvalue())
-
-    except Exception as inst:
-        print("ERROR=" + str(inst))
-        return (element_name, None, None)
-
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-v <true|false> | --updateversion=<true|false>]'
-
-
-def importNormativeTypes(scheme, be_host, be_port, admin_user, file_dir, update_version):
-    normative_types = ["root", "compute", "softwareComponent", "webServer", "webApplication", "DBMS", "database",
-                       "objectStorage", "blockStorage", "containerRuntime", "containerApplication", "loadBalancer",
-                       "port", "network"]
-    # normative_types = [ "root" ]
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    results = []
-    for normative_type in normative_types:
-        result = createNormativeType(scheme, be_host, be_port, admin_user, file_dir, normative_type, update_version)
-        results.append(result)
-        if result[1] is None or result[1] not in response_codes:
-            print "Failed creating normative type " + normative_type + ". " + str(result[1])
-    return results
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    update_version = 'true'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:v:h:s:", ["ip=", "port=", "user=", "updateversion=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-v", "--updateversion"):
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user, ', updateversion =', update_version
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    results = importNormativeTypes(scheme, be_host, be_port, admin_user, "../../../import/tosca/normative-types/",
-                                   update_version)
-
-    print "-----------------------------"
-    for result in results:
-        print "{0:20} | {1:6}".format(result[0], result[1])
-    print "-----------------------------"
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_normatives = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_normatives)) > 0:
-        error_and_exit(1, None)
-    else:
-        error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importONAPNormativeAll.py b/catalog-be/src/main/resources/scripts/import/tosca/importONAPNormativeAll.py
deleted file mode 100644
index de67cd7..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importONAPNormativeAll.py
+++ /dev/null
@@ -1,160 +0,0 @@
-import os
-import time
-
-import importCommon
-from importCategoryTypes import importCategories
-from importCommon import *
-from importDataTypes import importDataTypes
-from importGroupTypes import importGroupTypes
-from importHeatTypes import importHeatTypes
-from importNfvTypes import importNfvTypes
-from importNormativeCapabilities import importNormativeCapabilities
-from importNormativeInterfaceLifecycleTypes import importNormativeInterfaceLifecycleType
-from importNormativeRelationships import importNormativeRelationships
-# from importNormativeElements import createNormativeElement
-from importNormativeTypes import importNormativeTypes
-from importOnapTypes import importOnapTypes
-from importPolicyTypes import importPolicyTypes
-from importSolTypes import importSolTypes
-
-
-#################################################################################################################################################################################################
-#																																		       													#	
-# Import all users from a given file																										   													#
-# 																																			   													#		
-# activation :																																   													#
-#       python importNormativeAll.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>] 	#
-#									 [-v <true|false> | --updateversion=<true|false>]																											#
-#																																		  	   													#			
-# shortest activation (be host = localhost, be port = 8080, user = jh0003): 																				   									#	#												       																																			#
-#		python importNormativeAll.py											 				           																						#
-#																																		       													#	
-#################################################################################################################################################################################################
-
-def usage():
-    print sys.argv[0], \
-        '[-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>] [-v <true|false> | --updateversion=<true|false>]'
-
-
-def handle_results(results, update_version):
-    if results is not None:
-        print_frame_line()
-        for result in results:
-            print_name_and_return_code(result[0], result[1])
-        print_frame_line()
-
-        response_codes = [200, 201]
-
-        if update_version == 'false':
-            response_codes = [200, 201, 409]
-
-        failed_results = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-        if len(list(failed_results)) > 0:
-            error_and_exit(1, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    debugf = None
-    update_version = 'true'
-    importCommon.debugFlag = False
-    scheme = 'http'
-    opts = []
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:d:v:h:s:",
-                                   ["ip=", "port=", "user=", "debug=", "update_version=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-d", "--debug"):
-            print arg
-            debugf = bool(arg.lower() == "true" or arg.lower() == "yes")
-        elif opt in ("-v", "--update_version"):
-            print arg
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', user =', admin_user, ', debug =', debugf, ', update_version =', update_version
-
-    if debugf is not None:
-        print 'set debug mode to ' + str(debugf)
-        importCommon.debugFlag = debugf
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    print sys.argv[0]
-    pathdir = os.path.dirname(os.path.realpath(sys.argv[0]))
-    debug("path dir =" + pathdir)
-
-    base_file_location = pathdir + "/../../../import/tosca/"
-
-    file_location = base_file_location + "data-types/"
-    importDataTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    print 'sleep until data type cache is updated'
-    time.sleep(70)
-
-    file_location = base_file_location + "capability-types/"
-    importNormativeCapabilities(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "relationship-types/"
-    importNormativeRelationships(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "interface-lifecycle-types/"
-    importNormativeInterfaceLifecycleType(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "categories/"
-    importCategories(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "normative-types/"
-    results = importNormativeTypes(scheme, be_host, be_port, admin_user, file_location, update_version)
-    handle_results(results, update_version)
-
-    file_location = base_file_location + "heat-types/"
-    results_heat = importHeatTypes(scheme, be_host, be_port, admin_user, file_location, update_version)
-    handle_results(results_heat, update_version)
-
-    file_location = base_file_location + "nfv-types/"
-    results_heat = importNfvTypes(scheme, be_host, be_port, admin_user, file_location, update_version)
-    handle_results(results_heat, update_version)
-
-    file_location = base_file_location + "onap-types/"
-    results_heat = importOnapTypes(scheme, be_host, be_port, admin_user, file_location, update_version)
-    handle_results(results_heat, update_version)
-
-    file_location = base_file_location + "sol-types/"
-    results_heat = importSolTypes(scheme, be_host, be_port, admin_user, file_location, update_version)
-    handle_results(results_heat, update_version)
-
-    file_location = base_file_location + "group-types/"
-    importGroupTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "policy-types/"
-    importPolicyTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
deleted file mode 100644
index f6e4749..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
+++ /dev/null
@@ -1,92 +0,0 @@
-from importNormativeTypes import *
-
-
-#####################################################################################################################################################################################################
-#																																		       														#	
-# Import all users from a given file																										   														#
-# 																																			   														#		
-# activation :																																   														#
-#       python importUsers.py [optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ] #
-#																																		  	  														#			
-# shortest activation (be host = localhost, be port = 8080): 																				   														#
-#		python importUsers.py [-f <input file> | --ifile=<input file> ]												 				           														#
-#																																		       														#	
-#####################################################################################################################################################################################################
-
-def importOnapTypes(scheme, be_host, be_port, admin_user, file_dir, update_version):
-    # Add desired type names to the list
-    onap_types = []
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    results = []
-    for onap_type in onap_types:
-        result = createNormativeType(scheme, be_host, be_port, admin_user, file_dir, onap_type, update_version)
-        results.append(result)
-        if result[1] is None or result[1] not in response_codes:
-            print "Failed creating heat type " + onap_type + ". " + str(result[1])
-    return results
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    update_version = 'true'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:v:h:", ["ip=", "port=", "user=", "update_version="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-v", "--update_version"):
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    results = importOnapTypes(scheme, be_host, be_port, admin_user, "../../../import/tosca/onap-types/", update_version)
-
-    print "-----------------------------"
-    for result in results:
-        print "{0:20} | {1:6}".format(result[0], result[1])
-    print "-----------------------------"
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_normatives = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_normatives)) > 0:
-        error_and_exit(1, None)
-    else:
-        error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importPolicyTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importPolicyTypes.py
deleted file mode 100644
index 47f783d..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importPolicyTypes.py
+++ /dev/null
@@ -1,76 +0,0 @@
-from importCommon import *
-from importNormativeElements import createNormativeElement
-
-
-#####################################################################################################################################################################################
-#																																		       										#
-# Import tosca data types																										   													#
-# 																																			   										#
-# activation :																																   										#
-#       python importPolicyTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]	#
-#																																		  	   										#
-# shortest activation (be host = localhost, be port = 8080): 																				   										#
-#		python importPolicyTypes.py [-f <input file> | --ifile=<input file> ]												 				           								#
-#																																		       										#
-#####################################################################################################################################################################################
-
-def usage():
-    print sys.argv[
-        0], '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ]'
-
-
-def importPolicyTypes(scheme, be_host, be_port, admin_user, exit_on_success, file_dir):
-    result = createNormativeElement(scheme, be_host, be_port, admin_user, file_dir,
-                                    "/sdc2/rest/v1/catalog/uploadType/policytypes", "policyTypes", "policyTypesZip",
-                                    True)
-
-    print_frame_line()
-    print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    if result[1] is None or result[1] not in [200, 201, 409]:
-        error_and_exit(1, None)
-    else:
-        if exit_on_success:
-            error_and_exit(0, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:h:s:", ["ip=", "port=", "user=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    importPolicyTypes(scheme, be_host, be_port, admin_user, True, "../../../import/tosca/policy-types/")
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importSolTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importSolTypes.py
deleted file mode 100644
index 5a8d2aa..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importSolTypes.py
+++ /dev/null
@@ -1,92 +0,0 @@
-from importNormativeTypes import *
-
-
-#####################################################################################################################################################################################################
-#																																		       														#	
-# Import Sol Types from a given file																										   														#
-# 																																			   														#		
-# activation :																																   														#
-#       python importSolTypes.py [optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ] #
-#																																		  	  														#			
-# shortest activation (be host = localhost, be port = 8080): 																				   														#
-#		python importUsers.py [-f <input file> | --ifile=<input file> ]												 				           														#
-#																																		       														#	
-#####################################################################################################################################################################################################
-
-def importSolTypes(scheme, be_host, be_port, admin_user, file_dir, update_version):
-    # Add desired type names to the list
-    sol_types = []
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    results = []
-    for onap_type in sol_types:
-        result = createNormativeType(scheme, be_host, be_port, admin_user, file_dir, onap_type, update_version)
-        results.append(result)
-        if result[1] is None or result[1] not in response_codes:
-            print "Failed creating heat type " + onap_type + ". " + str(result[1])
-    return results
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    update_version = 'true'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:v:h:", ["ip=", "port=", "user=", "updateversion="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-v", "--updateversion"):
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    results = importSolTypes(scheme, be_host, be_port, admin_user, "../../../import/tosca/sol-types/", update_version)
-
-    print "-----------------------------"
-    for result in results:
-        print "{0:20} | {1:6}".format(result[0], result[1])
-    print "-----------------------------"
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_normatives = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_normatives)) > 0:
-        error_and_exit(1, None)
-    else:
-        error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importUsersFromYaml.py b/catalog-be/src/main/resources/scripts/import/tosca/importUsersFromYaml.py
deleted file mode 100644
index 8cc8926..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/importUsersFromYaml.py
+++ /dev/null
@@ -1,223 +0,0 @@
-import getopt
-import json
-import sys
-
-import pycurl
-import yaml
-
-
-#########################################################################################################################################################################################
-#																																				       									#
-# Import all users from a given YAML file																											   									#
-# 																																					   									#
-# activation :																																		   									#
-#       python importUsersFromYaml.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]	#
-#																																				  	   									#
-# shortest activation (be host = localhost, be port = 8080): 																						   									#
-#		python importUsersFromYaml.py [-f <input file> | --ifile=<input file> ]												 				           									#
-#									    																											   									#
-#   PyYAML module shall be added to python.																											   									#
-#   pip install PyYAML>=3.1.0 --proxy=http://one.proxy.att.com:8080														                               									#
-#########################################################################################################################################################################################
-
-
-def importUsers(scheme, be_host, be_port, users, admin_user):
-    result = []
-
-    for user in users:
-        # print("Going to add user " + user['userId'])
-        get_res = getUser(scheme, be_host, be_port, user)
-        user_id = get_res[0]
-        error = get_res[1]
-        # print error
-        if error is not None and error == 404:
-            res = createUser(scheme, be_host, be_port, user, admin_user)
-            result.append(res)
-        else:
-            if error == 200:
-                cur_result = user_id, 409
-                result.append(cur_result)
-            else:
-                result.append(get_res)
-
-    return result
-
-
-def getUser(scheme, be_host, be_port, user):
-    if user.get('userId') is None:
-        print "Ignoring record", user
-        return 'NotExist', 200
-    user_id = user['userId']
-    try:
-        c = pycurl.Curl()
-
-        # print type(userId)
-        url = scheme + '://' + be_host + ':' + be_port + '/sdc2/rest/v1/user/' + str(user_id)
-        c.setopt(c.URL, url)
-
-        if scheme == 'https':
-            c.setopt(pycurl.SSL_VERIFYPEER, 0)
-            c.setopt(pycurl.SSL_VERIFYHOST, 0)
-
-        # adminHeader = 'USER_ID: ' + adminUser
-        c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json'])
-        c.setopt(c.WRITEFUNCTION, lambda x: None)
-        res = c.perform()
-
-        # print("Before get response code")
-        http_res = c.getinfo(c.RESPONSE_CODE)
-        # print("After get response code")
-        # response_code = c.getinfo(c.RESPONSE_CODE)
-        # print('Status: ' + str(response_code))
-
-        c.close()
-
-        return user_id, http_res
-
-    except Exception as inst:
-        print(inst)
-        return user_id, None
-
-
-def createUser(scheme, be_host, be_port, user, admin_user):
-    if user.get('userId') is None:
-        print "Ignoring record", user
-        return 'NotExist', 200
-
-    user_id = user['userId']
-    try:
-        c = pycurl.Curl()
-
-        url = scheme + '://' + be_host + ':' + be_port + '/sdc2/rest/v1/user'
-        c.setopt(c.URL, url)
-        c.setopt(c.POST, 1)
-
-        admin_header = 'USER_ID: ' + admin_user
-        c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json', admin_header])
-
-        data = json.dumps(user)
-        c.setopt(c.POSTFIELDS, data)
-
-        if scheme == 'https':
-            c.setopt(pycurl.SSL_VERIFYPEER, 0)
-            c.setopt(pycurl.SSL_VERIFYHOST, 0)
-
-        c.setopt(c.WRITEFUNCTION, lambda x: None)
-        # print("before perform")
-        c.perform()
-
-        # print("Before get response code")
-        http_res = c.getinfo(c.RESPONSE_CODE)
-        # print("After get response code")
-        # responseCode = c.getinfo(c.RESPONSE_CODE)
-        # print('Status: ' + str(responseCode))
-
-        c.close()
-
-        return user_id, http_res
-
-    except Exception as inst:
-        print(inst)
-        return user_id, None
-
-
-def error_and_exit(error_code, error_desc):
-    if error_code > 0:
-        print("status=" + str(error_code) + ". " + error_desc)
-    else:
-        print("status=" + str(error_code))
-    sys.exit(error_code)
-
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]'
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    input_file = None
-
-    admin_user = 'jh0003'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:f:h:s:", ["ip=", "port=", "ifile=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-f", "--ifile"):
-            input_file = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', users file =', input_file
-
-    if input_file is None:
-        usage()
-        sys.exit(3)
-
-    print 'Input file is ', input_file
-
-    users_as_yaml_file = open(input_file, 'r')
-    users_doc = yaml.load(users_as_yaml_file)
-    print users_doc
-
-    clone_users = []
-    for users in users_doc.values():
-        for x, y in users.items():
-            copied_user = y
-            copied_user['userId'] = x
-            # print copiedUser
-            clone_users.append(copied_user)
-
-    print clone_users
-
-    users_as_yaml_file.close()
-
-    # activeUsers = filter(lambda x: x.get('status') == None or x['status'] == 'ACTIVE', cloneUsers)
-
-    result_table = importUsers(scheme, be_host, be_port, clone_users, admin_user)
-
-    g = lambda x: x[1] != 201 and x[1] != 409
-
-    result = filter(g, result_table)
-
-    if len(result) > 0:
-        # print("ERROR: Failed to load the users " + ', '.join(map(lambda x: x[0],result)))
-        error_and_exit(3, "Failed to load the users " + ', '.join(map(lambda x: x[0], result)))
-
-    g = lambda x: x[1] == 409
-    result = filter(g, result_table)
-
-    print("-------------------------------------------")
-    print("Existing users: " + ', '.join(map(lambda x: x[0], result)))
-
-    result = filter(lambda x: x[1] == 201, result_table)
-    if len(list(result)) == 0:
-        print("-------------------------------------------")
-        print("No NEW user was loaded. All users are already exist")
-        print("-------------------------------------------")
-    else:
-        print("-------------------------------------------")
-        print("Loaded users: " + ', '.join(map(lambda x: x[0], result)))
-        print("-------------------------------------------")
-
-    error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatAndNormativeTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatAndNormativeTypes.py
deleted file mode 100644
index 7ba9250..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatAndNormativeTypes.py
+++ /dev/null
@@ -1,108 +0,0 @@
-from importNormativeTypes import *
-
-
-################################################################################################################################################################################################
-#																																		                                                       #
-# Upgrades all Heat and Normative types confiugred in "typesToUpgrade.json" file																										       #
-# 																																			                                                   #
-# activation                                                                                                                                                                                   #
-#       python upgradeHeatAndNormativeTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ] #
-#																																		  	                                                   #
-# shortest activation (be host = localhost, be port = 8080): 																				                                                   #
-#		python upgradeHeatAndNormativeTypes.py [-f <input file> | --ifile=<input file> ]												 				                                       #
-#																																		                                                       #
-################################################################################################################################################################################################
-
-
-def upgradeTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_dir, update_version):
-    response_codes = [200, 201]
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-    with open("typesToUpgrade.json", 'r') as stream:
-        try:
-            types = json.load(stream)
-            heat_types = types["heat"]
-            debug(heat_types)
-            normative_types = types["normative"]
-            debug(normative_types)
-            heat_file_dir = base_dir + "heat-types/"
-            debug(heat_file_dir)
-            normative_file_dir = base_dir + "normative-types/"
-            debug(normative_file_dir)
-            results = []
-            for heat_type in heat_types:
-                result = createNormativeType(scheme, be_host, be_port, admin_user, heat_file_dir,
-                                             heat_type.encode('ascii', 'ignore'), update_version)
-                results.append(result)
-                if result[1] is None or result[1] not in response_codes:
-                    print "Failed creating heat type " + heat_type + ". " + str(result[1])
-            for normativeType in normative_types:
-                result = createNormativeType(scheme, be_host, be_port, admin_user, normative_file_dir,
-                                             normativeType.encode('ascii', 'ignore'), update_version)
-                results.append(result)
-                if result[1] is None or result[1] not in response_codes:
-                    print "Failed creating normative type " + normativeType + ". " + str(result[1])
-            return results
-        except Exception as exc:
-            print(exc)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    update_version = 'true'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:v:h:s:", ["ip=", "port=", "user=", "updateversion=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-v", "--updateversion"):
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    results = upgradeTypesPerConfigFile(scheme, be_host, be_port, admin_user, "../../../import/tosca/", update_version)
-
-    print "-----------------------------"
-    for result in results:
-        print "{0:20} | {1:6}".format(result[0], result[1])
-    print "-----------------------------"
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_normatives = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_normatives)) > 0:
-        error_and_exit(1, None)
-    else:
-        error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatTypes1707.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatTypes1707.py
deleted file mode 100644
index 5394864..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeHeatTypes1707.py
+++ /dev/null
@@ -1,111 +0,0 @@
-from importNormativeTypes import *
-
-
-#################################################################################################################################################################################
-#																																		       									#
-# Import all users from a given file																										   									#
-# 																																			   									#
-# activation :																																   									#
-#       python importUsers.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]	#
-#																																		  	   									#
-# shortest activation (be host = localhost, be port = 8080): 																				   									#
-#		python importUsers.py [-f <input file> | --ifile=<input file> ]												 				           									#
-#																																		       									#
-#################################################################################################################################################################################
-
-
-def upgradeHeatTypes1707(scheme, be_host, be_port, admin_user, file_dir, update_version):
-    heat_types = ["volume",
-                  "cinderVolume",
-                  "extVl",
-                  "extCp",
-                  "Generic_VFC",
-                  "Generic_VF",
-                  "Generic_PNF",
-                  "Generic_Service",
-                  "globalPort",
-                  "globalNetwork",
-                  "contrailV2VirtualMachineInterface",
-                  "contrailV2VLANSubInterface",
-                  "contrailPort",
-                  "contrailV2VirtualNetwork",
-                  "contrailVirtualNetwork",
-                  "neutronNet",
-                  "neutronPort",
-                  "multiFlavorVFC",
-                  "vnfConfiguration"]
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    results = []
-    for heatType in heat_types:
-        result = createNormativeType(scheme, be_host, be_port, admin_user, file_dir, heatType, update_version)
-        results.append(result)
-        if result[1] is None or result[1] not in response_codes:
-            print "Failed creating heat type " + heatType + ". " + str(result[1])
-    return results
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    update_version = 'true'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:v:h:s:", ["ip=", "port=", "user=", "updateversion=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-v", "--updateversion"):
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    results = upgradeHeatTypes1707(scheme, be_host, be_port, admin_user, "../../../import/tosca/heat-types/",
-                                   update_version)
-
-    print "-----------------------------"
-    for result in results:
-        print "{0:20} | {1:6}".format(result[0], result[1])
-    print "-----------------------------"
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_normatives = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_normatives)) > 0:
-        error_and_exit(1, None)
-    else:
-        error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeNfvTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeNfvTypes.py
deleted file mode 100644
index ce93987..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeNfvTypes.py
+++ /dev/null
@@ -1,101 +0,0 @@
-from importNormativeTypes import *
-
-
-################################################################################################################################################################################################
-#																																		                                                       #
-# Upgrades all Heat and Normative types confiugred in "typesToUpgrade.json" file																										       #
-# 																																			                                                   #
-# activation                                                                                                                                                                                   #
-#       python upgradeHeatAndNormativeTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ] #
-#																																		  	                                                   #
-# shortest activation (be host = localhost, be port = 8080): 																				                                                   #
-#		python upgradeHeatAndNormativeTypes.py [-f <input file> | --ifile=<input file> ]												 				                                       #
-#																																		                                                       #
-################################################################################################################################################################################################
-
-
-def upgradeNfvTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_dir, update_version):
-    response_codes = [200, 201]
-    results = []
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-    with open("onapTypesToUpgrade.json", 'r') as stream:
-        try:
-            types = json.load(stream)
-            nfv_types = types["nfv"]
-            debug(nfv_types)
-            nfv_file_dir = base_dir + "nfv-types/"
-            debug(nfv_file_dir)
-            for nfvType in nfv_types:
-                result = createNormativeType(scheme, be_host, be_port, admin_user, nfv_file_dir,
-                                             nfvType.encode('ascii', 'ignore'), update_version)
-                results.append(result)
-                if result[1] is None or result[1] not in response_codes:
-                    print "Failed creating nfv type " + nfvType + ". " + str(result[1])
-        except Exception as exc:
-            print(exc)
-
-    return results
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    update_version = 'true'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:v:h:s:", ["ip=", "port=", "user=", "updateversion=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-v", "--updateversion"):
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    results = upgradeNfvTypesPerConfigFile(scheme, be_host, be_port, admin_user, "../../../import/tosca/",
-                                           update_version)
-
-    print "-----------------------------"
-    for result in results:
-        print "{0:20} | {1:6}".format(result[0], result[1])
-    print "-----------------------------"
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_normatives = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_normatives)) > 0:
-        error_and_exit(1, None)
-    else:
-        error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormative.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormative.py
deleted file mode 100644
index c8f5ecf..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormative.py
+++ /dev/null
@@ -1,130 +0,0 @@
-import os
-import time
-
-import importCommon
-from importAnnotationTypes import import_annotation_types
-from importCategoryTypes import importCategories
-from importCommon import *
-from importDataTypes import importDataTypes
-from importGroupTypes import importGroupTypes
-from importNormativeCapabilities import importNormativeCapabilities
-from importNormativeInterfaceLifecycleTypes import importNormativeInterfaceLifecycleType
-from importNormativeRelationships import importNormativeRelationships
-from importPolicyTypes import importPolicyTypes
-from upgradeHeatAndNormativeTypes import upgradeTypesPerConfigFile
-
-
-#################################################################################################################################################################################################################################
-#																																		       																					#
-# Upgrades the normative types																										   																							#
-# 																																			   																					#
-# activation :																																   																					#
-#       python upgradeNormative.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>]	#
-#																																																								#
-#																																		  	   																					#
-# shortest activation (be host = localhost, be port = 8080, user = jh0003): 																				   																	#
-#		python upgradeNormative.py												 				           																														#
-#																																		       																					#
-#################################################################################################################################################################################################################################
-
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>]'
-
-
-def handleResults(results):
-    print_frame_line()
-    for result in results:
-        print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    failed_results = filter(lambda x: x[1] is None or x[1] not in [200, 201, 409], results)
-    if len(list(failed_results)) > 0:
-        error_and_exit(1, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    debug_f = None
-    update_version = 'true'
-    importCommon.debugFlag = False
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:d:h:s:", ["ip=", "port=", "user=", "debug=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-d", "--debug"):
-            print arg
-            debug_f = bool(arg.lower() == "true" or arg.lower() == "yes")
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user, ', debug =', debug_f
-
-    if debug_f is not None:
-        print 'set debug mode to ' + str(debug_f)
-        importCommon.debugFlag = debug_f
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    print sys.argv[0]
-    path_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
-    debug("path dir =" + path_dir)
-
-    base_file_location = path_dir + "/../../../import/tosca/"
-
-    file_location = base_file_location + "categories/"
-    importCategories(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "relationship-types/"
-    importNormativeRelationships(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "data-types/"
-    importDataTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "policy-types/"
-    importPolicyTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "capability-types/"
-    importNormativeCapabilities(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "group-types/"
-    importGroupTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "interface-lifecycle-types/"
-    importNormativeInterfaceLifecycleType(scheme, be_host, be_port, admin_user, False, file_location)
-
-    import_annotation_types(scheme, be_host, be_port, admin_user, False)
-
-    print 'sleep until data type cache is updated'
-    time.sleep(70)
-
-    results_heat = upgradeTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_file_location, update_version)
-    handleResults(results_heat)
-
-    error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormativeVersion.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormativeVersion.py
deleted file mode 100644
index b5ba42f..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormativeVersion.py
+++ /dev/null
@@ -1,108 +0,0 @@
-import os
-
-import importCommon
-from importCommon import *
-from importNormativeTypes import createNormativeType
-
-
-#################################################################################################################################################################################################################################
-#																																		       																					#
-# Upgrades the normative types																										   																							#
-# 																																			   																					#
-# activation :																																   																					#
-#       python upgradeNormative.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>]	#
-#																																																								#
-#																																		  	   																					#
-# shortest activation (be host = localhost, be port = 8080, user = jh0003): 																				   																	#
-#		python upgradeNormative.py												 				           																														#
-#																																		       																					#
-#################################################################################################################################################################################################################################
-
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>]'
-
-
-def handleResults(results):
-    print_frame_line()
-    for result in results:
-        print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    failed_results = filter(lambda x: x[1] is None or x[1] not in [200, 201, 409], results)
-    if len(list(failed_results)) > 0:
-        error_and_exit(1, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    debug_f = None
-    update_version = 'true'
-    importCommon.debugFlag = False
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:d:h:s:", ["ip=", "port=", "user=", "debug=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-d", "--debug"):
-            print arg
-            debug_f = bool(arg.lower() == "true" or arg.lower() == "yes")
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user, ', debug =', debug_f
-
-    if debug_f is not None:
-        print 'set debug mode to ' + str(debug_f)
-        importCommon.debugFlag = debug_f
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    print sys.argv[0]
-    path_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
-    debug("path dir =" + path_dir)
-
-    base_file_location = path_dir + "/../../../import/tosca/"
-    results = []
-
-    ##########################################################################
-    # ---------------------------------for release 1702---------------------- #
-    ##########################################################################
-
-    file_location = base_file_location + "heat-types/"
-    result = createNormativeType(scheme, be_host, be_port, admin_user, file_location,
-                                 "contrailV2VirtualMachineInterface", update_version)
-    results.append(result)
-
-    file_location = base_file_location + "heat-types/"
-    result = createNormativeType(scheme, be_host, be_port, admin_user, file_location, "neutronPort", update_version)
-    results.append(result)
-
-    handleResults(results)
-
-    error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormativeVersionAll.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormativeVersionAll.py
deleted file mode 100644
index a5e2eba..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormativeVersionAll.py
+++ /dev/null
@@ -1,102 +0,0 @@
-import os
-
-import importCommon
-from importCommon import *
-from importHeatTypes import importHeatTypes
-from importNormativeTypes import importNormativeTypes
-from importOnapTypes import importOnapTypes
-
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>] [-v <true|false> | --updateversion=<true|false>]'
-
-
-def handleResults(results, update_version):
-    print_frame_line()
-    for result in results:
-        print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_results = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_results)) > 0:
-        error_and_exit(1, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    debug_f = None
-    update_version = 'true'
-    importCommon.debugFlag = False
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:d:v:h:s:",
-                                   ["ip=", "port=", "user=", "debug=", "updateversion=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-d", "--debug"):
-            print arg
-            debug_f = bool(arg.lower() == "true" or arg.lower() == "yes")
-        elif opt in ("-v", "--updateversion"):
-            print arg
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user, ', debug =', debug_f, ', updateversion =', update_version
-
-    if debug_f is not None:
-        print 'set debug mode to ' + str(debug_f)
-        importCommon.debugFlag = debug_f
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    print sys.argv[0]
-    path_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
-    debug("path dir =" + path_dir)
-
-    base_file_location = path_dir + "/../../../import/tosca/"
-
-    file_location = base_file_location + "normative-types/"
-    results = importNormativeTypes(scheme, be_host, be_port, admin_user, file_location, update_version)
-    handleResults(results, update_version)
-
-    file_location = base_file_location + "heat-types/"
-    results_heat = importHeatTypes(scheme, be_host, be_port, admin_user, file_location, update_version)
-    handleResults(results_heat, update_version)
-
-    file_location = base_file_location + "onap-types/"
-    results_onap = importOnapTypes(scheme, be_host, be_port, admin_user, file_location, update_version)
-    handleResults(results_onap, update_version)
-
-    error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormativeVersionProd1702_3537.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormativeVersionProd1702_3537.py
deleted file mode 100644
index cc2325f..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeNormativeVersionProd1702_3537.py
+++ /dev/null
@@ -1,134 +0,0 @@
-import os
-
-import importCommon
-from importCommon import *
-from importNormativeTypes import createNormativeType
-
-
-#################################################################################################################################################################################################################################
-#																																		       																					#
-# Upgrades the normative types																										   																							#
-# 																																			   																					#
-# activation :																																   																					#
-#       python upgradeNormative.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>]	#
-#																																																								#
-#																																		  	   																					#
-# shortest activation (be host = localhost, be port = 8080, user = jh0003): 																				   																	#
-#		python upgradeNormative.py												 				           																														#
-#																																		       																					#
-#################################################################################################################################################################################################################################
-
-
-def usage():
-    print sys.argv[0], \
-        '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>]'
-
-
-def handleResults(results):
-    print_frame_line()
-    for result in results:
-        print_name_and_return_code(result[0], result[1])
-    print_frame_line()
-
-    failed_results = filter(lambda x: x[1] is None or x[1] not in [200, 201, 409], results)
-    if len(list(failed_results)) > 0:
-        error_and_exit(1, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    debug_f = None
-    update_version = 'true'
-    importCommon.debugFlag = False
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:d:h:s:", ["ip=", "port=", "user=", "debug=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-d", "--debug"):
-            print arg
-            debug_f = bool(arg.lower() == "true" or arg.lower() == "yes")
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user, ', debug =', debug_f
-
-    if debug_f is not None:
-        print 'set debug mode to ' + str(debug_f)
-        importCommon.debugFlag = debug_f
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    print sys.argv[0]
-    path_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
-    debug("path dir =" + path_dir)
-
-    base_file_location = path_dir + "/../../../import/tosca/"
-    results = []
-
-    ##########################################################################
-    # ---------------------------------for release 1702---------------------- #
-    ##########################################################################
-
-    file_location = base_file_location + "heat-types/"
-    result = createNormativeType(scheme, be_host, be_port, admin_user, file_location, "contrailPort", update_version)
-    results.append(result)
-
-    file_location = base_file_location + "heat-types/"
-    result = createNormativeType(scheme, be_host, be_port, admin_user, file_location,
-                                 "contrailV2VirtualMachineInterface", update_version)
-    results.append(result)
-
-    file_location = base_file_location + "heat-types/"
-    result = createNormativeType(scheme, be_host, be_port, admin_user, file_location, "neutronPort", update_version)
-    results.append(result)
-
-    file_location = base_file_location + "heat-types/"
-    result = createNormativeType(scheme, be_host, be_port, admin_user, file_location, "contrailCompute", update_version)
-    results.append(result)
-
-    file_location = base_file_location + "heat-types/"
-    result = createNormativeType(scheme, be_host, be_port, admin_user, file_location, "novaServer", update_version)
-    results.append(result)
-
-    file_location = base_file_location + "heat-types/"
-    result = createNormativeType(scheme, be_host, be_port, admin_user, file_location, "contrailV2VirtualNetwork",
-                                 update_version)
-    results.append(result)
-
-    file_location = base_file_location + "heat-types/"
-    result = createNormativeType(scheme, be_host, be_port, admin_user, file_location, "contrailVirtualNetwork",
-                                 update_version)
-    results.append(result)
-
-    file_location = base_file_location + "heat-types/"
-    result = createNormativeType(scheme, be_host, be_port, admin_user, file_location, "neutronNet", update_version)
-    results.append(result)
-
-    handleResults(results)
-
-    error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPNormative.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPNormative.py
deleted file mode 100644
index 59fece9..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPNormative.py
+++ /dev/null
@@ -1,146 +0,0 @@
-import os
-import time
-from importCategoryTypes import importCategories
-from upgradeHeatAndNormativeTypes import upgradeTypesPerConfigFile
-from importDataTypes import importDataTypes
-from importPolicyTypes import importPolicyTypes
-from importGroupTypes import importGroupTypes
-from importNormativeCapabilities import importNormativeCapabilities
-from importNormativeRelationships import importNormativeRelationships
-from importNormativeInterfaceLifecycleTypes import importNormativeInterfaceLifecycleType
-from upgradeNfvTypes import upgradeNfvTypesPerConfigFile
-from upgradeONAPTypes import upgradeOnapTypesPerConfigFile
-from upgradeSolTypes import upgradeSolTypesPerConfigFile
-
-from importCommon import *
-import importCommon
-
-
-#################################################################################################################################################################################################
-#																																		       													#
-# Upgrades the normative types																										   															#
-# 																																			   													#
-# activation :																																   													#
-#       python upgradeNormative.py [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>] 		#
-#																																																#
-#																																		  	   													#
-# shortest activation (be host = localhost, be port = 8080, user = jh0003): 																				   									#
-#		python upgradeNormative.py												 				           																						#
-#																																		       													#
-#################################################################################################################################################################################################
-
-def usage():
-    print sys.argv[
-        0], '[-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user ' \
-            'userId> ] [-d <true|false> | --debug=<true|false>] '
-
-
-def handle_results(results):
-    if results is not None:
-        print_frame_line()
-        for result in results:
-            print_name_and_return_code(result[0], result[1])
-
-        print_frame_line()
-
-        failed_results = filter(lambda x: x[1] is None or x[1] not in [200, 201, 409], results)
-        if len(failed_results) > 0:
-            error_and_exit(1, None)
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    is_debug = None
-    update_version = 'true'
-    update_onap_version = 'false'
-    importCommon.debugFlag = False
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:d:v:h:s",
-                                   ["scheme=", "ip=", "port=", "user=", "debug=", "updateversion="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-d", "--debug"):
-            print arg
-            is_debug = bool(arg.lower() == "true" or arg.lower() == "yes")
-
-    print 'scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', user =', admin_user, ', debug =', is_debug
-
-    if is_debug is not None:
-        print 'set debug mode to ' + str(is_debug)
-        importCommon.debugFlag = is_debug
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    print sys.argv[0]
-    pathdir = os.path.dirname(os.path.realpath(sys.argv[0]))
-    debug("path dir =" + pathdir)
-
-    base_file_location = pathdir + "/../../../import/tosca/"
-
-    file_location = base_file_location + "categories/"
-    importCategories(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "relationship-types/"
-    importNormativeRelationships(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "data-types/"
-    importDataTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "policy-types/"
-    importPolicyTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "group-types/"
-    importGroupTypes(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "capability-types/"
-    importNormativeCapabilities(scheme, be_host, be_port, admin_user, False, file_location)
-
-    file_location = base_file_location + "interface-lifecycle-types/"
-    importNormativeInterfaceLifecycleType(scheme, be_host, be_port, admin_user, False, file_location)
-
-    print 'sleep until data type cache is updated'
-    time.sleep(70)
-
-    results_heat = upgradeTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_file_location, update_version)
-    handle_results(results_heat)
-
-    results_heat = upgradeNfvTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_file_location,
-                                                update_onap_version)
-    handle_results(results_heat)
-
-    results_heat = upgradeOnapTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_file_location,
-                                                 update_onap_version)
-    handle_results(results_heat)
-
-    results_heat = upgradeSolTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_file_location,
-                                                update_onap_version)
-    handle_results(results_heat)
-
-    error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPTypes.py
deleted file mode 100644
index bb26659..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPTypes.py
+++ /dev/null
@@ -1,101 +0,0 @@
-from importNormativeTypes import *
-
-
-################################################################################################################################################################################################
-#																																		                                                       #
-# Upgrades all Heat and Normative types confiugred in "typesToUpgrade.json" file																										       #
-# 																																			                                                   #
-# activation                                                                                                                                                                                   #
-#       python upgradeHeatAndNormativeTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ] #
-#																																		  	                                                   #
-# shortest activation (be host = localhost, be port = 8080): 																				                                                   #
-#		python upgradeHeatAndNormativeTypes.py [-f <input file> | --ifile=<input file> ]												 				                                       #
-#																																		                                                       #
-################################################################################################################################################################################################
-
-
-def upgradeOnapTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_dir, update_version):
-    response_codes = [200, 201]
-    results = []
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-    with open("onapTypesToUpgrade.json", 'r') as stream:
-        try:
-            types = json.load(stream)
-            onap_types = types["onap"]
-            debug(onap_types)
-            onap_file_dir = base_dir + "onap-types/"
-            debug(onap_file_dir)
-            for onap_type in onap_types:
-                result = createNormativeType(scheme, be_host, be_port, admin_user, onap_file_dir,
-                                             onap_type.encode('ascii', 'ignore'), update_version)
-                results.append(result)
-                if result[1] is None or result[1] not in response_codes:
-                    print "Failed creating onap type " + onap_type + ". " + str(result[1])
-        except Exception as exc:
-            print(exc)
-
-    return results
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    update_version = 'true'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:v:h:s:", ["ip=", "port=", "user=", "updateversion=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-v", "--updateversion"):
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    results = upgradeOnapTypesPerConfigFile(scheme, be_host, be_port, admin_user, "../../../import/tosca/",
-                                            update_version)
-
-    print "-----------------------------"
-    for result in results:
-        print "{0:20} | {1:6}".format(result[0], result[1])
-    print "-----------------------------"
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_normatives = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_normatives)) > 0:
-        error_and_exit(1, None)
-    else:
-        error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeSolTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeSolTypes.py
deleted file mode 100644
index aa60e4d..0000000
--- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeSolTypes.py
+++ /dev/null
@@ -1,100 +0,0 @@
-from importNormativeTypes import *
-
-
-################################################################################################################################################################################################
-#																																		                                                       #
-# Upgrades all Heat and Normative types confiugred in "typesToUpgrade.json" file																										       #
-# 																																			                                                   #
-# activation                                                                                                                                                                                   #
-#       python upgradeHeatAndNormativeTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ] #
-#																																		  	                                                   #
-# shortest activation (be host = localhost, be port = 8080): 																				                                                   #
-#		python upgradeHeatAndNormativeTypes.py [-f <input file> | --ifile=<input file> ]												 				                                       #
-#																																		                                                       #
-################################################################################################################################################################################################
-
-
-def upgradeSolTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_dir, update_version):
-    response_codes = [200, 201]
-    results = []
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-    with open("onapTypesToUpgrade.json", 'r') as stream:
-        try:
-            types = json.load(stream)
-            sol_types = types["sol"]
-            debug(sol_types)
-            sol_file_dir = base_dir + "sol-types/"
-            debug(sol_file_dir)
-            for solType in sol_types:
-                result = createNormativeType(scheme, be_host, be_port, admin_user, sol_file_dir,
-                                             solType.encode('ascii', 'ignore'), update_version)
-                results.append(result)
-                if result[1] is None or result[1] not in response_codes:
-                    print "Failed creating sol type " + solType + ". " + str(result[1])
-        except Exception as exc:
-            print(exc)
-
-    return results
-
-
-def main(argv):
-    print 'Number of arguments:', len(sys.argv), 'arguments.'
-
-    be_host = 'localhost'
-    be_port = '8080'
-    admin_user = 'jh0003'
-    update_version = 'true'
-    scheme = 'http'
-
-    try:
-        opts, args = getopt.getopt(argv, "i:p:u:v:h:s:", ["ip=", "port=", "user=", "updateversion=", "scheme="])
-    except getopt.GetoptError:
-        usage()
-        error_and_exit(2, 'Invalid input')
-
-    for opt, arg in opts:
-        # print opt, arg
-        if opt == '-h':
-            usage()
-            sys.exit(3)
-        elif opt in ("-i", "--ip"):
-            be_host = arg
-        elif opt in ("-p", "--port"):
-            be_port = arg
-        elif opt in ("-u", "--user"):
-            admin_user = arg
-        elif opt in ("-s", "--scheme"):
-            scheme = arg
-        elif opt in ("-v", "--updateversion"):
-            if arg.lower() == "false" or arg.lower() == "no":
-                update_version = 'false'
-
-    print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
-
-    if be_host is None:
-        usage()
-        sys.exit(3)
-
-    results = upgradeSolTypesPerConfigFile(scheme, be_host, be_port, admin_user, "../../../import/tosca/",
-                                           update_version)
-
-    print "-----------------------------"
-    for result in results:
-        print "{0:20} | {1:6}".format(result[0], result[1])
-    print "-----------------------------"
-
-    response_codes = [200, 201]
-
-    if update_version == 'false':
-        response_codes = [200, 201, 409]
-
-    failed_normatives = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
-    if len(list(failed_normatives)) > 0:
-        error_and_exit(1, None)
-    else:
-        error_and_exit(0, None)
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/__init__.py b/catalog-be/src/main/resources/scripts/sdcBePy/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/__init__.py
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/common/__init__.py b/catalog-be/src/main/resources/scripts/sdcBePy/common/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/common/__init__.py
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/common/bColors.py b/catalog-be/src/main/resources/scripts/sdcBePy/common/bColors.py
new file mode 100755
index 0000000..a14458b
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/common/bColors.py
@@ -0,0 +1,8 @@
+
+class BColors:
+
+    HEADER = '\033[95m'
+    WARNING = '\033[93m'
+    FAIL = '\033[91m'
+    END_C = '\033[0m'
+    BOLD = '\033[1m'
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/common/helpers.py b/catalog-be/src/main/resources/scripts/sdcBePy/common/helpers.py
new file mode 100644
index 0000000..0e6db5e
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/common/helpers.py
@@ -0,0 +1,3 @@
+
+def check_arguments_not_none(*args):
+    return None not in args
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/common/logger.py b/catalog-be/src/main/resources/scripts/sdcBePy/common/logger.py
new file mode 100644
index 0000000..e2e434f
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/common/logger.py
@@ -0,0 +1,83 @@
+import sys
+
+debugFlag = True
+
+
+def join_strings(lst):
+    return ''.join([str(string) for string in lst])
+
+
+def debug(desc, *args):
+    if debugFlag:
+        print(desc, join_strings(args))
+
+
+def log(desc, arg):
+    print(desc, arg)
+
+
+def error_and_exit(error_code, error_desc):
+    if error_code > 0:
+        print("status={0}. {1}".format(error_code, '' if not error_desc else error_desc))
+    else:
+        print("status={0}".format(error_code))
+    sys.exit(error_code)
+
+
+def print_name_and_return_code(name, code, with_line=True):
+    if _strings_correct(name, code):
+        if with_line:
+            print("----------------------------------------")
+        print("{0:30} | {1:6}".format(name, code))
+        if with_line:
+            print("----------------------------------------")
+    else:
+        print("name of the item or return code from request is none -> error occurred!!")
+
+
+def _strings_correct(*strings):
+    results = [(string is not None and string != "") for string in strings]
+    return all(results) is True
+
+# def parse_cmd_line_params(argv):
+#     print('Number of arguments:', len(sys.argv), 'arguments.')
+#
+#     opts = []
+#
+#     be_host = 'localhost'
+#     be_port = '8080'
+#     admin_user = 'jh0003'
+#     scheme = 'http'
+#
+#     try:
+#         opts, args = getopt.getopt(argv, "i:p:u:h:s:", ["ip=", "port=", "user=", "scheme="])
+#     except getopt.GetoptError:
+#         usage()
+#         error_and_exit(2, 'Invalid input')
+#
+#     for opt, arg in opts:
+#         # print opt, arg
+#         if opt == '-h':
+#             usage()
+#             sys.exit(3)
+#         elif opt in ("-i", "--ip"):
+#             be_host = arg
+#         elif opt in ("-p", "--port"):
+#             be_port = arg
+#         elif opt in ("-u", "--user"):
+#             admin_user = arg
+#         elif opt in ("-s", "--scheme"):
+#             scheme = arg
+#
+#     print('scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user)
+#
+#     if be_host is None:
+#         usage()
+#         sys.exit(3)
+#     return scheme, be_host, be_port, admin_user
+#
+#
+# def usage():
+#     print(sys.argv[0], '[optional -s <scheme> | --scheme=<scheme>, default http ] '
+#                        '[-i <be host> | --ip=<be host>] [-p <be port> | '
+#                        '--port=<be port> ] [-u <user userId> | --user=<user userId> ] ')
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/__init__.py b/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/__init__.py
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/main.py b/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/main.py
new file mode 100644
index 0000000..a30d46d
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/main.py
@@ -0,0 +1,16 @@
+from sdcBePy.common.normative.toscaElements import process_and_create_normative_element
+from sdcBePy.common.normative.toscaTypes import process_and_create_normative_types
+
+
+def process_element_list(normative_elements_list, sdc_be_proxy):
+    for normative_element in normative_elements_list:
+        process_and_create_normative_element(normative_element,
+                                             sdc_be_proxy=sdc_be_proxy)
+
+
+def process_type_list(normative_type_list, sdc_be_proxy, update_version):
+    for normative_type in normative_type_list:
+        process_and_create_normative_types(normative_type,
+                                           sdc_be_proxy=sdc_be_proxy,
+                                           update_version=update_version)
+
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/toscaElements.py b/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/toscaElements.py
new file mode 100644
index 0000000..1d4e734
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/toscaElements.py
@@ -0,0 +1,107 @@
+import json
+import zipfile
+
+import pycurl
+
+from sdcBePy.common.logger import debug, log, print_name_and_return_code, error_and_exit
+from sdcBePy.common.sdcBeProxy import SdcBeProxy
+
+
+def process_and_create_normative_element(normative_element,
+                                         scheme=None, be_host=None, be_port=None, admin_user=None, sdc_be_proxy=None,
+                                         debug=False,
+                                         exit_on_success=False):
+    if sdc_be_proxy is None:
+        sdc_be_proxy = SdcBeProxy(be_host, be_port, scheme, admin_user, debug=debug)
+
+    file_dir, url_suffix, element_name, element_from_name, with_metadata = normative_element.get_parameters()
+    _create_normative_element(sdc_be_proxy,
+                              file_dir,
+                              url_suffix,
+                              element_name,
+                              element_from_name,
+                              with_metadata,
+                              exit_on_success)
+
+
+def _create_normative_element(sdc_be_proxy, file_dir,
+                              url_suffix, element_name, element_form_name, with_metadata=False,
+                              exit_on_success=False):
+    result = _send_request(sdc_be_proxy,
+                           file_dir,
+                           url_suffix,
+                           element_name,
+                           element_form_name,
+                           with_metadata)
+    print_and_check_result(result, exit_on_success)
+
+
+def _send_request(sdc_be_proxy, file_dir, url_suffix, element_name,
+                  element_form_name,
+                  with_metadata=False):
+    try:
+        log("create normative element ", element_name)
+
+        type_file_name = file_dir + element_name
+        multi_part_form_data = _create_multipart_form_data(element_form_name, type_file_name, with_metadata,
+                                                           element_name)
+
+        http_res = sdc_be_proxy.post_file(url_suffix, multi_part_form_data)
+        if http_res is not None:
+            debug("http response =", http_res)
+        debug("response buffer", str(sdc_be_proxy.con.buffer.getvalue(), "UTF-8"))
+        # c.close()
+        return element_name, http_res, sdc_be_proxy.con.buffer.getvalue()
+
+    except Exception as inst:
+        print("ERROR=" + str(inst))
+        return element_name, None, None
+
+
+def _create_multipart_form_data(element_form_name, type_file_name, with_metadata, element_name):
+    tosca_type_zip_part = _create_zip_file_multi_part(element_form_name, type_file_name, element_name)
+    multi_part_form_data = [tosca_type_zip_part]
+    if with_metadata:
+        metadata_type_part = _create_metadata_multipart(type_file_name)
+        multi_part_form_data.append(metadata_type_part)
+    debug(multi_part_form_data)
+    return multi_part_form_data
+
+
+def _create_metadata_multipart(type_file_name):
+    metadata = _create_json_metadata_str(type_file_name)
+    return "toscaTypeMetadata", metadata
+
+
+def _create_zip_file_multi_part(element_form_name, type_file_name, element_name):
+    zf = zipfile.ZipFile(type_file_name + ".zip", "w")
+    zf.write(type_file_name + '.yml', element_name + '.yml')
+    zf.close()
+
+    tosca_type_zip_path = type_file_name + ".zip"
+    tosca_type_zip_part = (element_form_name, (pycurl.FORM_FILE, tosca_type_zip_path))
+    return tosca_type_zip_part
+
+
+def _create_json_metadata_str(file_name):
+    type_metadata_json_file = file_name + ".json"
+    debug(type_metadata_json_file)
+    json_file = open(type_metadata_json_file)
+
+    debug("before load json")
+    json_data = json.load(json_file, strict=False)
+    debug(json_data)
+
+    return json.dumps(json_data)
+
+
+def print_and_check_result(result, exit_on_success):
+    if result is not None:
+        print_name_and_return_code(result[0], result[1])
+        if result[1] is None or result[1] not in [200, 201, 409]:
+            error_and_exit(1, "Failed to create the normatives elements!!")
+        else:
+            if exit_on_success is True:
+                error_and_exit(0, "All normatives elements created successfully!!")
+    else:
+        error_and_exit(1, "Results is None!!")
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/toscaTypes.py b/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/toscaTypes.py
new file mode 100644
index 0000000..48b20cc
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/common/normative/toscaTypes.py
@@ -0,0 +1,121 @@
+import json
+import zipfile
+
+import pycurl
+
+from sdcBePy.common.logger import print_name_and_return_code, error_and_exit, log, debug
+from sdcBePy.common.sdcBeProxy import SdcBeProxy
+
+
+def process_and_create_normative_types(normative_type,
+                                       scheme=None, be_host=None, be_port=None, admin_user=None,
+                                       sdc_be_proxy=None,
+                                       update_version=False,
+                                       debug=False,
+                                       exit_on_success=False):
+    if sdc_be_proxy is None:
+        sdc_be_proxy = SdcBeProxy(be_host, be_port, scheme, admin_user, debug=debug)
+
+    file_dir, normative_type_list = normative_type.get_parameters()
+
+    results = _create_normatives_type(file_dir, sdc_be_proxy, normative_type_list, update_version)
+    print_and_check_results(results, update_version, exit_on_success)
+
+
+def print_and_check_results(results, update_version, exit_on_success=False):
+    if results is not None:
+        if len(results) == 0:
+            return
+        print("----------------------------------------")
+        for result in results:
+            print_name_and_return_code(result[0], result[1], with_line=False)
+        print("----------------------------------------")
+        check_results_and_exit(results, update_version, exit_on_success)
+    else:
+        error_and_exit(1, "results is none -> error occurred!!")
+
+
+def check_results_and_exit(results, update_version, exit_on_success):
+    if not _results_ok(results, _get_response_code(update_version)):
+        error_and_exit(1, "Failed to create the normatives types !!")
+    else:
+        if exit_on_success:
+            error_and_exit(0, "All normatives types created successfully!!")
+
+
+def _create_normatives_type(file_dir, sdc_be_proxy, types, update_version):
+    results = []
+    response_codes = _get_response_code(update_version)
+    for normativeType in types:
+        result = _send_request(sdc_be_proxy, file_dir, normativeType, update_version)
+        results.append(result)
+        if result[1] is None or result[1] not in response_codes:
+            print("Failed creating normative type " + normativeType + ". " + str(result[1]))
+    return results
+
+
+def _send_request(sdc_be_proxy, file_dir, element_name, update_version):
+    try:
+        log("create normative type ", element_name)
+        debug("userId", sdc_be_proxy.con.user_header)
+        debug("fileDir", file_dir)
+
+        url = '/sdc2/rest/v1/catalog/upload/multipart'
+        if update_version is not None:
+            url += '?createNewVersion=' + _boolean_to_string(update_version)
+
+        send = _create_send_body(file_dir, element_name)
+
+        debug(send)
+        httpRes = sdc_be_proxy.post_file(url, send)
+        if httpRes is not None:
+            debug("http response=", httpRes)
+        debug(sdc_be_proxy.con.buffer.getvalue())
+
+        return element_name, httpRes, sdc_be_proxy.con.buffer.getvalue()
+
+    except Exception as inst:
+        print("ERROR=" + str(inst))
+        return element_name, None, None
+
+
+def _create_send_body(file_dir, element_name):
+    yml_path = file_dir + element_name + "/" + element_name + ".yml"
+    path = file_dir + element_name + "/" + element_name + ".zip"
+
+    zf = zipfile.ZipFile(path, "w")
+    zf.write(yml_path, element_name + '.yml')
+    zf.close()
+
+    debug(path)
+    current_json_file = file_dir + element_name + "/" + element_name + ".json"
+
+    jsonFile = open(current_json_file)
+
+    debug("before load json")
+    json_data = json.load(jsonFile, strict=False)
+    debug(json_data)
+
+    jsonAsStr = json.dumps(json_data)
+
+    return [('resourceMetadata', jsonAsStr), ('resourceZip', (pycurl.FORM_FILE, path))]
+
+
+def _results_ok(results, response_codes):
+    for result in results:
+        if result[1] not in response_codes:
+            return False
+
+    return True
+
+
+def _get_response_code(update_version):
+    responseCodes = [200, 201]
+    if update_version is False:
+        responseCodes.append(409)
+
+    return responseCodes
+
+
+def _boolean_to_string(boolean_value):
+    return "true" if boolean_value else "false"
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/common/sdcBeProxy.py b/catalog-be/src/main/resources/scripts/sdcBePy/common/sdcBeProxy.py
new file mode 100755
index 0000000..4826170
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/common/sdcBeProxy.py
@@ -0,0 +1,117 @@
+import json
+from io import BytesIO
+
+import pycurl
+
+from sdcBePy.common.helpers import check_arguments_not_none
+
+
+def get_url(ip, port, protocol):
+    return "%s://%s:%s" % (protocol, ip, port)
+
+
+class SdcBeProxy:
+
+    def __init__(self, be_ip, be_port, scheme, user_id="jh0003",
+                 debug=False, connector=None):
+        if not check_arguments_not_none(be_ip, be_port, scheme, user_id):
+            raise AttributeError("The be_host, be_port, scheme or admin_user are missing")
+        url = get_url(be_ip, be_port, scheme)
+        self.con = connector if connector \
+            else CurlConnector(url, user_id, scheme=scheme, debug=debug)
+
+    def check_backend(self):
+        return self.con.get('/sdc2/rest/v1/user/jh0003')
+
+    def check_user(self, user_name):
+        return self.con.get("/sdc2/rest/v1/user/" + user_name)
+
+    def create_user(self, first_name, last_name, user_id, email, role):
+        return self.con.post('/sdc2/rest/v1/user', json.dumps({
+            'firstName': first_name,
+            'lastName': last_name,
+            'userId': user_id,
+            'email': email,
+            'role': role
+        }))
+
+    def post_file(self, path, multi_part_form_data):
+        return self.con.post_file(path, multi_part_form_data)
+
+
+class CurlConnector:
+    CONTENT_TYPE_HEADER = "Content-Type: application/json"
+    ACCEPT_HEADER = "Accept: application/json; charset=UTF-8"
+
+    def __init__(self, url, user_id_header, buffer=None, scheme="http", debug=False):
+        self.c = pycurl.Curl()
+        self.c.setopt(pycurl.HEADER, True)
+
+        self.user_header = "USER_ID: " + user_id_header
+
+        if not debug:
+            # disable printing not necessary logs in the terminal
+            self.c.setopt(pycurl.WRITEFUNCTION, lambda x: None)
+        else:
+            self.c.setopt(pycurl.VERBOSE, 1)
+
+        if not buffer:
+            self.buffer = BytesIO()
+
+        self.url = url
+        self._check_schema(scheme)
+
+    def get(self, path):
+        try:
+            self.c.setopt(pycurl.URL, self.url + path)
+            self.c.setopt(pycurl.HTTPHEADER, [self.user_header,
+                                              CurlConnector.CONTENT_TYPE_HEADER,
+                                              CurlConnector.ACCEPT_HEADER])
+
+            self.c.perform()
+            return self.c.getinfo(pycurl.RESPONSE_CODE)
+        except pycurl.error:
+            return 111
+
+    def post(self, path, data):
+        try:
+            self.c.setopt(pycurl.URL, self.url + path)
+            self.c.setopt(pycurl.POST, 1)
+            self.c.setopt(pycurl.HTTPHEADER, [self.user_header,
+                                              CurlConnector.CONTENT_TYPE_HEADER,
+                                              CurlConnector.ACCEPT_HEADER])
+
+            self.c.setopt(pycurl.POSTFIELDS, data)
+
+            self.c.perform()
+            self.c.setopt(pycurl.POST, 0)
+
+            return self.c.getinfo(pycurl.RESPONSE_CODE)
+        except pycurl.error:
+            return 111
+
+    def post_file(self, path, post_body, buffer=None):
+        try:
+            self.c.setopt(pycurl.URL, self.url + path)
+            self.c.setopt(pycurl.POST, 1)
+            self.c.setopt(pycurl.HTTPHEADER, [self.user_header])
+
+            self.c.setopt(pycurl.HTTPPOST, post_body)
+
+            write = self.buffer.write if not buffer else buffer.write
+            self.c.setopt(pycurl.WRITEFUNCTION, write)
+
+            self.c.perform()
+            self.c.setopt(pycurl.POST, 0)
+
+            return self.c.getinfo(pycurl.RESPONSE_CODE)
+        except pycurl.error:
+            return 111
+
+    def _check_schema(self, scheme):
+        if scheme == 'https':
+            self.c.setopt(pycurl.SSL_VERIFYPEER, 0)
+            self.c.setopt(pycurl.SSL_VERIFYHOST, 0)
+
+    def __del__(self):
+        self.c.close()
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/__init__.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/__init__.py
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/data/beConfig.json b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/data/beConfig.json
new file mode 100644
index 0000000..f8c740b
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/data/beConfig.json
@@ -0,0 +1,5 @@
+{
+  "beHost": "localhost",
+  "bePort": "8080",
+  "adminUser": "jh0003"
+}
\ No newline at end of file
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/onapTypesToUpgrade.json b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/data/onapTypesToUpgrade.json
similarity index 100%
rename from catalog-be/src/main/resources/scripts/import/tosca/onapTypesToUpgrade.json
rename to catalog-be/src/main/resources/scripts/sdcBePy/tosca/data/onapTypesToUpgrade.json
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/data/typesToUpgrade.json
similarity index 97%
rename from catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
rename to catalog-be/src/main/resources/scripts/sdcBePy/tosca/data/typesToUpgrade.json
index 4d59e02..5dd2001 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/data/typesToUpgrade.json
@@ -1,4 +1,4 @@
 {
     "heat": [],
     "normative": []
-}
+}
\ No newline at end of file
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/__init__.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/__init__.py
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/run.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/run.py
new file mode 100644
index 0000000..4d4eeaf
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/run.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+
+import sdcBePy.common.logger as logger
+from sdcBePy.common.normative.main import process_element_list, process_type_list
+from sdcBePy.common.sdcBeProxy import SdcBeProxy
+from sdcBePy.tosca.main import get_args, usage
+from sdcBePy.tosca.models.normativeElementsList import get_normative_element_candidate_list, \
+    get_normative_element_with_metadata_list
+from sdcBePy.tosca.models.normativeTypesList import get_normative_type_candidate_list
+
+
+def main():
+    scheme, be_host, be_port, admin_user, update_version, debug = get_args()
+
+    if debug is False:
+        print('Disabling debug mode')
+        logger.debugFlag = debug
+
+    try:
+        sdc_be_proxy = SdcBeProxy(be_host, be_port, scheme, admin_user, debug)
+    except AttributeError:
+        usage()
+        sys.exit(3)
+
+    # use to run script form this dir (not like the command)
+    # base_file_location = os.getcwd() + "/../../../../import/tosca/"
+    base_file_location = os.getcwd() + os.path.sep
+    logger.debug("working directory =" + base_file_location)
+
+    process_element_list(get_normative_element_candidate_list(base_file_location), sdc_be_proxy)
+    process_type_list(get_normative_type_candidate_list(base_file_location), sdc_be_proxy, update_version)
+    process_element_list(get_normative_element_with_metadata_list(base_file_location), sdc_be_proxy)
+
+    logger.log("Script end ->", "All normatives imported successfully!")
+    logger.error_and_exit(0, None)
+
+
+if __name__ == "__main__":
+    main()
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/runGenericNormative.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/runGenericNormative.py
new file mode 100644
index 0000000..424c0ca
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/runGenericNormative.py
@@ -0,0 +1,37 @@
+import os
+import sys
+from argparse import ArgumentParser
+
+from sdcBePy.common.normative.toscaTypes import process_and_create_normative_types
+from sdcBePy.tosca.main import usage, get_args
+from sdcBePy.tosca.models.normativeTypeCandidate import NormativeTypeCandidate
+
+
+def get_normative_prams():
+    parser = ArgumentParser()
+
+    path = os.path.dirname(__file__)
+    parser.add_argument('--location', default=path + os.path.sep)
+    parser.add_argument('--element', "-e", required=True)
+
+    args = parser.parse_args()
+
+    return args.location, [args.element]
+
+
+def main():
+    scheme, be_host, be_port, admin_user, _, debug = get_args()
+
+    candidate = NormativeTypeCandidate(*get_normative_prams())
+    try:
+        process_and_create_normative_types(candidate,
+                                           scheme, be_host, be_port, admin_user,
+                                           debug=debug,
+                                           exit_on_success=True)
+    except AttributeError:
+        usage()
+        sys.exit(3)
+
+
+if __name__ == '__main__':
+    main()
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/runNormativeElement.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/runNormativeElement.py
new file mode 100644
index 0000000..1bdb150
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/runNormativeElement.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python3
+
+import sys
+
+from sdcBePy.common.normative.toscaElements import process_and_create_normative_element
+from sdcBePy.tosca.main import get_args, usage
+from sdcBePy.tosca.models.normativeElementsList import get_capability, get_data, get_relationship, \
+    get_interface_lifecycle, get_categories, get_group, get_policy, get_annotation
+
+
+def run(candidate):
+    scheme, be_host, be_port, admin_user, _, debug = get_args()
+    try:
+        process_and_create_normative_element(candidate,
+                                             scheme, be_host, be_port, admin_user,
+                                             debug=debug,
+                                             exit_on_success=True)
+    except AttributeError:
+        usage()
+        sys.exit(3)
+
+
+def run_import_data():
+    data_candidate = get_data()
+    run(data_candidate)
+
+
+def run_import_capabilities():
+    capability_candidate = get_capability()
+    run(capability_candidate)
+
+
+def run_import_relationship():
+    relationship_candidate = get_relationship()
+    run(relationship_candidate)
+
+
+def run_import_interface_lifecycle():
+    interface_lifecycle_candidate = get_interface_lifecycle()
+    run(interface_lifecycle_candidate)
+
+
+def run_import_categories():
+    categories_candidate = get_categories()
+    run(categories_candidate)
+
+
+def run_import_group():
+    group_candidate = get_group()
+    run(group_candidate)
+
+
+def run_import_policy():
+    policy_candidate = get_policy()
+    run(policy_candidate)
+
+
+def run_import_annotation():
+    annotation_candidate = get_annotation()
+    run(annotation_candidate)
+
+
+if __name__ == '__main__':
+    run_import_data()
+    # run_import_capabilities()
+    # run_import_relationship()
+    # run_import_interface_lifecycle()
+    # run_import_categories()
+    # run_import_group()
+    # run_import_policy()
+    # run_import_annotation()
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/runNormativeType.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/runNormativeType.py
new file mode 100644
index 0000000..ee4e05b
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/imports/runNormativeType.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python3
+
+import sys
+
+from sdcBePy.common.normative.toscaTypes import process_and_create_normative_types
+from sdcBePy.tosca.main import get_args, usage
+from sdcBePy.tosca.models.normativeTypesList import get_normative, get_heat, get_nfv, get_onap, get_sol
+
+
+def run(candidate, exit_on_success=True):
+    scheme, be_host, be_port, admin_user, update_version, debug = get_args()
+    try:
+        process_and_create_normative_types(candidate,
+                                           scheme,
+                                           be_host,
+                                           be_port,
+                                           admin_user,
+                                           update_version=update_version,
+                                           debug=debug,
+                                           exit_on_success=exit_on_success)
+    except AttributeError:
+        usage()
+        sys.exit(3)
+
+
+def run_import_normative():
+    normative_candidate = get_normative()
+    run(normative_candidate)
+
+
+def run_import_heat():
+    heat_candidate = get_heat()
+    run(heat_candidate)
+
+
+def run_import_nfv():
+    nfv_candidate = get_nfv()
+    run(nfv_candidate)
+
+
+def run_import_onap():
+    onap_candidate = get_onap()
+    run(onap_candidate)
+
+
+def run_import_sol():
+    sol_candidate = get_sol()
+    run(sol_candidate)
+
+
+if __name__ == '__main__':
+    run_import_normative()
+    # run_import_heat()
+    # run_import_nfv()
+    # run_import_onap()
+    # run_import_sol()
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/main.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/main.py
new file mode 100644
index 0000000..2535ba6
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/main.py
@@ -0,0 +1,56 @@
+import json
+import os
+import sys
+from argparse import ArgumentParser
+
+
+def usage():
+    print(sys.argv[0],
+          '[-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | '
+          '--port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | '
+          '--debug=<true|false>] [-v <true|false> | --updateVersion=<true|false>]')
+
+
+def load_be_config(conf_path):
+    with open(conf_path, 'r') as f:
+        return json.load(f)
+
+
+def parse_param():
+    parser = ArgumentParser()
+
+    path = os.path.dirname(__file__)
+    parser.add_argument('--conf', default=os.path.join(path, 'data', 'beConfig.json'))
+
+    parser.add_argument('--ip', "-i")
+    parser.add_argument('--port', "-p")
+    parser.add_argument('--adminUser', "-a")
+    parser.add_argument('--https', action='store_true')
+    parser.add_argument('--updateVersion', action='store_false')
+    parser.add_argument('--debug', action='store_true')
+
+    args, _ = parser.parse_known_args()
+
+    return [args.conf, 'https' if args.https else 'http',
+            args.ip, args.port, args.adminUser, args.updateVersion,
+            args.debug]
+
+
+def get_args():
+    print('Number of arguments:', len(sys.argv), 'arguments.')
+
+    conf_path, scheme, be_host, be_port, admin_user, update_version, debug = parse_param()
+    defaults = load_be_config(conf_path)
+
+    # Use defaults if param not provided by the user
+    if be_host is None:
+        be_host = defaults["beHost"]
+    if be_port is None:
+        be_port = defaults["bePort"]
+    if admin_user is None:
+        admin_user = defaults["adminUser"]
+
+    print('scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', user =', admin_user,
+          ', debug =', debug, ', update_version =', update_version)
+
+    return scheme, be_host, be_port, admin_user, update_version, debug
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/__init__.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/__init__.py
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeElementCandidate.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeElementCandidate.py
new file mode 100644
index 0000000..96526ce
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeElementCandidate.py
@@ -0,0 +1,18 @@
+from sdcBePy.common.helpers import check_arguments_not_none
+
+
+class NormativeElementCandidate:
+
+    def __init__(self, file_dir, url_suffix,
+                 element_name, element_from_name, with_metadata=False):
+        if not check_arguments_not_none(file_dir, url_suffix, element_name, element_from_name):
+            raise AttributeError("The file_dir, url_suffix, element_name, element_from_name are missing")
+
+        self.file_dir = file_dir
+        self.url_suffix = url_suffix
+        self.element_name = element_name
+        self.element_form_name = element_from_name
+        self.with_metadata = with_metadata
+
+    def get_parameters(self):
+        return self.file_dir, self.url_suffix, self.element_name, self.element_form_name, self.with_metadata
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeElementsList.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeElementsList.py
new file mode 100644
index 0000000..cfef95d
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeElementsList.py
@@ -0,0 +1,76 @@
+from sdcBePy.tosca.models.normativeElementCandidate import NormativeElementCandidate
+
+
+def get_normative_element_candidate_list(base_file_location):
+    return [
+        get_data(base_file_location),
+        get_capability(base_file_location),
+        get_relationship(base_file_location),
+        get_interface_lifecycle(base_file_location),
+        get_categories(base_file_location)
+    ]
+
+
+def get_normative_element_with_metadata_list(base_file_location):
+    return [
+        get_group(base_file_location),
+        get_policy(base_file_location)
+    ]
+
+
+def get_data(base_file_location="/"):
+    return NormativeElementCandidate(base_file_location + "data-types/",
+                                     "/sdc2/rest/v1/catalog/uploadType/datatypes",
+                                     "dataTypes",
+                                     "dataTypesZip")
+
+
+def get_capability(base_file_location="/"):
+    return NormativeElementCandidate(base_file_location + "capability-types/",
+                                     "/sdc2/rest/v1/catalog/uploadType/capability",
+                                     "capabilityTypes",
+                                     "capabilityTypeZip")
+
+
+def get_relationship(base_file_location="/"):
+    return NormativeElementCandidate(base_file_location + "relationship-types/",
+                                     "/sdc2/rest/v1/catalog/uploadType/relationship",
+                                     "relationshipTypes",
+                                     "relationshipTypeZip")
+
+
+def get_interface_lifecycle(base_file_location="../../../import/tosca/"):
+    return NormativeElementCandidate(base_file_location + "interface-lifecycle-types/",
+                                     "/sdc2/rest/v1/catalog/uploadType/interfaceLifecycle",
+                                     "interfaceLifecycleTypes",
+                                     "interfaceLifecycleTypeZip")
+
+
+def get_categories(base_file_location="/"):
+    return NormativeElementCandidate(base_file_location + "categories/",
+                                     "/sdc2/rest/v1/catalog/uploadType/categories",
+                                     "categoryTypes",
+                                     "categoriesZip")
+
+
+def get_group(base_file_location="/"):
+    return NormativeElementCandidate(base_file_location + "group-types/",
+                                     "/sdc2/rest/v1/catalog/uploadType/grouptypes",
+                                     "groupTypes",
+                                     "groupTypesZip",
+                                     with_metadata=True)
+
+
+def get_policy(base_file_location="/"):
+    return NormativeElementCandidate(base_file_location + "policy-types/",
+                                     "/sdc2/rest/v1/catalog/uploadType/policytypes",
+                                     "policyTypes",
+                                     "policyTypesZip",
+                                     with_metadata=True)
+
+
+def get_annotation(base_file_location="/"):
+    return NormativeElementCandidate(base_file_location + "annotation-types",
+                                     "/sdc2/rest/v1/catalog/uploadType/annotationtypes",
+                                     "annotationTypesZip",
+                                     "annotationTypes")
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeToUpdateList.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeToUpdateList.py
new file mode 100644
index 0000000..a283018
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeToUpdateList.py
@@ -0,0 +1,60 @@
+import json
+
+from sdcBePy.tosca.models.normativeTypeCandidate import NormativeTypeCandidate
+
+
+class TypesToUpdate:
+
+    def __init__(self, files):
+        self.types_list = {}
+        self.load_files(files)
+
+    def load_files(self, files):
+        for file in files:
+            with open(file, 'r') as stream:
+                _types = json.load(stream)
+                for type_key, type_value in _types.items():
+                    self.types_list[type_key] = type_value
+
+    def get_type(self, key):
+        return self.types_list[key]
+
+
+def get_heat_and_normative_to_update_list(types, base_file_location):
+    return [
+        get_heat(types, base_file_location),
+        get_normative(types, base_file_location)
+    ]
+
+
+def get_nfv_onap_sol_to_update_list(types, base_file_location):
+    return [
+        get_nfv(types, base_file_location),
+        get_onap(types, base_file_location),
+        get_sol(types, base_file_location)
+    ]
+
+
+def get_heat(types, base_location="/"):
+    return NormativeTypeCandidate(base_location + "heat-types/",
+                                  types.get_type("heat"))
+
+
+def get_normative(types, base_location="/"):
+    return NormativeTypeCandidate(base_location + "normative-types/",
+                                  types.get_type("normative"))
+
+
+def get_nfv(types, base_location="/"):
+    return NormativeTypeCandidate(base_location + "nfv-types/",
+                                  types.get_type("nfv"))
+
+
+def get_onap(types, base_location="/"):
+    return NormativeTypeCandidate(base_location + "onap-types/",
+                                  types.get_type("onap"))
+
+
+def get_sol(types, base_location="/"):
+    return NormativeTypeCandidate(base_location + "sol-types/",
+                                  types.get_type("sol"))
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeTypeCandidate.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeTypeCandidate.py
new file mode 100644
index 0000000..929ec4f
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeTypeCandidate.py
@@ -0,0 +1,14 @@
+from sdcBePy.common.helpers import check_arguments_not_none
+
+
+class NormativeTypeCandidate:
+
+    def __init__(self, file_dir, normative_types_list):
+        if not check_arguments_not_none(file_dir, normative_types_list):
+            raise AttributeError("The file_dir, normative_types_list are missing")
+
+        self.file_dir = file_dir
+        self.normative_types_list = normative_types_list
+
+    def get_parameters(self):
+        return self.file_dir, self.normative_types_list
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeTypesList.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeTypesList.py
new file mode 100644
index 0000000..eea2543
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/models/normativeTypesList.py
@@ -0,0 +1,161 @@
+from sdcBePy.tosca.models.normativeTypeCandidate import NormativeTypeCandidate
+
+
+def get_normative_type_candidate_list(base_file_location):
+    return [
+        get_normative(base_file_location),
+        get_heat(base_file_location),
+        get_nfv(base_file_location),
+        get_onap(base_file_location),
+        get_sol(base_file_location)
+    ]
+
+
+def get_normative(base_file_location="/"):
+    return NormativeTypeCandidate(base_file_location + "normative-types/",
+                                  ["root",
+                                   "compute",
+                                   "softwareComponent",
+                                   "webServer",
+                                   "webApplication",
+                                   "DBMS",
+                                   "database",
+                                   "objectStorage",
+                                   "blockStorage",
+                                   "containerRuntime",
+                                   "containerApplication",
+                                   "loadBalancer",
+                                   "port", "network"])
+
+
+def get_heat(base_file_location="/"):
+    return NormativeTypeCandidate(base_file_location + "heat-types/",
+                                  ["globalNetwork",
+                                   "globalPort",
+                                   "globalCompute",
+                                   "volume",
+                                   "cinderVolume",
+                                   "contrailVirtualNetwork",
+                                   "neutronNet",
+                                   "neutronPort",
+                                   "novaServer",
+                                   "extVl",
+                                   "internalVl",
+                                   "extCp",
+                                   "vl",
+                                   "eline",
+                                   "abstractSubstitute",
+                                   "Generic_VFC",
+                                   "Generic_VF",
+                                   "Generic_CR",
+                                   "Generic_PNF",
+                                   "Generic_Service",
+                                   "contrailNetworkRules",
+                                   "contrailPort",
+                                   "portMirroring",
+                                   "serviceProxy",
+                                   "contrailV2NetworkRules",
+                                   "contrailV2VirtualNetwork",
+                                   "securityRules",
+                                   "contrailAbstractSubstitute",
+                                   "contrailCompute",
+                                   "contrailV2VirtualMachineInterface",
+                                   "subInterface",
+                                   "contrailV2VLANSubInterface",
+                                   "multiFlavorVFC",
+                                   "vnfConfiguration",
+                                   "extCp2",
+                                   "extNeutronCP",
+                                   "extContrailCP",
+                                   "portMirroringByPolicy",
+                                   "forwardingPath",
+                                   "configuration",
+                                   "VRFObject",
+                                   "extVirtualMachineInterfaceCP",
+                                   "VLANNetworkReceptor",
+                                   "VRFEntry",
+                                   "subInterfaceV2",
+                                   "contrailV2VLANSubInterfaceV2",
+                                   "fabricConfiguration"])
+
+
+def get_nfv(base_file_location="/"):
+    return NormativeTypeCandidate(base_file_location + "nfv-types/",
+                                  ["underlayVpn",
+                                   "overlayTunnel",
+                                   "genericNeutronNet",
+                                   "allottedResource",
+                                   "extImageFile",
+                                   "extLocalStorage",
+                                   "extZteCP",
+                                   "extZteVDU",
+                                   "extZteVL",
+                                   "NSD",
+                                   "VDU",
+                                   "vduCompute",
+                                   "Cp",
+                                   "vduVirtualStorage",
+                                   "vduVirtualBlockStorage",
+                                   "vduVirtualFileStorage",
+                                   "vduVirtualObjectStorage",
+                                   "vduVirtualStorage",
+                                   "vnfVirtualLink",
+                                   "vnfExtCp",
+                                   "vduCp",
+                                   "VNF",
+                                   "PonUni",
+                                   "OltNni",
+                                   "OntNni"])
+
+
+def get_onap(base_file_location="/"):
+    return NormativeTypeCandidate(base_file_location + "onap-types/",
+                                  # Add desired type names to the list
+                                  [])
+
+
+def get_sol(base_file_location="/"):
+    return NormativeTypeCandidate(base_file_location + "onap-types/",
+                                  # Add desired type names to the list
+                                  [])
+
+
+def get_heat1707(base_file_location="/"):
+    return NormativeTypeCandidate(base_file_location + "heat-types/",
+                                  ["volume",
+                                   "cinderVolume",
+                                   "extVl",
+                                   "extCp",
+                                   "Generic_VFC",
+                                   "Generic_VF",
+                                   "Generic_PNF",
+                                   "Generic_Service",
+                                   "globalPort",
+                                   "globalNetwork",
+                                   "contrailV2VirtualMachineInterface",
+                                   "contrailV2VLANSubInterface",
+                                   "contrailPort",
+                                   "contrailV2VirtualNetwork",
+                                   "contrailVirtualNetwork",
+                                   "neutronNet",
+                                   "neutronPort",
+                                   "multiFlavorVFC",
+                                   "vnfConfiguration"])
+
+
+def get_heat1702_3537(base_file_location="/"):
+    return NormativeTypeCandidate(base_file_location + "heat-types/",
+                                  ["contrailPort",
+                                   "contrailV2VirtualMachineInterface",
+                                   "neutronPort",
+                                   "contrailCompute",
+                                   "novaServer",
+                                   "contrailV2VirtualNetwork",
+                                   "contrailVirtualNetwork",
+                                   "neutronNet"])
+
+
+def get_heat_version(base_file_location="/"):
+    return NormativeTypeCandidate(base_file_location + "heat_types/",
+                                  ["contrailV2VirtualMachineInterface",
+                                   "neutronPort"])
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/upgrade/__init__.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/upgrade/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/upgrade/__init__.py
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/upgrade/run.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/upgrade/run.py
new file mode 100644
index 0000000..6d90a1c
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/upgrade/run.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+
+from sdcBePy.common import logger
+from sdcBePy.common.logger import error_and_exit
+from sdcBePy.common.normative.main import process_element_list, process_type_list
+from sdcBePy.common.sdcBeProxy import SdcBeProxy
+from sdcBePy.tosca.main import get_args, usage
+from sdcBePy.tosca.models.normativeElementsList import get_normative_element_candidate_list, \
+    get_normative_element_with_metadata_list
+from sdcBePy.tosca.models.normativeToUpdateList import TypesToUpdate, get_heat_and_normative_to_update_list, \
+    get_nfv_onap_sol_to_update_list
+
+
+def main():
+    scheme, be_host, be_port, admin_user, _, debug = get_args()
+
+    update_version = True
+    update_onap_version = False
+
+    if debug is False:
+        print('Disabling debug mode')
+        logger.debugFlag = debug
+
+    try:
+        sdc_be_proxy = SdcBeProxy(be_host, be_port, scheme, admin_user, debug=debug)
+    except AttributeError:
+        usage()
+        sys.exit(3)
+
+    # use to run script form this dir (not like the command)
+    # base_file_location = os.getcwd() + "/../../../../import/tosca/"
+    base_file_location = os.getcwd() + "/"
+    logger.debug("working directory =" + base_file_location)
+    process_element_list(get_normative_element_candidate_list(base_file_location), sdc_be_proxy)
+    process_element_list(get_normative_element_with_metadata_list(base_file_location), sdc_be_proxy)
+
+    all_types = get_all_types()
+
+    heat_and_normative_list = get_heat_and_normative_to_update_list(all_types, base_file_location)
+    process_type_list(heat_and_normative_list, sdc_be_proxy, update_version)
+
+    nfv_onap_sol_list = get_nfv_onap_sol_to_update_list(all_types, base_file_location)
+    process_type_list(nfv_onap_sol_list, sdc_be_proxy, update_onap_version)
+
+    logger.log("Updating end ->", "All normatives updated successfully!")
+    error_and_exit(0, None)
+
+
+def get_all_types():
+    path = os.path.dirname(__file__)
+    return TypesToUpdate([path + "/../data/typesToUpgrade.json",
+                          path + "/../data/onapTypesToUpgrade.json"])
+
+
+if __name__ == "__main__":
+    main()
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/tosca/upgrade/runUpgradeNormative.py b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/upgrade/runUpgradeNormative.py
new file mode 100644
index 0000000..4b0d0cc
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/tosca/upgrade/runUpgradeNormative.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python3
+
+from sdcBePy.tosca.imports.runNormativeType import run
+from sdcBePy.tosca.models.normativeToUpdateList import get_heat, get_normative, get_nfv, get_onap, get_sol
+from sdcBePy.tosca.models.normativeTypesList import get_heat1707, get_heat1702_3537, get_heat_version
+from sdcBePy.tosca.upgrade.run import get_all_types
+
+all_types = get_all_types()
+
+
+def run_upgrade_heat():
+    normative_candidate = get_heat(all_types)
+    run(normative_candidate)
+
+
+def run_upgrade_normative():
+    normative_candidate = get_normative(all_types)
+    run(normative_candidate)
+
+
+def run_upgrade_nfv():
+    normative_candidate = get_nfv(all_types)
+    run(normative_candidate)
+
+
+def run_upgrade_onap():
+    normative_candidate = get_onap(all_types)
+    run(normative_candidate)
+
+
+def run_upgrade_sol():
+    normative_candidate = get_sol(all_types)
+    run(normative_candidate)
+
+
+def run_upgrade_heat1707():
+    normative_candidate = get_heat1707()
+    run(normative_candidate)
+
+
+def run_upgrade_heat1707_3537():
+    normative_candidate = get_heat1702_3537()
+    run(normative_candidate)
+
+
+def run_upgrade_heat_version():
+    normative_candidate = get_heat_version()
+    run(normative_candidate)
+
+
+if __name__ == '__main__':
+    run_upgrade_heat()
+    # run_upgrade_normative()
+    # run_upgrade_nfv()
+    # run_upgrade_onap()
+    # run_upgrade_sol()
+    # run_upgrade_heat1707()
+    # run_upgrade_heat1707_3537()
+    # run_upgrade_heat_version()
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/users/__init__.py b/catalog-be/src/main/resources/scripts/sdcBePy/users/__init__.py
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/users/__init__.py
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/users/data/users.json b/catalog-be/src/main/resources/scripts/sdcBePy/users/data/users.json
new file mode 100755
index 0000000..9ce2be4
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/users/data/users.json
@@ -0,0 +1,44 @@
+[
+  {
+    "userId": "demo",
+    "firstName": "demo",
+    "lastName": "demo",
+    "role": "ADMIN",
+    "email": "demo@openecomp.org"
+  },
+  {
+    "userId": "op0001",
+    "firstName": "Oper",
+    "lastName": "P",
+    "role": "OPS",
+    "email": "op0001@openecomp.org"
+  },
+  {
+    "userId": "gv0001",
+    "firstName": "Giuseppe",
+    "lastName": "Verdi",
+    "role": "GOVERNOR",
+    "email": "gv0001@openecomp.org"
+  },
+  {
+    "userId": "jh0003",
+    "firstName": "Jimmy",
+    "lastName": "Hendrix",
+    "role": "Admin",
+    "email": "jh0003@openecomp.org"
+  },
+  {
+    "userId": "jm0007",
+    "firstName": "Joni",
+    "lastName": "Mitchell",
+    "role": "TESTER",
+    "email": "jm0007@openecomp.org"
+  },
+  {
+    "userId": "cs0008",
+    "firstName": "Carlos",
+    "lastName": "Santana",
+    "role": "DESIGNER",
+    "email": "cs0008r@openecomp.org"
+  }
+]
\ No newline at end of file
diff --git a/catalog-be/src/main/resources/scripts/sdcBePy/users/run.py b/catalog-be/src/main/resources/scripts/sdcBePy/users/run.py
new file mode 100755
index 0000000..b933afe
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/sdcBePy/users/run.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python3
+
+import json
+import os
+import time
+from argparse import ArgumentParser
+
+from sdcBePy.common.bColors import BColors
+from sdcBePy.common.healthCheck import check_backend, RETRY_ATTEMPTS
+from sdcBePy.common.sdcBeProxy import SdcBeProxy
+
+colors = BColors()
+
+
+def load_users(conf_path):
+    with open(conf_path, 'r') as f:
+        return json.load(f)
+
+
+def be_user_init(be_ip, be_port, protocol, conf_path):
+    sdc_be_proxy = SdcBeProxy(be_ip, be_port, protocol)
+    if check_backend(sdc_be_proxy, RETRY_ATTEMPTS):
+        users = load_users(conf_path)
+        for user in users:
+            if sdc_be_proxy.check_user(user['userId']) != 200:
+                result = sdc_be_proxy.create_user(user['firstName'],
+                                                  user['lastName'],
+                                                  user['userId'],
+                                                  user['email'],
+                                                  user['role'])
+                if result == 201:
+                    print('[INFO]: ' + user['userId'] +
+                          ' created, result: [' + str(result) + ']')
+                else:
+                    print('[ERROR]: ' + colors.FAIL + user['userId'] + colors.END_C +
+                          ' error creating , result: [' + str(result) + ']')
+            else:
+                print('[INFO]: ' + user['userId'] + ' already exists')
+    else:
+        print('[ERROR]: ' + time.strftime('%Y/%m/%d %H:%M:%S') + colors.FAIL
+              + 'Backend is DOWN :-(' + colors.END_C)
+        raise Exception("Cannot communicate with the backend!")
+
+
+def get_args():
+    parser = ArgumentParser()
+
+    parser.add_argument('-i', '--ip', required=True)
+    parser.add_argument('-p', '--port', required=True)
+    parser.add_argument('--https', action='store_true')
+    path = os.path.dirname(__file__)
+    parser.add_argument('--conf', default=os.path.join(path, 'data', 'users.json'))
+
+    args = parser.parse_args()
+
+    return [args.ip, args.port, 'https' if args.https else 'http', args.conf]
+
+
+def main():
+    be_user_init(*get_args())
+
+
+if __name__ == "__main__":
+    main()
diff --git a/catalog-be/src/main/resources/scripts/setup.py b/catalog-be/src/main/resources/scripts/setup.py
new file mode 100644
index 0000000..9df26a7
--- /dev/null
+++ b/catalog-be/src/main/resources/scripts/setup.py
@@ -0,0 +1,43 @@
+from setuptools import setup, find_packages
+
+setup(
+    name='sdcBePy',
+    version='1.7',
+    packages=find_packages(),
+    url='',
+    license='',
+    author='',
+    author_email='',
+    description='',
+    package_data={'': ['data/*.json']},
+    include_package_data=True,
+    entry_points={
+        "console_scripts": [
+            "sdcuserinit=sdcBePy.users.run:main",
+            "sdcimportall=sdcBePy.tosca.imports.run:main",
+            "sdcimportdata=sdcBePy.tosca.imports.runNormativeElement:run_import_data",
+            "sdcimportcapabilities=sdcBePy.tosca.imports.runNormativeElement:run_import_capabilities",
+            "sdcimportrelationship=sdcBePy.tosca.imports.runNormativeElement:run_import_relationship",
+            "sdcimportinterfacelifecycle=sdcBePy.tosca.imports.runNormativeElement:run_import_interface_lifecycle",
+            "sdcimportcategories=sdcBePy.tosca.imports.runNormativeElement:run_import_categories",
+            "sdcimportgroup=sdcBePy.tosca.imports.runNormativeElement:run_import_group",
+            "sdcimportpolicy=sdcBePy.tosca.imports.runNormativeElement:run_import_policy",
+            "sdcimportnormative=sdcBePy.tosca.imports.runNormativeType:run_import_normative",
+            "sdcimportheat=sdcBePy.tosca.imports.runNormativeType:run_import_heat",
+            "sdcimportnfv=sdcBePy.tosca.imports.runNormativeType:run_import_nfv",
+            "sdcimportonap=sdcBePy.tosca.imports.runNormativeType:run_import_onap",
+            "sdcimportsol=sdcBePy.tosca.imports.runNormativeType:run_import_sol",
+            "sdcimportannotation=sdcBePy.tosca.imports.runNormativeType:run_import_annotation",
+            "sdcimportgeneric=sdcBePy.tosca.imports.runGenericNormative:main",
+            "sdcupgradeall=sdcBePy.tosca.upgrade.run:main",
+            "sdcupgradenfv=sdcBePy.tosca.upgrade.runUpgradeNormative:run_upgrade_nfv",
+            "sdcupgradeonap=sdcBePy.tosca.upgrade.runUpgradeNormative:run_upgrade_onap",
+            "sdcupgradesol=sdcBePy.tosca.upgrade.runUpgradeNormative:run_upgrade_sol",
+            "sdcupgradeheat1707=sdcBePy.tosca.upgrade.runUpgradeNormative:run_upgrade_heat1707",
+            "sdcupgradeheat1707_3537=sdcBePy.tosca.upgrade.runUpgradeNormative:run_upgrade_heat1707_3537",
+            "sdcupgradeheatversion=sdcBePy.tosca.upgrade.runUpgradeNormative:run_upgrade_heat_version",
+            "sdccheckbackend=sdcBePy.common.healthCheck:main",
+            "sdcconsumerinit=sdcBePy.consumers.run:main"
+        ]
+    }, install_requires=['pycurl']
+)
diff --git a/sdc-os-chef/scripts/docker_run.sh b/sdc-os-chef/scripts/docker_run.sh
index e641594..7880578 100755
--- a/sdc-os-chef/scripts/docker_run.sh
+++ b/sdc-os-chef/scripts/docker_run.sh
@@ -23,6 +23,8 @@
 ONBOARD_DEBUG_PORT="--publish 4001:4001"
 CS_PORT=${CS_PORT:-9042}
 
+OS_USER="onap"
+
 
 # Java Options:
 BE_JAVA_OPTIONS="-Xdebug -agentlib:jdwp=transport=dt_socket,address=4000,server=y,suspend=n -Xmx1536m -Xms1536m"
@@ -332,7 +334,7 @@
     if [ ${LOCAL} = false ]; then
         docker pull ${PREFIX}/sdc-backend-init:${RELEASE}
     fi
-    docker run --name ${DOCKER_NAME} --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 ${LOCAL_TIME_MOUNT_CMD} --volume ${WORKSPACE}/data/logs/BE/:${JETTY_BASE}/logs  --volume ${WORKSPACE}/data/environments:/home/sdc/chef-solo/environments ${PREFIX}/sdc-backend-init:${RELEASE} > /dev/null 2>&1
+    docker run --name ${DOCKER_NAME} --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --ulimit nofile=4096:100000 ${LOCAL_TIME_MOUNT_CMD} --volume ${WORKSPACE}/data/logs/BE/:${JETTY_BASE}/logs  --volume ${WORKSPACE}/data/environments:/home/${OS_USER}/chef-solo/environments ${PREFIX}/sdc-backend-init:${RELEASE} > /dev/null 2>&1
     rc=$?
     docker_logs ${DOCKER_NAME}
     if [[ ${rc} != 0 ]]; then exit ${rc}; fi