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}