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}