From 4edf733e765a1069a34d6fccf940af27ae39dad6 Mon Sep 17 00:00:00 2001 From: romeromonser Date: Thu, 2 Apr 2020 15:54:38 +0200 Subject: [PATCH] Initial commit. Moved previous robot test to robot-systest/deprecated. Added basic tests. Change-Id: I2457a8e66da3df639e4f9e7d4aa91045494055c6 Signed-off-by: romeromonser --- robot-systest/README.md | 52 ++++++ .../{ => deprecated}/README_Robot_Test.md | 0 .../{ => deprecated}/lib/api/common.robot | 0 .../{ => deprecated}/lib/api/vim_lib.robot | 0 .../lib/cli/network_slicing_lib.robot | 0 .../{ => deprecated}/lib/cli/ns_lib.robot | 0 .../{ => deprecated}/lib/cli/nsd_lib.robot | 0 .../lib/cli/osm_package_tools_lib.robot | 0 ...osm_platform_resiliancy_recovery_lib.robot | 0 .../{ => deprecated}/lib/cli/rbac_lib.robot | 0 .../lib/cli/sdnc_account_lib.robot | 0 .../lib/cli/vim_account_lib.robot | 0 .../{ => deprecated}/lib/cli/vnfd_lib.robot | 0 .../lib/client_lib/client_lib.py | 0 .../{ => deprecated}/lib/custom_lib.py | 0 .../{ => deprecated}/lib/gui/login_gui.robot | 0 .../resource/api/common.robot | 0 .../resource/api/variables.py | 0 .../cli/disable_port_security_ns_data.py | 0 .../resource/cli/hackfest_basic_ns_data.py | 0 .../cli/hackfest_cloudinit_ns_data.py | 0 .../resource/cli/hackfest_epa_ns_data.py | 0 .../resource/cli/hackfest_multivdu_ns_data.py | 0 .../cli/hackfest_simplecharm_ns_data.py | 0 .../resource/cli/test_vnf_data.py | 0 .../resource/cli/ubuntu-cloudinit_ns_data.py | 0 robot-systest/{ => deprecated}/run_test.sh | 0 .../testsuite/api/TS01__Vim_Account.robot | 0 .../testsuite/cli/TS008__Test_SDNC.robot | 0 ...9__Feature_6283_Network_Slicing_Test.robot | 0 ...latform_Resiliency_and_Recovery_Test.robot | 0 ..._Feature_1415_RBAC_For_Platform_Test.robot | 0 ...nstantiation_Parameters_in_CloudInit.robot | 174 +++++++++--------- ...Visibility_Of_Packages_And_Instances.robot | 0 ...Feature_7921_MongoDB_Filesystem_Test.robot | 0 ...ient_Package_Creation_And_Validation.robot | 0 .../TS016__Manual_VNF_VDU_Scaling_Test.robot | 0 ...sable_Port_Security_at_Network_level.robot | 0 .../testsuite/cli/TS01__Test_VNF.robot | 0 .../testsuite/cli/TS02__Test_Vim.robot | 0 .../cli/TS03__Hackfest_Basic_NS.robot | 0 .../cli/TS04__Hackfest_Simplecharm_NS.robot | 0 .../cli/TS05__Hackfest_Multivdu_NS.robot | 0 .../cli/TS06__Hackfest_Cloudinit_NS.robot | 0 .../testsuite/cli/TS07__Hackfest_EPA_NS.robot | 0 .../testsuite/cli/__init__.robot | 0 .../TS01__OSMClient_Library_Test.robot | 0 .../testsuite/gui/TS01__Test_GUI_Login.robot | 0 robot-systest/environment.rc | 20 ++ robot-systest/lib/connectivity_lib.robot | 19 ++ robot-systest/lib/ns_lib.robot | 82 +++++++++ robot-systest/lib/nsd_lib.robot | 59 ++++++ robot-systest/lib/ssh_lib.robot | 54 ++++++ robot-systest/lib/vnfd_lib.robot | 61 ++++++ .../resources/hackfest_basic_ns_data.py | 27 +++ .../resources/hackfest_cloudinit_ns_data.py | 27 +++ .../resources/hackfest_multivdu_ns_data.py | 27 +++ robot-systest/testsuite/hackfest_basic.robot | 103 +++++++++++ .../testsuite/hackfest_cloudinit.robot | 110 +++++++++++ .../testsuite/hackfest_multivdu.robot | 105 +++++++++++ 60 files changed, 833 insertions(+), 87 deletions(-) create mode 100644 robot-systest/README.md rename robot-systest/{ => deprecated}/README_Robot_Test.md (100%) rename robot-systest/{ => deprecated}/lib/api/common.robot (100%) rename robot-systest/{ => deprecated}/lib/api/vim_lib.robot (100%) rename robot-systest/{ => deprecated}/lib/cli/network_slicing_lib.robot (100%) rename robot-systest/{ => deprecated}/lib/cli/ns_lib.robot (100%) rename robot-systest/{ => deprecated}/lib/cli/nsd_lib.robot (100%) rename robot-systest/{ => deprecated}/lib/cli/osm_package_tools_lib.robot (100%) rename robot-systest/{ => deprecated}/lib/cli/osm_platform_resiliancy_recovery_lib.robot (100%) rename robot-systest/{ => deprecated}/lib/cli/rbac_lib.robot (100%) rename robot-systest/{ => deprecated}/lib/cli/sdnc_account_lib.robot (100%) rename robot-systest/{ => deprecated}/lib/cli/vim_account_lib.robot (100%) rename robot-systest/{ => deprecated}/lib/cli/vnfd_lib.robot (100%) rename robot-systest/{ => deprecated}/lib/client_lib/client_lib.py (100%) rename robot-systest/{ => deprecated}/lib/custom_lib.py (100%) rename robot-systest/{ => deprecated}/lib/gui/login_gui.robot (100%) rename robot-systest/{ => deprecated}/resource/api/common.robot (100%) rename robot-systest/{ => deprecated}/resource/api/variables.py (100%) rename robot-systest/{ => deprecated}/resource/cli/disable_port_security_ns_data.py (100%) rename robot-systest/{ => deprecated}/resource/cli/hackfest_basic_ns_data.py (100%) rename robot-systest/{ => deprecated}/resource/cli/hackfest_cloudinit_ns_data.py (100%) rename robot-systest/{ => deprecated}/resource/cli/hackfest_epa_ns_data.py (100%) rename robot-systest/{ => deprecated}/resource/cli/hackfest_multivdu_ns_data.py (100%) rename robot-systest/{ => deprecated}/resource/cli/hackfest_simplecharm_ns_data.py (100%) rename robot-systest/{ => deprecated}/resource/cli/test_vnf_data.py (100%) rename robot-systest/{ => deprecated}/resource/cli/ubuntu-cloudinit_ns_data.py (100%) rename robot-systest/{ => deprecated}/run_test.sh (100%) rename robot-systest/{ => deprecated}/testsuite/api/TS01__Vim_Account.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS008__Test_SDNC.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS009__Feature_6283_Network_Slicing_Test.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS010__OSM_Platform_Resiliency_and_Recovery_Test.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS011__Feature_1415_RBAC_For_Platform_Test.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS012__Feature_7181_Allow_Instantiation_Parameters_in_CloudInit.robot (97%) rename robot-systest/{ => deprecated}/testsuite/cli/TS013__Feature_1415_RBAC_Visibility_Of_Packages_And_Instances.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS014__Feature_7921_MongoDB_Filesystem_Test.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS015__Feature_8047_OSMClient_Package_Creation_And_Validation.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS016__Manual_VNF_VDU_Scaling_Test.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS017__Feature_7326_Disable_Port_Security_at_Network_level.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS01__Test_VNF.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS02__Test_Vim.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS03__Hackfest_Basic_NS.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS04__Hackfest_Simplecharm_NS.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS05__Hackfest_Multivdu_NS.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS06__Hackfest_Cloudinit_NS.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/TS07__Hackfest_EPA_NS.robot (100%) rename robot-systest/{ => deprecated}/testsuite/cli/__init__.robot (100%) rename robot-systest/{ => deprecated}/testsuite/client_library/TS01__OSMClient_Library_Test.robot (100%) rename robot-systest/{ => deprecated}/testsuite/gui/TS01__Test_GUI_Login.robot (100%) create mode 100644 robot-systest/environment.rc create mode 100644 robot-systest/lib/connectivity_lib.robot create mode 100644 robot-systest/lib/ns_lib.robot create mode 100644 robot-systest/lib/nsd_lib.robot create mode 100644 robot-systest/lib/ssh_lib.robot create mode 100644 robot-systest/lib/vnfd_lib.robot create mode 100644 robot-systest/resources/hackfest_basic_ns_data.py create mode 100644 robot-systest/resources/hackfest_cloudinit_ns_data.py create mode 100644 robot-systest/resources/hackfest_multivdu_ns_data.py create mode 100644 robot-systest/testsuite/hackfest_basic.robot create mode 100644 robot-systest/testsuite/hackfest_cloudinit.robot create mode 100644 robot-systest/testsuite/hackfest_multivdu.robot diff --git a/robot-systest/README.md b/robot-systest/README.md new file mode 100644 index 00000000..99e957d7 --- /dev/null +++ b/robot-systest/README.md @@ -0,0 +1,52 @@ + + +# Robot Framework: Test usage + +## Requirements + +- OSM client installed () +- devops repository cloned in home () +- 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 97% 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 68f98fae..c5e1c75d 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 00000000..a459e479 --- /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= +# export OS_CLOUD= +# export VIM_TARGET= +# export VIM_MGMT_NET= +# export PACKAGES_FOLDER= +# export ROBOT_DEVOPS_FOLDER= +# export ROBOT_REPORT_FOLDER= diff --git a/robot-systest/lib/connectivity_lib.robot b/robot-systest/lib/connectivity_lib.robot new file mode 100644 index 00000000..7b865935 --- /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 00000000..cc252fba --- /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 00000000..8af13791 --- /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 00000000..3d2d708d --- /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 00000000..828ea0a1 --- /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 00000000..5d3b8561 --- /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 00000000..6d2994b8 --- /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 00000000..b8bc7fbd --- /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 00000000..7e5d3317 --- /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 00000000..fff6975a --- /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 00000000..508d11f4 --- /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} -- 2.25.1