Initial commit. Moved previous robot test to robot-systest/deprecated. Added basic tests.
Change-Id: I2457a8e66da3df639e4f9e7d4aa91045494055c6
Signed-off-by: romeromonser <garomero@indra.es>
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 100%
rename from robot-systest/lib/cli/network_slicing_lib.robot
rename to robot-systest/deprecated/lib/cli/network_slicing_lib.robot
diff --git a/robot-systest/lib/cli/ns_lib.robot b/robot-systest/deprecated/lib/cli/ns_lib.robot
similarity index 100%
rename from robot-systest/lib/cli/ns_lib.robot
rename to robot-systest/deprecated/lib/cli/ns_lib.robot
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/lib/cli/osm_package_tools_lib.robot b/robot-systest/deprecated/lib/cli/osm_package_tools_lib.robot
similarity index 100%
rename from robot-systest/lib/cli/osm_package_tools_lib.robot
rename to robot-systest/deprecated/lib/cli/osm_package_tools_lib.robot
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 100%
rename from robot-systest/lib/cli/vim_account_lib.robot
rename to robot-systest/deprecated/lib/cli/vim_account_lib.robot
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/lib/custom_lib.py b/robot-systest/deprecated/lib/custom_lib.py
similarity index 100%
rename from robot-systest/lib/custom_lib.py
rename to robot-systest/deprecated/lib/custom_lib.py
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/resource/cli/disable_port_security_ns_data.py b/robot-systest/deprecated/resource/cli/disable_port_security_ns_data.py
similarity index 100%
rename from robot-systest/resource/cli/disable_port_security_ns_data.py
rename to robot-systest/deprecated/resource/cli/disable_port_security_ns_data.py
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/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
similarity index 100%
rename from robot-systest/testsuite/cli/TS013__Feature_1415_RBAC_Visibility_Of_Packages_And_Instances.robot
rename to robot-systest/deprecated/testsuite/cli/TS013__Feature_1415_RBAC_Visibility_Of_Packages_And_Instances.robot
diff --git a/robot-systest/testsuite/cli/TS014__Feature_7921_MongoDB_Filesystem_Test.robot b/robot-systest/deprecated/testsuite/cli/TS014__Feature_7921_MongoDB_Filesystem_Test.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS014__Feature_7921_MongoDB_Filesystem_Test.robot
rename to robot-systest/deprecated/testsuite/cli/TS014__Feature_7921_MongoDB_Filesystem_Test.robot
diff --git a/robot-systest/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
similarity index 100%
rename from robot-systest/testsuite/cli/TS015__Feature_8047_OSMClient_Package_Creation_And_Validation.robot
rename to robot-systest/deprecated/testsuite/cli/TS015__Feature_8047_OSMClient_Package_Creation_And_Validation.robot
diff --git a/robot-systest/testsuite/cli/TS016__Manual_VNF_VDU_Scaling_Test.robot b/robot-systest/deprecated/testsuite/cli/TS016__Manual_VNF_VDU_Scaling_Test.robot
similarity index 100%
rename from robot-systest/testsuite/cli/TS016__Manual_VNF_VDU_Scaling_Test.robot
rename to robot-systest/deprecated/testsuite/cli/TS016__Manual_VNF_VDU_Scaling_Test.robot
diff --git a/robot-systest/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
similarity index 100%
rename from robot-systest/testsuite/cli/TS017__Feature_7326_Disable_Port_Security_at_Network_level.robot
rename to robot-systest/deprecated/testsuite/cli/TS017__Feature_7326_Disable_Port_Security_at_Network_level.robot
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/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}