Merge branch 'master' into v7.0

Change-Id: Iec1f1db2b2d4953e560c8e8b7be2f6ddca86edd1
Signed-off-by: beierlm <mark.beierl@canonical.com>
diff --git a/robot-systest/README.md b/robot-systest/README.md
new file mode 100644
index 0000000..99e957d
--- /dev/null
+++ b/robot-systest/README.md
@@ -0,0 +1,52 @@
+<!--
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+# Robot Framework: Test usage
+
+## Requirements
+
+- OSM client installed (<https://osm.etsi.org/docs/user-guide/03-installing-osm.html#installing-standalone-osm-client>)
+- devops repository cloned in home (<https://osm.etsi.org/gerrit/#/admin/projects/osm/devops>)
+- The descriptor packages used on each test are expected to be in `${PACKAGES_FOLDER}`.
+- A set of environment variables (there is an example file located at devops/robot-systest/environment.rc):
+  - `OSM_HOSTNAME`: IP address of target OSM.
+  - `OS_CLOUD`: Cloud credentialss.
+  - `VIM_TARGET`: VIM where tests will be run.
+  - `VIM_MGMT_NET`: VIM management network, reachable from robot.
+  - `PACKAGES_FOLDER`: Where descriptor packages are located.
+  - `ROBOT_DEVOPS_FOLDER`: Where the devops repository is located.
+  - `ROBOT_REPORT_FOLDER`: Where robot outpul will be placed.
+
+## Installation
+
+```bash
+sudo -H python3 -m pip install --ignore-installed haikunator requests pyvcloud progressbar pathlib robotframework robotframework-seleniumlibrary robotframework-requests robotframework-SSHLibrary
+curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
+sudo add-apt-repository -y "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main"
+sudo apt-get install -y google-chrome-stable chromium-chromedriver
+sudo apt-get install -y python3-openstackclient  # Installs Queens by default
+```
+
+## Usage
+
+Example using hackfest basic test. 
+
+```bash
+
+# Set your environment variables in environment.rc as specified in requirements
+source environment.rc
+
+cd ~/devops/robot-systest
+robot -d ${ROBOT_REPORT_FOLDER} testsuite/hackfest_basic.robot
+```
diff --git a/robot-systest/README_Robot_Test.md b/robot-systest/deprecated/README_Robot_Test.md
similarity index 100%
rename from robot-systest/README_Robot_Test.md
rename to robot-systest/deprecated/README_Robot_Test.md
diff --git a/robot-systest/lib/api/common.robot b/robot-systest/deprecated/lib/api/common.robot
similarity index 100%
rename from robot-systest/lib/api/common.robot
rename to robot-systest/deprecated/lib/api/common.robot
diff --git a/robot-systest/lib/api/vim_lib.robot b/robot-systest/deprecated/lib/api/vim_lib.robot
similarity index 100%
rename from robot-systest/lib/api/vim_lib.robot
rename to robot-systest/deprecated/lib/api/vim_lib.robot
diff --git a/robot-systest/lib/cli/network_slicing_lib.robot b/robot-systest/deprecated/lib/cli/network_slicing_lib.robot
similarity index 99%
rename from robot-systest/lib/cli/network_slicing_lib.robot
rename to robot-systest/deprecated/lib/cli/network_slicing_lib.robot
index 8ed3e63..9a3ff37 100644
--- a/robot-systest/lib/cli/network_slicing_lib.robot
+++ b/robot-systest/deprecated/lib/cli/network_slicing_lib.robot
@@ -36,8 +36,8 @@
     [Arguments]  ${nst_pkg}
 
     ${rc}   ${stdout}=      Run and Return RC and Output	    osm nst-create ${nst_pkg}
-    Should Be Equal As Integers 	${rc}	  ${success_return_code}
     log     ${stdout}
+    Should Be Equal As Integers 	${rc}	  ${success_return_code}
     [Return]  ${stdout}
 
 
@@ -46,8 +46,8 @@
     [Arguments]  ${nst}
 
     ${rc}   ${stdout}=      Run and Return RC and Output	    osm nst-delete ${nst}
-    Should Be Equal As Integers 	${rc}	  ${success_return_code}
     log     ${stdout}
+    Should Be Equal As Integers 	${rc}	  ${success_return_code}
     [Return]  ${stdout}
 
 
@@ -66,8 +66,8 @@
     [Arguments]  ${nsi_name}    ${nst_name}    ${vim}    ${config}
 
     ${rc}   ${stdout}=      Run and Return RC and Output    osm nsi-create --nsi_name ${nsi_name} --nst_name ${nst_name} --vim_account ${vim} --config ${config}
-    Should Be Equal As Integers    ${rc}    ${success_return_code}
     log     ${stdout}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
     Append To List     ${nsi_list}       ${nsi_name}
 
 
@@ -75,8 +75,8 @@
     [Arguments]  ${nsi_name}    ${nst_name}    ${vim}
 
     ${rc}   ${stdout}=      Run and Return RC and Output    osm nsi-create --nsi_name ${nsi_name} --nst_name ${nst_name} --vim_account ${vim}
-    Should Be Equal As Integers    ${rc}    ${success_return_code}
     log     ${stdout}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
     Append To List     ${nsi_list}       ${nsi_name}
 
 
@@ -84,8 +84,8 @@
     [Arguments]  ${nsi_name}
 
     ${rc}   ${stdout}=      Run and Return RC and Output    osm nsi-list --filter name="${nsi_name}"
-    Should Be Equal As Integers    ${rc}    ${success_return_code}
     log     ${stdout}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
     Should Not Contain      ${stdout}   failed
 
 
@@ -93,8 +93,8 @@
     [Arguments]  ${nsi_name}
 
     ${rc}   ${stdout}=      Run and Return RC and Output    osm nsi-list --filter name="${nsi_name}"
-    Should Be Equal As Integers    ${rc}    ${success_return_code}
     log     ${stdout}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
     Should Contain Any      ${stdout}   configured    failed
 
 
@@ -103,8 +103,8 @@
     [Arguments]  ${nsi}
 
     ${rc}   ${stdout}=      Run and Return RC and Output    osm nsi-delete ${nsi}
-    Should Be Equal As Integers    ${rc}    ${success_return_code}
     log     ${stdout}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
 
     WAIT UNTIL KEYWORD SUCCEEDS  ${delete_max_wait_time}   ${delete_pol_time}   Check For NSI Instance To Be Delete   ${nsi}
 
@@ -113,6 +113,6 @@
     [Arguments]  ${nsi}
 
     ${rc}   ${stdout}=      Run and Return RC and Output    osm nsi-list
-    Should Be Equal As Integers    ${rc}    ${success_return_code}
     log     ${stdout}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
     Should Not Contain      ${stdout}   ${nsi}
diff --git a/robot-systest/lib/cli/ns_lib.robot b/robot-systest/deprecated/lib/cli/ns_lib.robot
similarity index 70%
rename from robot-systest/lib/cli/ns_lib.robot
rename to robot-systest/deprecated/lib/cli/ns_lib.robot
index 254bc6a..e0eb0c2 100644
--- a/robot-systest/lib/cli/ns_lib.robot
+++ b/robot-systest/deprecated/lib/cli/ns_lib.robot
@@ -40,6 +40,23 @@
     Should Be Equal As Integers    ${rc}    ${success_return_code}
 
 
+Get NS Instance ID
+    [Arguments]    ${ns_name}
+
+    ${rc}   ${stdout}=      Run and Return RC and Output    osm ns-list --filter name="${ns_name}" | awk 'NR==4{print $4}'
+    log     ${stdout}
+    [Return]    ${stdout}
+
+
+Verify All JUJU Applications Status
+    [Arguments]    ${ns}    ${api_ip}    ${api_port}    ${username}    ${password}    ${api_cert_path}
+
+    ${juju_model}=    Get NS Instance ID    ${ns}
+
+    Import Library    robot_juju.JujuLibrary    ${api_ip}    ${api_port}    ${juju_model}    ${username}    ${password}    ${api_cert_path}
+    Assert status of applications is  ${status_active}
+
+
 Launch Network Services and Return
     [Arguments]  ${vim_name}  ${ns_config}=''
     [Documentation]  Get Configuration parameter to create Newtork service
@@ -144,3 +161,33 @@
     log     ${stdout}
     Should Be Equal As Integers    ${rc}    ${success_return_code}
     WAIT UNTIL KEYWORD SUCCEEDS    ${ns_delete_max_wait_time}   ${ns_delete_pol_time}   Check For NS Instance To Be Delete   ${ns}
+
+
+Perform VNF Scale-in Operation
+    [Arguments]  ${ns}    ${vnf_member}    ${scaling_group}
+
+    ${rc}    ${nsr}=    Run and Return RC and Output    osm ns-show ${ns} --literal
+    ${scaled_vnf}=    Get Scaled Vnf    ${nsr}
+    log to console  Scaled VNF befor scale-in operation is ${scaled_vnf}
+    ${rc}   ${stdout}=      Run and Return RC and Output    osm vnf-scale --scale-in --scaling-group ${scaling_group} ${ns} ${vnf_member}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
+    log     ${stdout}
+    Sleep    1m    Waiting for scale-in operation to complete
+    ${rc}    ${nsr}=    Run and Return RC and Output    osm ns-show ${ns} --literal
+    ${scaled_vnf}=    Get Scaled Vnf    ${nsr}
+    log to console  Scaled VNF after scale-in operation is ${scaled_vnf}
+
+
+Perform VNF Scale-out Operation
+    [Arguments]  ${ns}    ${vnf_member}    ${scaling_group}
+
+    ${rc}    ${nsr}=    Run and Return RC and Output    osm ns-show ${ns} --literal
+    ${scaled_vnf}=    Get Scaled Vnf    ${nsr}
+    log to console  Scaled VNF befor scale-out operation is ${scaled_vnf}
+    ${rc}   ${stdout}=      Run and Return RC and Output    osm vnf-scale --scale-out --scaling-group ${scaling_group} ${ns} ${vnf_member}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
+    log     ${stdout}
+    Sleep    1m    Waiting for scale-out operation to complete
+    ${rc}    ${nsr}=    Run and Return RC and Output    osm ns-show ${ns} --literal
+    ${scaled_vnf}=    Get Scaled Vnf    ${nsr}
+    log to console  Scaled VNF befor scale-out operation is ${scaled_vnf}
diff --git a/robot-systest/lib/cli/nsd_lib.robot b/robot-systest/deprecated/lib/cli/nsd_lib.robot
similarity index 100%
rename from robot-systest/lib/cli/nsd_lib.robot
rename to robot-systest/deprecated/lib/cli/nsd_lib.robot
diff --git a/robot-systest/deprecated/lib/cli/osm_package_tools_lib.robot b/robot-systest/deprecated/lib/cli/osm_package_tools_lib.robot
new file mode 100644
index 0000000..c8a864c
--- /dev/null
+++ b/robot-systest/deprecated/lib/cli/osm_package_tools_lib.robot
@@ -0,0 +1,88 @@
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+##
+
+## Change log:
+# 1. Jayant Madavi, Mrityunjay Yadav : MY00514913@techmahindra.com : 18-Dec-2019
+##
+
+*** Keywords ***
+Create OSM NS Package
+    [Arguments]  ${pkg_name}
+    ${ns_pkg}=    Catenate	SEPARATOR=_     ${pkg_name}      ns
+    ${ns_yaml}=   Catenate	SEPARATOR=_     ${pkg_name}      nsd
+    ${ns_yaml}=   Catenate	SEPARATOR=.     ${ns_yaml}      yaml
+    ${nsd_path}=    Join Path    ${ns_pkg}    ${ns_yaml}
+    ${rc}   ${stdout}=      Run and Return RC and Output    osm package-create ns ${pkg_name}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
+    File Should Exist    ${nsd_path}
+    log  ${stdout}
+
+
+Create OSM VNF Package
+    [Arguments]  ${pkg_name}
+    ${vnf_pkg}=    Catenate    SEPARATOR=_     ${pkg_name}      vnf
+    ${vnf_yaml}=   Catenate	   SEPARATOR=_     ${pkg_name}      vnfd
+    ${vnf_yaml}=   Catenate	   SEPARATOR=.     ${vnf_yaml}      yaml
+    ${vnfd_path}=    Join Path    ${vnf_pkg}    ${vnf_yaml}
+    ${rc}   ${stdout}=      Run and Return RC and Output    osm package-create vnf ${pkg_name}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
+    File Should Exist    ${vnfd_path}
+    log  ${stdout}
+
+
+Validate OSM NS Package
+    [Arguments]  ${pkg_name}
+    ${ns_pkg}=    Catenate	SEPARATOR=_     ${pkg_name}      ns
+    ${rc}   ${stdout}=      Run and Return RC and Output    osm package-validate ${ns_pkg}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
+    Verify Package Validation Result    ${ns_pkg}
+    log  ${stdout}
+
+
+Validate OSM VNF Package
+    [Arguments]  ${pkg_name}
+    ${vnf_pkg}= 	Catenate	SEPARATOR=_     ${pkg_name}      vnf
+    ${rc}   ${stdout}=      Run and Return RC and Output    osm package-validate ${vnf_pkg}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
+    Verify Package Validation Result    ${vnf_pkg}
+    log  ${stdout}
+
+
+Verify Package Validation Result
+    [Arguments]  ${pkg}
+    ${rc}   ${stdout}=      Run and Return RC and Output    osm package-validate ${pkg} | awk 'NR==6{print $6}'
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
+    Should Not Contain    ${stdout}    ERROR
+    log  ${stdout}
+
+
+Build OSM VNF Package
+    [Arguments]  ${pkg_name}
+    ${vnf_pkg}= 	Catenate	SEPARATOR=_     ${pkg_name}      vnf
+    ${vnf_pkg_tar}= 	Catenate	SEPARATOR=.     ${vnf_pkg}      tar    gz
+    ${rc}   ${stdout}=      Run and Return RC and Output    osm package-build ${vnf_pkg}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
+    File Should Exist    ${vnf_pkg_tar}
+    log  ${stdout}
+
+
+Build OSM NS Package
+    [Arguments]  ${pkg_name}
+    ${ns_pkg}= 	  Catenate	  SEPARATOR=_     ${pkg_name}      ns
+    ${ns_pkg_tar}= 	  Catenate	  SEPARATOR=.     ${ns_pkg}      tar    gz
+    ${rc}   ${stdout}=      Run and Return RC and Output    osm package-build ${ns_pkg}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
+    File Should Exist    ${ns_pkg_tar}
+    log  ${stdout}
diff --git a/robot-systest/lib/cli/osm_platform_resiliancy_recovery_lib.robot b/robot-systest/deprecated/lib/cli/osm_platform_resiliancy_recovery_lib.robot
similarity index 100%
rename from robot-systest/lib/cli/osm_platform_resiliancy_recovery_lib.robot
rename to robot-systest/deprecated/lib/cli/osm_platform_resiliancy_recovery_lib.robot
diff --git a/robot-systest/lib/cli/rbac_lib.robot b/robot-systest/deprecated/lib/cli/rbac_lib.robot
similarity index 100%
rename from robot-systest/lib/cli/rbac_lib.robot
rename to robot-systest/deprecated/lib/cli/rbac_lib.robot
diff --git a/robot-systest/lib/cli/sdnc_account_lib.robot b/robot-systest/deprecated/lib/cli/sdnc_account_lib.robot
similarity index 100%
rename from robot-systest/lib/cli/sdnc_account_lib.robot
rename to robot-systest/deprecated/lib/cli/sdnc_account_lib.robot
diff --git a/robot-systest/lib/cli/vim_account_lib.robot b/robot-systest/deprecated/lib/cli/vim_account_lib.robot
similarity index 98%
rename from robot-systest/lib/cli/vim_account_lib.robot
rename to robot-systest/deprecated/lib/cli/vim_account_lib.robot
index 8d01b39..c3c8242 100644
--- a/robot-systest/lib/cli/vim_account_lib.robot
+++ b/robot-systest/deprecated/lib/cli/vim_account_lib.robot
@@ -63,8 +63,9 @@
 
 Delete Vim Account
     [Documentation]  delete vim account details
+    [Arguments]  ${vim_name}=${vim-name}
 
-    ${rc}   ${stdout}=      Run and Return RC and Output	    osm vim-delete ${vim-name}
+    ${rc}   ${stdout}=      Run and Return RC and Output	    osm vim-delete ${vim_name}
     log  ${stdout}
     Should Be Equal As Integers 	${rc}    ${success_return_code}
 
diff --git a/robot-systest/lib/cli/vnfd_lib.robot b/robot-systest/deprecated/lib/cli/vnfd_lib.robot
similarity index 100%
rename from robot-systest/lib/cli/vnfd_lib.robot
rename to robot-systest/deprecated/lib/cli/vnfd_lib.robot
diff --git a/robot-systest/lib/client_lib/client_lib.py b/robot-systest/deprecated/lib/client_lib/client_lib.py
similarity index 100%
rename from robot-systest/lib/client_lib/client_lib.py
rename to robot-systest/deprecated/lib/client_lib/client_lib.py
diff --git a/robot-systest/deprecated/lib/custom_lib.py b/robot-systest/deprecated/lib/custom_lib.py
new file mode 100644
index 0000000..2a3d23f
--- /dev/null
+++ b/robot-systest/deprecated/lib/custom_lib.py
@@ -0,0 +1,67 @@
+# -*- coding: utf-8 -*-
+
+##
+# Copyright 2019 Tech Mahindra Limited
+#
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+##
+
+## Change log:
+# Jayant Madavi, Mrityunjay Yadav : MY00514913@techmahindra.com
+##̥
+
+
+import random
+from haikunator import Haikunator
+import yaml
+from os.path import basename
+import hashlib
+
+from robot.api import logger
+from robot.api.deco import keyword
+
+
+def generate_name():
+    haikunator = Haikunator()
+    name = haikunator.haikunate(delimiter='_', token_length=2)
+    return name
+
+
+def get_random_item_from_list(l):
+    assert isinstance(l, list), "List should be provided"
+    return random.choice(l)
+
+
+def get_scaled_vnf(nsr):
+    nsr = yaml.load(nsr)
+    if 'scaling-group' in nsr['_admin']:
+        return nsr['_admin']['scaling-group'][0]['nb-scale-op']
+    else:
+        return 0
+
+
+@keyword('Get File Name From Path')
+def get_filename(path):
+    filename = basename(path)
+    return filename, filename.split('.')[0]
+
+
+@keyword('Generate MD5')
+def generate_md5(fpath):
+    hash_md5 = hashlib.md5()
+    with open(fpath, "rb") as f:
+        for chunk in iter(lambda: f.read(1024), b""):
+            hash_md5.update(chunk)
+    return hash_md5.hexdigest()
diff --git a/robot-systest/lib/gui/login_gui.robot b/robot-systest/deprecated/lib/gui/login_gui.robot
similarity index 100%
rename from robot-systest/lib/gui/login_gui.robot
rename to robot-systest/deprecated/lib/gui/login_gui.robot
diff --git a/robot-systest/resource/api/common.robot b/robot-systest/deprecated/resource/api/common.robot
similarity index 100%
rename from robot-systest/resource/api/common.robot
rename to robot-systest/deprecated/resource/api/common.robot
diff --git a/robot-systest/resource/api/variables.py b/robot-systest/deprecated/resource/api/variables.py
similarity index 100%
rename from robot-systest/resource/api/variables.py
rename to robot-systest/deprecated/resource/api/variables.py
diff --git a/robot-systest/deprecated/resource/cli/disable_port_security_ns_data.py b/robot-systest/deprecated/resource/cli/disable_port_security_ns_data.py
new file mode 100644
index 0000000..e1383bd
--- /dev/null
+++ b/robot-systest/deprecated/resource/cli/disable_port_security_ns_data.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+
+##
+# Copyright 2020 Tech Mahindra Limited
+#
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+# Author: Mrityunjay Yadav < MY00514913@techmahindra.com >, Jayant Madavi
+##
+
+
+# VNFD Details
+vnfdPckgPath = "/descriptor-packages/vnfd/hackfest_basic_vnf"
+vnfdPckg = '/build/hackfest_basic_vnf.tar.gz'
+
+# NSD Details
+nsdPckgPath = "/descriptor-packages/nsd/no_port_security_ns"
+nsdPckg = '/build/no_port_security_ns.tar.gz'
diff --git a/robot-systest/resource/cli/hackfest_basic_ns_data.py b/robot-systest/deprecated/resource/cli/hackfest_basic_ns_data.py
similarity index 100%
rename from robot-systest/resource/cli/hackfest_basic_ns_data.py
rename to robot-systest/deprecated/resource/cli/hackfest_basic_ns_data.py
diff --git a/robot-systest/resource/cli/hackfest_cloudinit_ns_data.py b/robot-systest/deprecated/resource/cli/hackfest_cloudinit_ns_data.py
similarity index 100%
rename from robot-systest/resource/cli/hackfest_cloudinit_ns_data.py
rename to robot-systest/deprecated/resource/cli/hackfest_cloudinit_ns_data.py
diff --git a/robot-systest/resource/cli/hackfest_epa_ns_data.py b/robot-systest/deprecated/resource/cli/hackfest_epa_ns_data.py
similarity index 100%
rename from robot-systest/resource/cli/hackfest_epa_ns_data.py
rename to robot-systest/deprecated/resource/cli/hackfest_epa_ns_data.py
diff --git a/robot-systest/resource/cli/hackfest_multivdu_ns_data.py b/robot-systest/deprecated/resource/cli/hackfest_multivdu_ns_data.py
similarity index 100%
rename from robot-systest/resource/cli/hackfest_multivdu_ns_data.py
rename to robot-systest/deprecated/resource/cli/hackfest_multivdu_ns_data.py
diff --git a/robot-systest/resource/cli/hackfest_simplecharm_ns_data.py b/robot-systest/deprecated/resource/cli/hackfest_simplecharm_ns_data.py
similarity index 100%
rename from robot-systest/resource/cli/hackfest_simplecharm_ns_data.py
rename to robot-systest/deprecated/resource/cli/hackfest_simplecharm_ns_data.py
diff --git a/robot-systest/resource/cli/test_vnf_data.py b/robot-systest/deprecated/resource/cli/test_vnf_data.py
similarity index 100%
rename from robot-systest/resource/cli/test_vnf_data.py
rename to robot-systest/deprecated/resource/cli/test_vnf_data.py
diff --git a/robot-systest/resource/cli/ubuntu-cloudinit_ns_data.py b/robot-systest/deprecated/resource/cli/ubuntu-cloudinit_ns_data.py
similarity index 100%
rename from robot-systest/resource/cli/ubuntu-cloudinit_ns_data.py
rename to robot-systest/deprecated/resource/cli/ubuntu-cloudinit_ns_data.py
diff --git a/robot-systest/run_test.sh b/robot-systest/deprecated/run_test.sh
similarity index 100%
rename from robot-systest/run_test.sh
rename to robot-systest/deprecated/run_test.sh
diff --git a/robot-systest/testsuite/api/TS01__Vim_Account.robot b/robot-systest/deprecated/testsuite/api/TS01__Vim_Account.robot
similarity index 100%
rename from robot-systest/testsuite/api/TS01__Vim_Account.robot
rename to robot-systest/deprecated/testsuite/api/TS01__Vim_Account.robot
diff --git a/robot-systest/testsuite/cli/TS008__Test_SDNC.robot b/robot-systest/deprecated/testsuite/cli/TS008__Test_SDNC.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS008__Test_SDNC.robot
rename to robot-systest/deprecated/testsuite/cli/TS008__Test_SDNC.robot
diff --git a/robot-systest/testsuite/cli/TS009__Feature_6283_Network_Slicing_Test.robot b/robot-systest/deprecated/testsuite/cli/TS009__Feature_6283_Network_Slicing_Test.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS009__Feature_6283_Network_Slicing_Test.robot
rename to robot-systest/deprecated/testsuite/cli/TS009__Feature_6283_Network_Slicing_Test.robot
diff --git a/robot-systest/testsuite/cli/TS010__OSM_Platform_Resiliency_and_Recovery_Test.robot b/robot-systest/deprecated/testsuite/cli/TS010__OSM_Platform_Resiliency_and_Recovery_Test.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS010__OSM_Platform_Resiliency_and_Recovery_Test.robot
rename to robot-systest/deprecated/testsuite/cli/TS010__OSM_Platform_Resiliency_and_Recovery_Test.robot
diff --git a/robot-systest/testsuite/cli/TS011__Feature_1415_RBAC_For_Platform_Test.robot b/robot-systest/deprecated/testsuite/cli/TS011__Feature_1415_RBAC_For_Platform_Test.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS011__Feature_1415_RBAC_For_Platform_Test.robot
rename to robot-systest/deprecated/testsuite/cli/TS011__Feature_1415_RBAC_For_Platform_Test.robot
diff --git a/robot-systest/testsuite/cli/TS012__Feature_7181_Allow_Instantiation_Parameters_in_CloudInit.robot b/robot-systest/deprecated/testsuite/cli/TS012__Feature_7181_Allow_Instantiation_Parameters_in_CloudInit.robot
similarity index 99%
rename from robot-systest/testsuite/cli/TS012__Feature_7181_Allow_Instantiation_Parameters_in_CloudInit.robot
rename to robot-systest/deprecated/testsuite/cli/TS012__Feature_7181_Allow_Instantiation_Parameters_in_CloudInit.robot
index 68f98fa..c5e1c75 100644
--- a/robot-systest/testsuite/cli/TS012__Feature_7181_Allow_Instantiation_Parameters_in_CloudInit.robot
+++ b/robot-systest/deprecated/testsuite/cli/TS012__Feature_7181_Allow_Instantiation_Parameters_in_CloudInit.robot
@@ -1,87 +1,87 @@
-# -*- coding: utf-8 -*-

-

-##

-# Copyright 2019 TATA ELXSI

-#

-# All Rights Reserved.

-#

-# Licensed under the Apache License, Version 2.0 (the "License"); you may

-# not use this file except in compliance with the License. You may obtain

-# a copy of the License at

-#

-#         http://www.apache.org/licenses/LICENSE-2.0

-#

-# Unless required by applicable law or agreed to in writing, software

-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT

-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the

-# License for the specific language governing permissions and limitations

-# under the License.

-##

-

-## Author: Ragavi D (ragavi.d@tataelxsi.co.in)

-

-*** Settings ***

-Documentation     Test Suite to create hackfest basic nestwork service

-Suite Teardown    Run Keyword And Ignore Error    Test Cleanup

-Library           OperatingSystem

-Library           String

-Library           Collections

-Resource          ../../lib/cli/vnfd_lib.robot

-Resource          ../../lib/cli/nsd_lib.robot

-Resource          ../../lib/cli/ns_lib.robot

-Resource          ../../lib/cli/vim_account_lib.robot

-Library           ../../lib/custom_lib.py

-Variables         ../../resource/cli/ubuntu-cloudinit_ns_data.py

-

-*** Variables ***

-@{vnfd_ids}

-${nsd_id}         ${EMPTY}

-@{nsd_ids}

-@{ns_ids}

-${ns_config}      '{vld: [ {name: mgmtnet, vim-network-name: osm-ext} ], additionalParamsForVnf: [ { member-vnf-index: "1", additionalParams: { password: "PASSWORD" } } ] }'

-

-*** Test Cases ***

-Create Ubuntu CloudInit VNF Descriptor

-    [Tags]    comprehensive    ubuntu-cloudinit_ns

-    Build VNF Descriptor    ${vnfdPckgPath}

-    ${vnfd_id}=    Create VNFD    '${CURDIR}${/}../../..${vnfdPckgPath}${vnfdPckg}'

-    Append To List    ${vnfd_ids}    ${vnfd_id}

-

-Create Ubuntu CloudInit NS Descriptor

-    [Tags]    comprehensive    ubuntu-cloudinit_ns

-    Build NS Descriptor    ${nsdPckgPath}

-    ${nsd_id}=    Create NSD    '${CURDIR}${/}../../..${nsdPckgPath}${nsdPckg}'

-    Append To List    ${nsd_ids}    ${nsd_id}

-

-Network Service Instance Test

-    [Documentation]    Launch and terminate network services

-    [Tags]    comprehensive    ubuntu-cloudinit_ns

-    : FOR    ${vim_name}    IN    @{vim}

-    \    Launch Network Services and Return    ${vim_name}    ${ns_config}

-

-Delete NS Instance Test

-    [Tags]    comprehensive    ubuntu-cloudinit_ns

-    : FOR    ${ns}    IN    @{ns_ids}

-    \    Delete NS    ${ns}

-

-Delete NS Descriptor Test

-    [Tags]    comprehensive    ubuntu-cloudinit_ns

-    : FOR    ${nsd}    IN    @{nsd_ids}

-    \    Delete NSD    ${nsd}

-

-Delete VNF Descriptor Test

-    [Tags]    comprehensive    ubuntu-cloudinit_ns

-    : FOR    ${vnfd_id}    IN    @{vnfd_ids}

-    \    Delete VNFD    ${vnfd_id}

-

-*** Keywords ***

-Test Cleanup

-    [Documentation]    Test Suit Cleanup: Deliting Descriptor, instance and vim

-    : FOR    ${ns}    IN    @{ns_ids}

-    \    Delete NS    ${ns}

-    : FOR    ${nsd}    IN    @{nsd_ids}

-    \    Delete NSD    ${nsd}

-    : FOR    ${vnfd}    IN    @{vnfd_ids}

-    \    Delete VNFD    ${vnfd}

-    #    :FOR    ${vim_id}    IN    @{vim}

-    #    Delete Vim Account    ${vim_id}

+# -*- coding: utf-8 -*-
+
+##
+# Copyright 2019 TATA ELXSI
+#
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+##
+
+## Author: Ragavi D (ragavi.d@tataelxsi.co.in)
+
+*** Settings ***
+Documentation     Test Suite to create hackfest basic nestwork service
+Suite Teardown    Run Keyword And Ignore Error    Test Cleanup
+Library           OperatingSystem
+Library           String
+Library           Collections
+Resource          ../../lib/cli/vnfd_lib.robot
+Resource          ../../lib/cli/nsd_lib.robot
+Resource          ../../lib/cli/ns_lib.robot
+Resource          ../../lib/cli/vim_account_lib.robot
+Library           ../../lib/custom_lib.py
+Variables         ../../resource/cli/ubuntu-cloudinit_ns_data.py
+
+*** Variables ***
+@{vnfd_ids}
+${nsd_id}         ${EMPTY}
+@{nsd_ids}
+@{ns_ids}
+${ns_config}      '{vld: [ {name: mgmtnet, vim-network-name: osm-ext} ], additionalParamsForVnf: [ { member-vnf-index: "1", additionalParams: { password: "PASSWORD" } } ] }'
+
+*** Test Cases ***
+Create Ubuntu CloudInit VNF Descriptor
+    [Tags]    comprehensive    ubuntu-cloudinit_ns
+    Build VNF Descriptor    ${vnfdPckgPath}
+    ${vnfd_id}=    Create VNFD    '${CURDIR}${/}../../..${vnfdPckgPath}${vnfdPckg}'
+    Append To List    ${vnfd_ids}    ${vnfd_id}
+
+Create Ubuntu CloudInit NS Descriptor
+    [Tags]    comprehensive    ubuntu-cloudinit_ns
+    Build NS Descriptor    ${nsdPckgPath}
+    ${nsd_id}=    Create NSD    '${CURDIR}${/}../../..${nsdPckgPath}${nsdPckg}'
+    Append To List    ${nsd_ids}    ${nsd_id}
+
+Network Service Instance Test
+    [Documentation]    Launch and terminate network services
+    [Tags]    comprehensive    ubuntu-cloudinit_ns
+    : FOR    ${vim_name}    IN    @{vim}
+    \    Launch Network Services and Return    ${vim_name}    ${ns_config}
+
+Delete NS Instance Test
+    [Tags]    comprehensive    ubuntu-cloudinit_ns
+    : FOR    ${ns}    IN    @{ns_ids}
+    \    Delete NS    ${ns}
+
+Delete NS Descriptor Test
+    [Tags]    comprehensive    ubuntu-cloudinit_ns
+    : FOR    ${nsd}    IN    @{nsd_ids}
+    \    Delete NSD    ${nsd}
+
+Delete VNF Descriptor Test
+    [Tags]    comprehensive    ubuntu-cloudinit_ns
+    : FOR    ${vnfd_id}    IN    @{vnfd_ids}
+    \    Delete VNFD    ${vnfd_id}
+
+*** Keywords ***
+Test Cleanup
+    [Documentation]    Test Suit Cleanup: Deliting Descriptor, instance and vim
+    : FOR    ${ns}    IN    @{ns_ids}
+    \    Delete NS    ${ns}
+    : FOR    ${nsd}    IN    @{nsd_ids}
+    \    Delete NSD    ${nsd}
+    : FOR    ${vnfd}    IN    @{vnfd_ids}
+    \    Delete VNFD    ${vnfd}
+    #    :FOR    ${vim_id}    IN    @{vim}
+    #    Delete Vim Account    ${vim_id}
diff --git a/robot-systest/deprecated/testsuite/cli/TS013__Feature_1415_RBAC_Visibility_Of_Packages_And_Instances.robot b/robot-systest/deprecated/testsuite/cli/TS013__Feature_1415_RBAC_Visibility_Of_Packages_And_Instances.robot
new file mode 100644
index 0000000..4302951
--- /dev/null
+++ b/robot-systest/deprecated/testsuite/cli/TS013__Feature_1415_RBAC_Visibility_Of_Packages_And_Instances.robot
@@ -0,0 +1,144 @@
+##
+# Copyright 2019 Tech Mahindra Limited
+#
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+##
+
+## Change log:
+# 1. Jayant Madavi, Mrityunjay Yadav : MY00514913@techmahindra.com : 18-Dec-2019
+##
+
+*** Settings ***
+Documentation    Test RBAC for platform - Visibility of packages and instances test
+Library     OperatingSystem
+Library     String
+Library     Collections
+Resource    ../../lib/cli/rbac_lib.robot
+Resource    ../../lib/cli/vnfd_lib.robot
+Resource    ../../lib/cli/nsd_lib.robot
+Resource    ../../lib/cli/ns_lib.robot
+Resource    ../../lib/cli/vim_account_lib.robot
+Library     ../../lib/custom_lib.py
+
+Suite Setup    Prerequisite For Test
+Suite Teardown  Run Keyword And Ignore Error    Test Cleanup
+
+
+*** Variables ***
+${success_return_code}    0
+
+@{vim}
+@{vnfd_ids}
+${nsd_id}
+@{nsd_ids}
+@{ns_ids}
+${vnfdPckg}    hackfest_basic_vnf.tar.gz
+${nsdPckg}    hackfest_basic_ns.tar.gz
+${vnfdftpPath}    https://osm-download.etsi.org/ftp/osm-5.0-five/6th-hackfest/packages/hackfest_basic_vnf.tar.gz
+${nsdftpPath}    https://osm-download.etsi.org/ftp/osm-5.0-five/6th-hackfest/packages/hackfest_basic_ns.tar.gz
+
+# Test data for Users Operations test
+${user_id}    ${EMPTY}
+
+# Test data for Project Operations test
+${project_id}    ${EMPTY}
+
+
+*** Test Cases ***
+Create VIM Account For New User
+    [Documentation]  Test to create VIM account for newly created user
+    [Tags]  rabc    rabc_vim    comprehensive    nbi
+
+    Wait Until Keyword Succeeds    2x    30sec    VIM Setup To Launch Network Services
+
+
+Create VNF Descriptor For New User
+    [Documentation]  Test to create vnfd for new user
+    [Tags]  rabc    rabc_vnfd    comprehensive    nbi
+
+    ${rc}   ${stdout}=      Run and Return RC and Output    wget -P '${CURDIR}${/}../../resource/cli/rbac/' ${vnfdftpPath}
+    ${vnfd_id}=    Create VNFD    '${CURDIR}${/}../../resource/cli/rbac${/}${vnfdPckg}'
+    Append To List     ${vnfd_ids}       ${vnfd_id}
+
+
+Create NS Descriptor For New User
+    [Documentation]  Test to create nsd for new user
+    [Tags]  rabc    rabc_nsd    comprehensive    nbi
+
+    ${rc}   ${stdout}=      Run and Return RC and Output    wget -P '${CURDIR}${/}../../resource/cli/rbac/' ${nsdftpPath}
+    ${nsd_id}=    Create VNFD    '${CURDIR}${/}../../resource/cli/rbac${/}${nsdPckg}'
+    Append To List     ${nsd_ids}       ${nsd_id}
+
+
+Instanciate Network Service For New User
+    [Documentation]  Launch network services for new user
+    [Tags]   rabc    rabc_ns    comprehensive    nbi
+
+    :FOR    ${vim_name}    IN    @{vim}
+    \    Launch Network Services and Return    ${vim_name}
+
+
+Delete NS Instance Test
+    [Tags]    rabc    rabc_ns    comprehensive    nbi
+
+    :FOR    ${ns}  IN   @{ns_ids}
+    \   Delete NS   ${ns}
+
+
+Delete NS Descriptor Test
+    [Tags]   rabc    rabc_nsd    comprehensive    nbi
+
+    :FOR    ${nsd}  IN   @{nsd_ids}
+    \   Delete NSD      ${nsd}
+
+
+Delete VNF Descriptor Test
+    [Tags]   rabc    rabc_vnfd    comprehensive    nbi
+
+    :FOR    ${vnfd_id}  IN   @{vnfd_ids}
+    \   Delete VNFD     ${vnfd_id}
+
+
+*** Keywords ***
+Prerequisite For Test
+    ${user-name}=     Generate Random String    8    [NUMBERS]
+    ${user-name}=     Catenate  SEPARATOR=  user_  ${user-name}
+    set global variable  ${user-name}
+    ${user-password}=     Generate Random String    8    [NUMBERS]
+    set global variable  ${user-password}
+    ${user_id}=    Create User    ${user-name}    ${user-password}
+
+    ${project-name}=     Generate Random String    8    [NUMBERS]
+    ${project-name}=     Catenate  SEPARATOR=  project_  ${project-name}
+    set global variable  ${project-name}
+    ${project_id}=    Create Project    ${project-name}
+
+    &{update_field1}=    Create Dictionary    --add-project-role=admin,project_user
+    &{update_field2}=    Create Dictionary    --add-project-role=${project-name},account_manager
+    @{update_user}=    Create List    ${update_field1}    ${update_field2}
+    Update User And Verify Info    ${user-name}    @{update_user}
+    Login With User And Perform Operation    ${user-name}    ${user-password}    ${project-name}
+
+
+Test Cleanup
+    [Documentation]  Test Suit Cleanup: Deliting Descriptor, instance and vim
+
+#    :FOR    ${vim_id}  IN   @{vim}
+#    \   Delete Vim Account    ${vim_id}
+
+    Logout and Login With Admin
+
+    Delete User    ${user-name}
+    Delete Project    ${project-name}
diff --git a/robot-systest/deprecated/testsuite/cli/TS014__Feature_7921_MongoDB_Filesystem_Test.robot b/robot-systest/deprecated/testsuite/cli/TS014__Feature_7921_MongoDB_Filesystem_Test.robot
new file mode 100644
index 0000000..3070d41
--- /dev/null
+++ b/robot-systest/deprecated/testsuite/cli/TS014__Feature_7921_MongoDB_Filesystem_Test.robot
@@ -0,0 +1,124 @@
+##
+# Copyright 2019 Tech Mahindra Limited
+#
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+##
+
+## Change log:
+# 1. Jayant Madavi, Mrityunjay Yadav : MY00514913@techmahindra.com : 18-Dec-2019
+##
+
+*** Settings ***
+Library     OperatingSystem
+Library     String
+Library     Collections
+Resource    ../../lib/cli/vnfd_lib.robot
+Resource    ../../lib/cli/nsd_lib.robot
+Resource    ../../lib/cli/ns_lib.robot
+Resource    ../../lib/cli/vim_account_lib.robot
+Library     ../../lib/custom_lib.py
+
+Suite Setup    Prerequisite For Test
+Suite Teardown  Run Keyword And Ignore Error    Test Cleanup
+
+
+*** Variables ***
+${success_return_code}    0
+
+@{vim}
+@{vnfd_ids}
+${nsd_id}
+@{nsd_ids}
+@{ns_ids}
+${vnfdPckg}    hackfest_basic_vnf.tar.gz
+${nsdPckg}    hackfest_basic_ns.tar.gz
+${vnfdftpPath}    https://osm-download.etsi.org/ftp/osm-5.0-five/6th-hackfest/packages/hackfest_basic_vnf.tar.gz
+${nsdftpPath}    https://osm-download.etsi.org/ftp/osm-5.0-five/6th-hackfest/packages/hackfest_basic_ns.tar.gz
+
+
+*** Test Cases ***
+Create VNF Descriptor Test
+    [Tags]  comprehensive    feature7921
+
+    ${rc}   ${stdout}=      Run and Return RC and Output    wget -P '${CURDIR}${/}../../resource/' ${vnfdftpPath}
+    ${vnfd_id}=    Create VNFD    '${CURDIR}${/}../../resource${/}${vnfdPckg}'
+    Append To List     ${vnfd_ids}       ${vnfd_id}
+
+
+Create NS Descriptor Test
+    [Tags]  comprehensive    feature7921
+
+    ${rc}   ${stdout}=      Run and Return RC and Output    wget -P '${CURDIR}${/}../../resource/' ${nsdftpPath}
+    ${nsd_id}=    Create VNFD    '${CURDIR}${/}../../resource${/}${nsdPckg}'
+    Append To List     ${nsd_ids}       ${nsd_id}
+
+
+Instanciate Network Service Test
+    [Tags]  comprehensive    feature7921
+    [Setup]  Wait Until Keyword Succeeds    2x    30sec    VIM Setup To Launch Network Services
+
+    :FOR    ${vim_name}    IN    @{vim}
+    \    Launch Network Services and Return    ${vim_name}
+
+
+Delete NS Instance Test
+    [Tags]  comprehensive    feature7921
+
+    :FOR    ${ns}  IN   @{ns_ids}
+    \   Delete NS   ${ns}
+
+
+Delete NS Descriptor Test
+    [Tags]  comprehensive    feature7921
+
+    :FOR    ${nsd}  IN   @{nsd_ids}
+    \   Delete NSD      ${nsd}
+
+
+Delete VNF Descriptor Test
+    [Tags]  comprehensive    feature7921
+
+    :FOR    ${vnfd_id}  IN   @{vnfd_ids}
+    \   Delete VNFD     ${vnfd_id}
+
+
+*** Keywords ***
+Prerequisite For Test
+    [Documentation]  Update docker service to use mongodb as file system
+
+    Update NBI Service
+    Update LCM Service
+
+
+Update NBI Service
+    ${rc}   ${stdout}=      Run and Return RC and Output    docker service update osm_nbi --force --env-add OSMNBI_STORAGE_DRIVER=mongo --env-add OSMNBI_STORAGE_PATH=/app/storage --env-add OSMNBI_STORAGE_COLLECTION=files --env-add OSMNBI_STORAGE_URI=mongodb://mongo:27017
+    Should Be Equal As Integers 	${rc}	  ${success_return_code}
+    Sleep    30s    Wait for NBI service to be update
+
+
+Update LCM Service
+    ${rc}   ${stdout}=      Run and Return RC and Output    docker service update osm_lcm --force --env-add OSMLCM_STORAGE_DRIVER=mongo --env-add OSMLCM_STORAGE_PATH=/app/storage --env-add OSMLCM_STORAGE_COLLECTION=files --env-add OSMLCM_STORAGE_URI=mongodb://mongo:27017
+    Should Be Equal As Integers 	${rc}	  ${success_return_code}
+    Sleep    30s    Wait for LCM service to be update
+
+
+Test Cleanup
+#    :FOR    ${vim_id}  IN   @{vim}
+#    \   Delete Vim Account    ${vim_id}
+
+    ${rc}   ${stdout}=      Run and Return RC and Output    docker service rollback osm_nbi
+    Should Be Equal As Integers 	${rc}	  ${success_return_code}
+    ${rc}   ${stdout}=      Run and Return RC and Output    docker service rollback osm_lcm
+    Should Be Equal As Integers 	${rc}	  ${success_return_code}
diff --git a/robot-systest/deprecated/testsuite/cli/TS015__Feature_8047_OSMClient_Package_Creation_And_Validation.robot b/robot-systest/deprecated/testsuite/cli/TS015__Feature_8047_OSMClient_Package_Creation_And_Validation.robot
new file mode 100644
index 0000000..e717c10
--- /dev/null
+++ b/robot-systest/deprecated/testsuite/cli/TS015__Feature_8047_OSMClient_Package_Creation_And_Validation.robot
@@ -0,0 +1,84 @@
+##
+# Copyright 2019 Tech Mahindra Limited
+#
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+##
+
+## Change log:
+# 1. Jayant Madavi, Mrityunjay Yadav : MY00514913@techmahindra.com : 18-Dec-2019
+##
+
+*** Settings ***
+Documentation    Test Suite to test OSMClient Package Createtion and Validation Tool
+Library     OperatingSystem
+Library     String
+Library     Collections
+Resource    ../../lib/cli/osm_package_tools_lib.robot
+
+Suite Setup    Prerequisite For Test
+Suite Teardown    Test Cleanup
+
+
+*** Variables ***
+${success_return_code}    0
+${base_dir}    ${EXECDIR}
+${pkg_dir}    ${CURDIR}${/}../../resource/cli/packages
+${ns_pkg}    vEPC
+${vnf_pkg}    vEPC
+
+
+*** Test Cases ***
+Test OSM NS Package Create
+    [Tags]  comprehensive   feature8047
+    Create OSM NS Package    ${ns_pkg}
+
+
+Test OSM VNF Package Create
+    [Tags]  comprehensive   feature8047
+    Create OSM VNF Package    ${vnf_pkg}
+
+
+Test OSM NS Package Validate
+    [Tags]  comprehensive   feature8047
+    Validate OSM NS Package    ${ns_pkg}
+
+
+Test OSM VNF Package Validate
+    [Tags]  comprehensive   feature8047
+    Validate OSM VNF Package    ${vnf_pkg}
+
+
+Test OSM VNF Package Build
+    [Tags]  comprehensive   feature8047
+    Build OSM VNF Package    ${vnf_pkg}
+
+
+Test OSM NS Package Build
+    [Tags]  comprehensive   feature8047
+    Build OSM NS Package    ${ns_pkg}
+
+
+*** Keywords ***
+Prerequisite For Test
+    Create Directory    ${pkg_dir}
+    ${rc}   ${stdout}=      Run and Return RC and Output    cd ${pkg_dir}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
+
+
+Test Cleanup
+    ${rc}   ${stdout}=      Run and Return RC and Output    cd ${base_dir}
+    Should Be Equal As Integers    ${rc}    ${success_return_code}
+
+    Remove Directory    ${pkg_dir}    recursive=${TRUE}
\ No newline at end of file
diff --git a/robot-systest/deprecated/testsuite/cli/TS016__Manual_VNF_VDU_Scaling_Test.robot b/robot-systest/deprecated/testsuite/cli/TS016__Manual_VNF_VDU_Scaling_Test.robot
new file mode 100644
index 0000000..3f7bce8
--- /dev/null
+++ b/robot-systest/deprecated/testsuite/cli/TS016__Manual_VNF_VDU_Scaling_Test.robot
@@ -0,0 +1,129 @@
+##
+# Copyright 2019 Tech Mahindra Limited
+#
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+##
+
+## Change log:
+# 1. Mrityunjay Yadav, Jayant Madavi : MY00514913@techmahindra.com : 27-Nov-19
+##
+
+*** Settings ***
+Documentation    Test Suite to test manual scale-in/out cirros VNF and NS using osm-client
+Library     OperatingSystem
+Library     String
+Library     Collections
+Resource    ../../lib/cli/vnfd_lib.robot
+Resource    ../../lib/cli/nsd_lib.robot
+Resource    ../../lib/cli/ns_lib.robot
+Resource    ../../lib/cli/vim_account_lib.robot
+Library     ../../lib/custom_lib.py
+
+Suite Teardown     Run Keyword And Ignore Error    Test Cleanup
+
+
+*** Variables ***
+# VNFD Details
+@{vnfd_ids}
+${vnfdPckgPath}    /descriptor-packages/vnfd/cirros_vnf
+${vnfdPckg}    /build/cirros_vnf.tar.gz
+
+# NSD Details
+@{nsd_ids}
+${nsdPckgPath}    /descriptor-packages/nsd/cirros_ns
+${nsdPckg}    /build/cirros_ns.tar.gz
+${scaling_group}    scaling_cirros_vnf
+${vnf_member_index}    1
+
+@{ns_ids}
+
+
+*** Test Cases ***
+Create VNF Descriptor Test
+    [Documentation]  Build and onboard cirros VNF package with scaling parameter
+    [Tags]    comprehensive   manual_scaling
+
+    Build VNF Descriptor    ${vnfdPckgPath}
+    ${vnfd_id}=    Create VNFD    '${CURDIR}${/}../../..${vnfdPckgPath}${vnfdPckg}'
+    Append To List     ${vnfd_ids}       ${vnfd_id}
+
+
+Create NS Descriptor Test
+    [Documentation]  Build and onboard cirros NS package with scaling parameter
+    [Tags]    comprehensive   manual_scaling
+
+    Build NS Descriptor    ${nsdPckgPath}
+    ${nsd_id}=    Create NSD    '${CURDIR}${/}../../..${nsdPckgPath}${nsdPckg}'
+    Append To List     ${nsd_ids}       ${nsd_id}
+
+
+Network Service Instance Test
+    [Documentation]  Launch cirros ns with scaling parameter
+    [Tags]    comprehensive   manual_scaling
+
+    :FOR    ${vim_name}    IN    @{vim}
+    \    Launch Network Services and Return    ${vim_name}
+
+
+Perform VNF/VDU Scaling-out Operation Over Launched NS Test
+    [Documentation]  scale-out cirros ns
+    [Tags]    comprehensive   manual_scaling
+    :FOR    ${ns}  IN   @{ns_ids}
+    \   Perform VNF Scale-out Operation   ${ns}    ${vnf_member_index}    ${scaling_group}
+
+
+Perform VNF/VDU Scaling-in Operation Over Launched NS Test
+    [Documentation]  scale-in cirros ns
+    [Tags]    comprehensive   manual_scaling
+    :FOR    ${ns}  IN   @{ns_ids}
+    \   Perform VNF Scale-in Operation   ${ns}    ${vnf_member_index}    ${scaling_group}
+
+
+Delete NS Instance Test
+    [Tags]    comprehensive   manual_scaling
+
+    :FOR    ${ns}  IN   @{ns_ids}
+    \   Delete NS   ${ns}
+
+
+Delete NS Descriptor Test
+    [Tags]    comprehensive   manual_scaling
+
+    :FOR    ${nsd}  IN   @{nsd_ids}
+    \   Delete NSD      ${nsd}
+
+
+Delete VNF Descriptor Test
+    [Tags]    comprehensive   manual_scaling
+
+    :FOR    ${vnfd}  IN   @{vnfd_ids}
+    \   Delete VNFD     ${vnfd}
+
+
+*** Keywords ***
+Test Cleanup
+    [Documentation]  Test Suit Cleanup: Deliting Descriptor, instance and vim
+
+    :FOR    ${ns}  IN   @{ns_ids}
+    \   Delete NS   ${ns}
+
+    :FOR    ${nsd}  IN   @{nsd_ids}
+    \   Delete NSD      ${nsd}
+
+    :FOR    ${vnfd}  IN   @{vnfd_ids}
+    \   Delete VNFD     ${vnfd}
+
+#    :FOR    ${vim_id}  IN   @{vim}
+#    \   Delete Vim Account    ${vim_id}
diff --git a/robot-systest/deprecated/testsuite/cli/TS017__Feature_7326_Disable_Port_Security_at_Network_level.robot b/robot-systest/deprecated/testsuite/cli/TS017__Feature_7326_Disable_Port_Security_at_Network_level.robot
new file mode 100644
index 0000000..562dc15
--- /dev/null
+++ b/robot-systest/deprecated/testsuite/cli/TS017__Feature_7326_Disable_Port_Security_at_Network_level.robot
@@ -0,0 +1,122 @@
+# -*- coding: utf-8 -*-
+
+##
+# Copyright 2020 Tech Mahindra Limited
+#
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# Author: Mrityunjay Yadav <MY00514913@techmahindra.com>, Jayant Madavi
+##
+
+
+*** Settings ***
+Documentation    Test Suite to test disable network port security NS
+Library     OperatingSystem
+Library     String
+Library     Collections
+Resource    ../../lib/cli/vnfd_lib.robot
+Resource    ../../lib/cli/nsd_lib.robot
+Resource    ../../lib/cli/ns_lib.robot
+Resource    ../../lib/cli/vim_account_lib.robot
+Library     ../../lib/custom_lib.py
+Variables   ../../resource/cli/disable_port_security_ns_data.py
+
+Suite Teardown     Run Keyword And Ignore Error    Test Cleanup
+
+
+*** Variables ***
+@{vnfd_ids}
+${nsd_id}
+@{nsd_ids}
+@{ns_ids}
+
+
+*** Test Cases ***
+Create VNF Descriptor
+    [Tags]   disable_port_security    comprehensive
+
+    Build VNF Descriptor    ${vnfdPckgPath}
+    ${vnfd_id}=    Create VNFD    '${CURDIR}${/}../../..${vnfdPckgPath}${vnfdPckg}'
+    Append To List     ${vnfd_ids}       ${vnfd_id}
+
+
+Create NS Descriptor
+    [Tags]   disable_port_security    comprehensive
+
+    Build NS Descriptor    ${nsdPckgPath}
+    ${nsd_id}=    Create NSD    '${CURDIR}${/}../../..${nsdPckgPath}${nsdPckg}'
+    Append To List     ${nsd_ids}       ${nsd_id}
+
+
+Network Service Instance Test
+    [Documentation]  Launch and terminate network services
+    [Tags]   disable_port_security    comprehensive
+
+    :FOR    ${vim_name}    IN    @{vim}
+    \    Launch Network Services and Return    ${vim_name}
+
+
+Verify Port Security
+    [Tags]   disable_port_security    comprehensive
+
+    :FOR    ${ns}  IN   @{ns_ids}
+    \   Check For Network Port Security   ${ns}
+
+
+Delete NS Instance Test
+    [Tags]    disable_port_security   comprehensive
+
+    :FOR    ${ns}  IN   @{ns_ids}
+    \   Delete NS   ${ns}
+
+
+Delete NS Descriptor Test
+    [Tags]   disable_port_security    comprehensive
+
+    :FOR    ${nsd}  IN   @{nsd_ids}
+    \   Delete NSD      ${nsd}
+
+
+Delete VNF Descriptor Test
+    [Tags]   disable_port_security    comprehensive
+
+    :FOR    ${vnfd_id}  IN   @{vnfd_ids}
+    \   Delete VNFD     ${vnfd_id}
+
+
+*** Keywords ***
+Check For Network Port Security
+    [Arguments]    ${ns_name}
+    ${rc}   ${network_id}=      Run and Return RC and Output    openstack network list | grep ${ns_name} | awk '{print $2}'
+    Log    ${network_id}
+    ${rc}   ${stdout}=      Run and Return RC and Output    openstack network show ${network_id} -f json | jq '.port_security_enabled'
+    Log    ${stdout}
+    Should Be Equal As Strings    ${stdout}    true
+
+
+Test Cleanup
+    [Documentation]  Test Suit Cleanup: Deliting Descriptor, instance and vim
+
+    :FOR    ${ns}  IN   @{ns_ids}
+    \   Delete NS   ${ns}
+
+    :FOR    ${nsd}  IN   @{nsd_ids}
+    \   Delete NSD      ${nsd}
+
+    :FOR    ${vnfd}  IN   @{vnfd_ids}
+    \   Delete VNFD     ${vnfd}
+
+#    :FOR    ${vim_id}  IN   @{vim}
+#    \   Delete Vim Account    ${vim_id}
diff --git a/robot-systest/testsuite/cli/TS01__Test_VNF.robot b/robot-systest/deprecated/testsuite/cli/TS01__Test_VNF.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS01__Test_VNF.robot
rename to robot-systest/deprecated/testsuite/cli/TS01__Test_VNF.robot
diff --git a/robot-systest/testsuite/cli/TS02__Test_Vim.robot b/robot-systest/deprecated/testsuite/cli/TS02__Test_Vim.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS02__Test_Vim.robot
rename to robot-systest/deprecated/testsuite/cli/TS02__Test_Vim.robot
diff --git a/robot-systest/testsuite/cli/TS03__Hackfest_Basic_NS.robot b/robot-systest/deprecated/testsuite/cli/TS03__Hackfest_Basic_NS.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS03__Hackfest_Basic_NS.robot
rename to robot-systest/deprecated/testsuite/cli/TS03__Hackfest_Basic_NS.robot
diff --git a/robot-systest/testsuite/cli/TS04__Hackfest_Simplecharm_NS.robot b/robot-systest/deprecated/testsuite/cli/TS04__Hackfest_Simplecharm_NS.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS04__Hackfest_Simplecharm_NS.robot
rename to robot-systest/deprecated/testsuite/cli/TS04__Hackfest_Simplecharm_NS.robot
diff --git a/robot-systest/testsuite/cli/TS05__Hackfest_Multivdu_NS.robot b/robot-systest/deprecated/testsuite/cli/TS05__Hackfest_Multivdu_NS.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS05__Hackfest_Multivdu_NS.robot
rename to robot-systest/deprecated/testsuite/cli/TS05__Hackfest_Multivdu_NS.robot
diff --git a/robot-systest/testsuite/cli/TS06__Hackfest_Cloudinit_NS.robot b/robot-systest/deprecated/testsuite/cli/TS06__Hackfest_Cloudinit_NS.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS06__Hackfest_Cloudinit_NS.robot
rename to robot-systest/deprecated/testsuite/cli/TS06__Hackfest_Cloudinit_NS.robot
diff --git a/robot-systest/testsuite/cli/TS07__Hackfest_EPA_NS.robot b/robot-systest/deprecated/testsuite/cli/TS07__Hackfest_EPA_NS.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS07__Hackfest_EPA_NS.robot
rename to robot-systest/deprecated/testsuite/cli/TS07__Hackfest_EPA_NS.robot
diff --git a/robot-systest/testsuite/cli/__init__.robot b/robot-systest/deprecated/testsuite/cli/__init__.robot
similarity index 100%
rename from robot-systest/testsuite/cli/__init__.robot
rename to robot-systest/deprecated/testsuite/cli/__init__.robot
diff --git a/robot-systest/testsuite/client_library/TS01__OSMClient_Library_Test.robot b/robot-systest/deprecated/testsuite/client_library/TS01__OSMClient_Library_Test.robot
similarity index 100%
rename from robot-systest/testsuite/client_library/TS01__OSMClient_Library_Test.robot
rename to robot-systest/deprecated/testsuite/client_library/TS01__OSMClient_Library_Test.robot
diff --git a/robot-systest/testsuite/gui/TS01__Test_GUI_Login.robot b/robot-systest/deprecated/testsuite/gui/TS01__Test_GUI_Login.robot
similarity index 100%
rename from robot-systest/testsuite/gui/TS01__Test_GUI_Login.robot
rename to robot-systest/deprecated/testsuite/gui/TS01__Test_GUI_Login.robot
diff --git a/robot-systest/environment.rc b/robot-systest/environment.rc
new file mode 100644
index 0000000..a459e47
--- /dev/null
+++ b/robot-systest/environment.rc
@@ -0,0 +1,20 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+echo "Please set your environment variables."
+# export OSM_HOSTNAME=<OSM_HOSTNAME>
+# export OS_CLOUD=<OS_CLOUD>
+# export VIM_TARGET=<VIM_TARGET>
+# export VIM_MGMT_NET=<VIM_MGMT_NET>
+# export PACKAGES_FOLDER=<PACKAGES_FOLDER=>
+# export ROBOT_DEVOPS_FOLDER=<ROBOT_DEVOPS_FOLDER>
+# export ROBOT_REPORT_FOLDER=<ROBOT_REPORT_FOLDER>
diff --git a/robot-systest/lib/connectivity_lib.robot b/robot-systest/lib/connectivity_lib.robot
new file mode 100644
index 0000000..7b86593
--- /dev/null
+++ b/robot-systest/lib/connectivity_lib.robot
@@ -0,0 +1,19 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+*** Keywords ***
+Test Connectivity
+    [Arguments]  ${host}
+
+    ${result}  Run Process  ping -c 5 -W 1 ${host} > /dev/null && echo OK  shell=True
+    Log     all output: ${result.stdout}
+    Should Contain  ${result.stdout}  OK
diff --git a/robot-systest/lib/custom_lib.py b/robot-systest/lib/custom_lib.py
deleted file mode 100644
index 4603f44..0000000
--- a/robot-systest/lib/custom_lib.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##
-# Copyright 2019 Tech Mahindra Limited
-#
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-##
-
-## Change log:
-# 1. Feature 7829: Jayant Madavi, Mrityunjay Yadav : MY00514913@techmahindra.com : 06-aug-2019 : Improvement to the code, robot framework initial seed code.
-##
-
-import random
-from haikunator import Haikunator
-
-
-def generate_name():
-    haikunator = Haikunator()
-    name = haikunator.haikunate(delimiter='_', token_length=2)
-    return name
-
-
-def get_random_item_from_list(l):
-    assert isinstance(l, list), "List should be provided"
-    return random.choice(l)
diff --git a/robot-systest/lib/ns_lib.robot b/robot-systest/lib/ns_lib.robot
new file mode 100644
index 0000000..cc252fb
--- /dev/null
+++ b/robot-systest/lib/ns_lib.robot
@@ -0,0 +1,82 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+*** Variables ***
+${success_return_code}   0
+${ns_launch_max_wait_time}   5min
+${ns_launch_pol_time}   30sec
+${ns_delete_max_wait_time}   1min
+${ns_delete_pol_time}   15sec
+
+*** Keywords ***
+Create Network Service
+    [Arguments]   ${nsd}   ${vim_name}   ${ns_name}   ${ns_config}   ${publickey}
+
+    ${config_attr}   Set Variable If   '${ns_config}'!='${EMPTY}'   --config '${ns_config}'   \
+    ${sshkeys_attr}   Set Variable If   '${publickey}'!='${EMPTY}'   --ssh_keys ${publickey}   \
+
+    ${ns_id}=   Instantiate Network Service   ${ns_name}   ${nsd}   ${vim_name}   ${config_attr} ${sshkeys_attr}
+    log   ${ns_id}
+
+    WAIT UNTIL KEYWORD SUCCEEDS   ${ns_launch_max_wait_time}   ${ns_launch_pol_time}   Check For NS Instance To Configured   ${ns_name}
+    Check For NS Instance For Failure   ${ns_name}
+    [Return]  ${ns_id}
+
+Instantiate Network Service
+    [Arguments]   ${ns_name}   ${nsd}   ${vim_name}   ${ns_extra_args}
+
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-create --ns_name ${ns_name} --nsd_name ${nsd} --vim_account ${vim_name} ${ns_extra_args}
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    [Return]  ${stdout}
+
+Get Vnf Management Ip Address
+    [Arguments]   ${ns_id}   ${vnf_member_index}
+
+    Should Not Be Empty   ${ns_id}
+    Should Not Be Empty   ${vnf_member_index}
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm vnf-list --filter member-vnf-index-ref=${vnf_member_index} | grep ${ns_id} | awk '{print $14}' 2>&1
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    [Return]  ${stdout}
+
+Check For NS Instance To Configured
+    [Arguments]  ${ns_name}
+
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-list --filter name="${ns_name}"
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    Should Contain Any   ${stdout}   READY   BROKEN
+
+Check For NS Instance For Failure
+    [Arguments]  ${ns_name}
+
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-list --filter name="${ns_name}"
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    Should Not Contain   ${stdout}   BROKEN
+
+Check For NS Instance To Be Deleted
+    [Arguments]  ${ns}
+
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-list | awk '{print $2}' | grep ${ns}
+    Should Not Be Equal As Strings   ${stdout}   ${ns}
+
+Delete NS
+    [Documentation]  Delete ns
+    [Arguments]  ${ns}
+
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-delete ${ns}
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+
+    WAIT UNTIL KEYWORD SUCCEEDS  ${ns_delete_max_wait_time}   ${ns_delete_pol_time}   Check For NS Instance To Be Deleted   ${ns}
diff --git a/robot-systest/lib/nsd_lib.robot b/robot-systest/lib/nsd_lib.robot
new file mode 100644
index 0000000..8af1379
--- /dev/null
+++ b/robot-systest/lib/nsd_lib.robot
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+
+##
+# Copyright 2019 Tech Mahindra Limited
+#
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+##
+
+## Change log:
+# 1. Feature 7829: Jayant Madavi, Mrityunjay Yadav : MY00514913@techmahindra.com : 06-sep-2019
+##
+
+*** Variables ***
+${success_return_code}   0
+${delete_max_wait_time}   1min
+${delete_pol_time}   15sec
+
+
+*** Keywords ***
+Get NSDs List
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm nsd-list
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+
+
+Create NSD
+    [Arguments]   ${nsd_pkg}
+
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm nsd-create ${nsd_pkg}
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    [Return]  ${stdout}
+
+
+Delete NSD
+    [Arguments]   ${nsd_id}
+
+    ${rc}   ${stdout}=   Run Keyword And Continue On Failure   Run and Return RC and Output   osm nsd-delete ${nsd_id}
+    log   ${stdout}
+    WAIT UNTIL KEYWORD SUCCEEDS   ${delete_max_wait_time}   ${delete_pol_time}   Check For NSD   ${nsd_id}
+
+
+Check For NSD
+    [Arguments]   ${nsd_id}
+
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm nsd-list | awk '{print $2}' | grep ${nsd_id}
+    Should Not Be Equal As Strings   ${stdout}   ${nsd_id}
diff --git a/robot-systest/lib/ssh_lib.robot b/robot-systest/lib/ssh_lib.robot
new file mode 100644
index 0000000..3d2d708
--- /dev/null
+++ b/robot-systest/lib/ssh_lib.robot
@@ -0,0 +1,54 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+*** Keywords ***
+Test SSH Connection
+    [Arguments]   ${host}   ${username}   ${password}   ${privatekey}
+
+    Open Connection     ${host}
+    Run Keyword If   '${password}'!='${EMPTY}'   Login   ${username}   ${password}
+    ...   ELSE   Login With Public Key   ${username}   ${privatekey}
+    Execute Command   hostname
+    Close All Connections
+
+Check If remote File Exists
+    [Arguments]   ${host}   ${username}   ${password}   ${privatekey}   ${file}
+
+    Open Connection   ${host}
+    Run Keyword If   '${password}'!='${EMPTY}'  Login  ${username}  ${password}
+    ...   ELSE   Login With Public Key  ${username}  ${privatekey}
+    ${rc}=   Execute Command   ls ${file} >& /dev/null   return_stdout=False   return_rc=True
+    Close All Connections
+    Should Be Equal As Integers   ${rc}   0
+
+Get Remote File Content
+    [Arguments]  ${host}  ${username}  ${password}  ${privatekey}   ${file}
+
+    Open Connection     ${host}
+    Run Keyword If   '${password}'!='${EMPTY}'  Login  ${username}  ${password}
+    ...   ELSE   Login With Public Key  ${username}  ${privatekey}
+    ${output}=   Execute Command   cat ${file}
+    Close All Connections
+    [Return]   ${output}
+
+Execute Remote Command Check Rc Return Output
+    [Arguments]   ${host}   ${username}   ${password}   ${privatekey}   ${command}
+
+    Open Connection   ${host}
+    Run Keyword If   '${password}'!='${EMPTY}'  Login  ${username}  ${password}
+    ...   ELSE   Login With Public Key  ${username}  ${privatekey}
+    ${stdout}   ${rc}=   Execute Command   ${command}   return_rc=True   return_stdout=True
+    log   ${rc}
+    log   ${stdout}
+    Close All Connections
+    Should Be Equal As Integers   ${rc}   0
+    [Return]   ${stdout}
\ No newline at end of file
diff --git a/robot-systest/lib/vnfd_lib.robot b/robot-systest/lib/vnfd_lib.robot
new file mode 100644
index 0000000..828ea0a
--- /dev/null
+++ b/robot-systest/lib/vnfd_lib.robot
@@ -0,0 +1,61 @@
+# -*- coding: utf-8 -*-
+
+##
+# Copyright 2019 Tech Mahindra Limited
+#
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+##
+
+## Change log:
+# 1. Feature 7829: Jayant Madavi, Mrityunjay Yadav : MY00514913@techmahindra.com : 06-sep-2019
+##
+
+*** Variables ***
+${success_return_code}   0
+${delete_max_wait_time}   1min
+${delete_pol_time}   15sec
+
+
+*** Keywords ***
+Get VNFDs List
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm vnfd-list
+    log   ${stdout}
+    log   ${rc}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+
+
+Create VNFD
+    [Arguments]   ${vnfd_pkg}
+
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm vnfd-create ${vnfd_pkg}
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    [Return]  ${stdout}
+
+
+Delete VNFD
+    [Arguments]   ${vnfd_id}
+
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm vnfd-delete ${vnfd_id}
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    WAIT UNTIL KEYWORD SUCCEEDS   ${delete_max_wait_time}   ${delete_pol_time}   Check For VNFD   ${vnfd_id}
+
+
+Check For VNFD
+    [Arguments]   ${vnfd_id}
+
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm vnfd-list | awk '{print $2}' | grep ${vnfd_id}
+    Should Not Be Equal As Strings   ${stdout}   ${vnfd_id}
diff --git a/robot-systest/resources/hackfest_basic_ns_data.py b/robot-systest/resources/hackfest_basic_ns_data.py
new file mode 100644
index 0000000..5d3b856
--- /dev/null
+++ b/robot-systest/resources/hackfest_basic_ns_data.py
@@ -0,0 +1,27 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+from pathlib import Path
+
+# Get ${HOME} from local machine
+home = str(Path.home())
+# NS and VNF descriptor package files
+vnfd_pkg = 'hackfest_basic_vnf.tar.gz'
+nsd_pkg = 'hackfest_basic_ns.tar.gz'
+# NS and VNF descriptor package files
+vnfd_name = 'hackfest_basic-vnf'
+nsd_name = 'hackfest_basic-ns'
+# NS instance name
+ns_name = 'hfbasic'
+# SSH keys to be used
+publickey = home + '/.ssh/id_rsa.pub'
+privatekey = home + '/.ssh/id_rsa'
diff --git a/robot-systest/resources/hackfest_cloudinit_ns_data.py b/robot-systest/resources/hackfest_cloudinit_ns_data.py
new file mode 100644
index 0000000..6d2994b
--- /dev/null
+++ b/robot-systest/resources/hackfest_cloudinit_ns_data.py
@@ -0,0 +1,27 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+from pathlib import Path
+
+# Get ${HOME} from local machine
+home = str(Path.home())
+# NS and VNF descriptor package files
+vnfd_pkg = 'hackfest_cloudinit_vnf.tar.gz'
+nsd_pkg = 'hackfest_cloudinit_ns.tar.gz'
+# NS and VNF descriptor package files
+vnfd_name = 'hackfest_cloudinit-vnf'
+nsd_name = 'hackfest_cloudinit-ns'
+# NS instance name
+ns_name = 'hfcloudinit'
+# SSH keys to be used
+publickey = home + '/.ssh/id_rsa.pub'
+privatekey = home + '/.ssh/id_rsa'
diff --git a/robot-systest/resources/hackfest_multivdu_ns_data.py b/robot-systest/resources/hackfest_multivdu_ns_data.py
new file mode 100644
index 0000000..b8bc7fb
--- /dev/null
+++ b/robot-systest/resources/hackfest_multivdu_ns_data.py
@@ -0,0 +1,27 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+from pathlib import Path
+
+# Get ${HOME} from local machine
+home = str(Path.home())
+# NS and VNF descriptor package files
+vnfd_pkg = 'hackfest_multivdu_vnf.tar.gz'
+nsd_pkg = 'hackfest_multivdu_ns.tar.gz'
+# NS and VNF descriptor package files
+vnfd_name = 'hackfest_multivdu-vnf'
+nsd_name = 'hackfest_multivdu-ns'
+# NS instance name
+ns_name = 'hfmultivdu'
+# SSH keys to be used
+publickey = home + '/.ssh/id_rsa.pub'
+privatekey = home + '/.ssh/id_rsa'
diff --git a/robot-systest/testsuite/hackfest_basic.robot b/robot-systest/testsuite/hackfest_basic.robot
new file mode 100644
index 0000000..7e5d331
--- /dev/null
+++ b/robot-systest/testsuite/hackfest_basic.robot
@@ -0,0 +1,103 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+*** Settings ***
+Library   OperatingSystem
+Library   String
+Library   Collections
+Library   Process
+Library   SSHLibrary
+
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/vnfd_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/nsd_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/ns_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/connectivity_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/ssh_lib.robot
+
+Variables   %{ROBOT_DEVOPS_FOLDER}/resources/hackfest_basic_ns_data.py
+
+Suite Teardown   Run Keyword And Ignore Error   Test Cleanup
+
+
+*** Variables ***
+${ns_id}   ${EMPTY}
+${username}   ubuntu
+${password}   ${EMPTY}
+${vnf_member_index}   1
+${vnf_ip_addr}   ${EMPTY}
+${ns_config}   {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] }
+# ${ns_config}   ${EMPTY}
+
+*** Test Cases ***
+Create Hackfest Basic VNF Descriptor
+    [Tags]   hackfest_basic
+
+    Create VNFD   '%{PACKAGES_FOLDER}/${vnfd_pkg}'
+
+
+Create Hackfest Basic NS Descriptor
+    [Tags]   hackfest_basic
+
+    Create NSD   '%{PACKAGES_FOLDER}/${nsd_pkg}'
+
+Network Service Instance Test
+    [Tags]   hackfest_basic
+
+    ${id}=   Create Network Service   ${nsd_name}   %{VIM_TARGET}   ${ns_name}   ${ns_config}   ${publickey}
+    Set Suite Variable   ${ns_id}   ${id}
+
+
+Get Vnf Ip Address
+    [Tags]   hackfest_basic
+
+    ${ip_addr}  Get Vnf Management Ip Address   ${ns_id}   ${vnf_member_index}
+    log   ${ip_addr}
+    Set Suite Variable   ${vnf_ip_addr}   ${ip_addr}
+
+Test Ping
+    [Tags]   hackfest_basic
+    Test Connectivity  ${vnf_ip_addr}
+
+Test SSH Access
+    [Tags]   hackfest_basic
+    Sleep   30s   Waiting ssh daemon to be up
+    Test SSH Connection  ${vnf_ip_addr}  ${username}  ${password}  ${privatekey} 
+
+Delete NS Instance Test
+    [Tags]   hackfest_basic   cleanup
+
+    Delete NS   ${ns_name}
+
+
+Delete NS Descriptor Test
+    [Tags]   hackfest_basic   cleanup
+
+    Delete NSD   ${nsd_name}
+
+
+Delete VNF Descriptor Test
+    [Tags]   hackfest_basic   cleanup
+
+    Delete VNFD   ${vnfd_name}
+
+
+*** Keywords ***
+Test Cleanup
+    [Documentation]  Test Suit Cleanup: Deleting Descriptor, instance and vim
+
+    Run Keyword If Test Failed  Delete NS   ${ns_name}
+
+    Run Keyword If Test Failed  Delete NSD   ${nsd_name}
+
+    Run Keyword If Test Failed  Delete VNFD   ${vnfd_name}
+
+
diff --git a/robot-systest/testsuite/hackfest_cloudinit.robot b/robot-systest/testsuite/hackfest_cloudinit.robot
new file mode 100644
index 0000000..fff6975
--- /dev/null
+++ b/robot-systest/testsuite/hackfest_cloudinit.robot
@@ -0,0 +1,110 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+*** Settings ***
+Library   OperatingSystem
+Library   String
+Library   Collections
+Library   Process
+Library   SSHLibrary
+
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/vnfd_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/nsd_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/ns_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/connectivity_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/ssh_lib.robot
+
+Variables   %{ROBOT_DEVOPS_FOLDER}/resources/hackfest_cloudinit_ns_data.py
+
+Suite Teardown   Run Keyword And Ignore Error   Test Cleanup
+
+
+*** Variables ***
+${ns_id}   ${EMPTY}
+${username}   ubuntu
+${password}   ${EMPTY}
+${vnf_member_index}   1
+${vnf_ip_addr}   ${EMPTY}
+${ns_config}   {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] }
+# ${ns_config}   ${EMPTY}
+
+*** Test Cases ***
+Create Hackfest Cloudinit VNF Descriptor
+    [Tags]   hackfest_cloudinit
+
+    Create VNFD   '%{PACKAGES_FOLDER}/${vnfd_pkg}'
+
+
+Create Hackfest Cloudinit NS Descriptor
+    [Tags]   hackfest_cloudinit
+
+    Create NSD   '%{PACKAGES_FOLDER}/${nsd_pkg}'
+
+
+Network Service Instance Test
+    [Tags]   hackfest_cloudinit
+
+    ${id}=   Create Network Service   ${nsd_name}   %{VIM_TARGET}   ${ns_name}   ${ns_config}   ${publickey}
+    Set Suite Variable   ${ns_id}   ${id}
+
+
+Get Vnf Ip Address
+    [Tags]   hackfest_cloudinit
+
+    ${ip_addr}  Get Vnf Management Ip Address   ${ns_id}   ${vnf_member_index}
+    log   ${ip_addr}
+    Set Suite Variable   ${vnf_ip_addr}   ${ip_addr}
+
+
+Test SSH Access
+    [Tags]   hackfest_cloudinit
+
+    Sleep   30s   Waiting ssh daemon to be up
+    Test SSH Connection   ${vnf_ip_addr}   ${username}   ${password}   ${privatekey}
+
+
+Check Remote File Injected Via Cloud-init
+    [Tags]   hackfest_cloudinit
+
+    ${stdout}=   Execute Remote Command Check Rc Return Output   ${vnf_ip_addr}   ${username}   ${password}   ${privatekey}   sudo cat /root/helloworld.txt
+    log   ${stdout}
+
+
+Delete NS Instance Test
+    [Tags]   hackfest_cloudinit   cleanup
+
+    Delete NS   ${ns_name}
+
+
+Delete NS Descriptor Test
+    [Tags]   hackfest_cloudinit   cleanup
+
+    Delete NSD   ${nsd_name}
+
+
+Delete VNF Descriptor Test
+    [Tags]   hackfest_cloudinit   cleanup
+
+    Delete VNFD   ${vnfd_name}
+
+
+*** Keywords ***
+Test Cleanup
+    [Documentation]  Test Suit Cleanup: Deleting Descriptor, instance and vim
+
+    Run Keyword If Test Failed  Delete NS   ${ns_name}
+
+    Run Keyword If Test Failed  Delete NSD   ${nsd_name}
+
+    Run Keyword If Test Failed  Delete VNFD   ${vnfd_name}
+
+
diff --git a/robot-systest/testsuite/hackfest_multivdu.robot b/robot-systest/testsuite/hackfest_multivdu.robot
new file mode 100644
index 0000000..508d11f
--- /dev/null
+++ b/robot-systest/testsuite/hackfest_multivdu.robot
@@ -0,0 +1,105 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+*** Settings ***
+Library   OperatingSystem
+Library   String
+Library   Collections
+Library   Process
+Library   SSHLibrary
+
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/vnfd_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/nsd_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/ns_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/connectivity_lib.robot
+Resource   %{ROBOT_DEVOPS_FOLDER}/lib/ssh_lib.robot
+
+Variables   %{ROBOT_DEVOPS_FOLDER}/resources/hackfest_multivdu_ns_data.py
+
+Suite Teardown   Run Keyword And Ignore Error   Test Cleanup
+
+
+*** Variables ***
+${ns_id}   ${EMPTY}
+${username}   osm
+${password}   osm4u
+${vnf_member_index}   1
+${vnf_ip_addr}   ${EMPTY}
+${ns_config}   {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] }
+# ${ns_config}   ${EMPTY}
+
+*** Test Cases ***
+Create Hackfest multivdu VNF Descriptor
+    [Tags]   hackfest_multivdu
+
+    Create VNFD   '%{PACKAGES_FOLDER}/${vnfd_pkg}'
+
+
+Create Hackfest Multivdu NS Descriptor
+    [Tags]   hackfest_multivdu
+
+    Create NSD   '%{PACKAGES_FOLDER}/${nsd_pkg}'
+
+Network Service Instance Test
+    [Tags]   hackfest_multivdu
+
+    ${status}   ${message}=   Run Keyword And Ignore Error  Variable Should Exist   ${publickey}
+        Run Keyword If   "${status}" == "FAIL"   Set Global Variable   ${publickey}   ${EMPTY}
+    ${id}=   Create Network Service   ${nsd_name}   %{VIM_TARGET}   ${ns_name}   ${ns_config}   ${publickey}
+    Set Suite Variable   ${ns_id}   ${id}
+
+
+Get Vnf Ip Address
+    [Tags]   hackfest_multivdu
+
+    ${ip_addr}  Get Vnf Management Ip Address   ${ns_id}   ${vnf_member_index}
+    log   ${ip_addr}
+    Set Suite Variable   ${vnf_ip_addr}   ${ip_addr}
+
+Test Ping
+    [Tags]   hackfest_multivdu
+    Test Connectivity   ${vnf_ip_addr}
+
+Test SSH Access
+    [Tags]   hackfest_multivdu
+    Sleep   30s   Waiting ssh daemon to be up
+    ${status}   ${message}=   Run Keyword And Ignore Error  Variable Should Exist   ${privatekey}
+        Run Keyword If   "${status}" == "FAIL"   Set Global Variable   ${privatekey}   ${EMPTY}
+    Test SSH Connection   ${vnf_ip_addr}  ${username}  ${password}  ${privatekey} 
+
+Delete NS Instance Test
+    [Tags]   hackfest_multivdu   cleanup
+
+    Delete NS   ${ns_name}
+
+
+Delete NS Descriptor Test
+    [Tags]   hackfest_multivdu   cleanup
+
+    Delete NSD   ${nsd_name}
+
+
+Delete VNF Descriptor Test
+    [Tags]   hackfest_multivdu   cleanup
+
+    Delete VNFD   ${vnfd_name}
+
+
+*** Keywords ***
+Test Cleanup
+    [Documentation]  Test Suit Cleanup: Deleting Descriptor, instance and vim
+
+    Run Keyword If Test Failed  Delete NS   ${ns_name}
+
+    Run Keyword If Test Failed  Delete NSD   ${nsd_name}
+
+    Run Keyword If Test Failed  Delete VNFD   ${vnfd_name}