This bash script can be used to setup your environment to execute the tests.
```bash
- PACKAGES_FOLDER=osm-packages
- add-apt-repository -y ppa:rmescandon/yq && apt update && apt install yq git iputils-ping ssh -y
- pip install haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary \
- robotframework-sshlibrary
- snap install charm
- # Download community packages
- git clone https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git ${PACKAGES_FOLDER}
+PACKAGES_FOLDER=osm-packages
+add-apt-repository -y ppa:rmescandon/yq && apt update && apt install yq git iputils-ping ssh -y
+pip install haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary \
+ robotframework-sshlibrary
+snap install charm
+# Download community packages
+git clone https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git ${PACKAGES_FOLDER}
```
envfile.rc
```bash
- # VIM Setup
- OS_USERNAME=<openstack_username>
- OS_PASSWORD=<openstack_password>
- OS_TENANT_NAME=<openstack_tenant_name>
- OS_AUTH_URL=<openstack_authorization_url>
- OS_TENANT_ID=<openstack_tenant_id>
+# VIM Setup
+OS_USERNAME=<openstack_username>
+OS_PASSWORD=<openstack_password>
+OS_TENANT_NAME=<openstack_tenant_name>
+OS_AUTH_URL=<openstack_authorization_url>
+OS_TENANT_ID=<openstack_tenant_id>
- # OSM Setup
- OSM_HOSTNAME=<osm_ip_address>
- VIM_TARGET=<osm_vim_name>
- VIM_MGMT_NET=<osm_vim_mgmt_name>
+# OSM Setup
+OSM_HOSTNAME=<osm_ip_address>
+VIM_TARGET=<osm_vim_name>
+VIM_MGMT_NET=<osm_vim_mgmt_name>
- # Clouds file datacenter
- OS_CLOUD=<datacenter_in_clouds_file>
- # SDNCs file
- OS_SDNC=<SDN_controller_in_sdncs_file>
+# Clouds file datacenter
+OS_CLOUD=<datacenter_in_clouds_file>
+# SDNCs file
+OS_SDNC=<SDN_controller_in_sdncs_file>
- # K8S config file
- K8S_CREDENTIALS=<path_to_kubeconfig>
+# K8S config file
+K8S_CREDENTIALS=<path_to_kubeconfig>
- # The following set of environment variables will be used in host
- # of the robot framework. Not needed for docker execution
+# The following set of environment variables will be used in host
+# of the robot framework. Not needed for docker execution
- # Folder where Robot tests are stored
- ROBOT_DEVOPS_FOLDER=robot-systest
+# Folder where Robot tests are stored
+ROBOT_DEVOPS_FOLDER=robot-systest
- # Folder to save alternative DUT environments (optional)
- ENVIRONMENTS_FOLDER=environments
+# Folder to save alternative DUT environments (optional)
+ENVIRONMENTS_FOLDER=environments
- # Folder where all required packages are stored
- PACKAGES_FOLDER=osm-packages
+# Folder where all required packages are stored
+PACKAGES_FOLDER=osm-packages
- # Folder where test results should be exported
- ROBOT_REPORT_FOLDER=results
+# Folder where test results should be exported
+ROBOT_REPORT_FOLDER=results
```
## Deployment
* <path_to_kubeconfig> [OPTIONAL]: It is the kubeconfig file to be used for k8s clusters
```bash
- docker run --rm=true -t osmtests --env-file <env_file> \
+docker run --rm=true -t osmtests --env-file <env_file> \
-v <path_to_reports>:/reports osmtests \
-v <path_to_clouds.yaml>:/robot-systest/clouds.yaml \
-v <path_to_sdncs.yaml>:/robot-systest/sdncs.yaml \
The way of executing the tests is via the following command:
```bash
- source envfile.rc
- robot -d reports -i <testing_tags> testsuite/
+source envfile.rc
+robot -d reports -i <testing_tags> testsuite/
```
+## Test tags
+
+All tests in the testsuites have tags. Tags allow to run only a set of tests
+identified by a tag. Several tags can be specified when running robot in the
+following way:
+
+```bash
+robot -i <tag_01> -i <tag_02> testsuite/
+```
+
+The following tags exist for each testsuite:
+
+- A tag per testsuite using its mnemonic (e.g. `basic_01`)
+- Cluster tag for each of the statistically similar tests:
+ - `cluster_main`: `basic_01`, `basic_05`, `basic_08`, `basic_09`, `basic_15`,
+ `basic_16`, basic_17`, `hackfest_basic`, `hackfest_multivdu`,
+ `hackfest_cloudinit`, `quotas_01`
+ - `cluster_ee_config`: `basic_06`, `basic_07`, `basic_11`, `basic_12`,
+ `basic_13`, `basic_14`, `k8s_05`, `k8s_06`
+ - `cluster_relations`: `basic_11`, `basic_13`, `basic_14`
+ - `cluster_epa`: `epa_01`, `epa_02`, `epa_03`, `epa_04`, `epa_05`
+ - `cluster_k8s`: `k8s_01`, `k8s_02`, `k8s_03`, `k8s_04`, `k8s_07`, `sa_08`
+ - `cluster_k8s_charms`: `k8s_05`, `k8s_06`
+ - `cluster_sa`: `sa_01`, `sa_02`, `sa_07`
+ - `cluster_slices`: `slice_01`, `slice_02`
+- daily: for all testsuites that will run in the daily job
+- regression: for all testsuites that should pass in the current stable branch
+- sanity: for all testsuites that should be passed by each commit in the
+ stage3 to be successfully verified by Jenkins, currently `basic_07`,
+ `basic_11`, `k8s_03`, `k8s_04`, `sa_02`
+
+In addition, the tag "cleanup" exists in those tests that perform
+any deletion. In that way, it can be invoked to retry the deletion if
+the tests were forcefully stopped.
+
## Built With
* [Python](www.python.org/) - The language used
--env-file: It is the environmental file where is described the OSM target and VIM
-o <osmclient_version> [OPTIONAL]: It is used to specify a particular osmclient version. Default: latest
-p <package_branch> [OPTIONAL]: OSM packages repository branch. Default: master
- -t <testing_tags> [OPTIONAL]: Robot tests tags. [sanity, regression, particular_test]. Default: sanity
+ -t <testing_tags> [OPTIONAL]: Robot tests tags. [sanity, daily, regression, particular_test]. Default: sanity
-T <testing_branch> [OPTIONAL]: Run SOL005 Robot conformance tests
-c To create a VIM for the tests
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_01-crud_operations_on_vim_targets_data.py
+Force Tags basic_01 cluster_main daily regression
+
*** Test Cases ***
Create VIM Target Basic
[Documentation] Create a VIM Target only with the mandatory parameters.
... Checks the status of the VIM in Prometheus after it creation.
- [Tags] vim sanity regression
${rand}= Generate Random String 8 [NUMBERS]
${vim_name}= Catenate SEPARATOR=_ ${vim_name_prefix} ${rand}
Delete VIM Target By Name
[Documentation] Delete the VIM Target created in previous test-case by its name.
... Checks whether the VIM Target was created or not before perform the deletion.
- [Tags] vim sanity regression cleanup
+ [Tags] cleanup
${vim_account_id}= Get VIM Target ID ${vim_name}
Should Be Equal As Strings ${vim_account_id} ${created_vim_account_id}
Create VIM Target With Extra Config
[Documentation] Create a VIM Target using the extra parameter 'config'.
... Checks the status of the VIM in Prometheus after it creation.
- [Tags] vim sanity regression
${rand}= Generate Random String 8 [NUMBERS]
${vim_name}= Catenate SEPARATOR=_ ${vim_name_prefix} ${rand}
Delete VIM Target By ID
[Documentation] Delete the VIM Target created in previous test-case by its ID.
... Checks whether the VIM Target was created or not before perform the deletion.
- [Tags] vim sanity regression cleanup
+ [Tags] cleanup
${vim_account_id}= Get VIM Target ID ${vim_name}
Should Be Equal As Strings ${vim_account_id} ${created_vim_account_id}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_05-instantiation_parameters_in_cloud_init_data.py
+Force Tags basic_05 cluster_main daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Cloudinit VNF Descriptor
- [Tags] instantiation_params sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create Cloudinit NS Descriptor
- [Tags] instantiation_params sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Cloudinit Network Service Using Instantiation Parameters
[Documentation] Instantiates the NS using the instantiation parameter 'additionalParamsForVnf' to change the password of the default user.
- [Tags] instantiation_params sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${EMPTY}
Set Suite Variable ${ns_id} ${id}
Get Management Ip Addresses
- [Tags] instantiation_params sanity regression
${ip_addr} Get Vnf Management Ip Address ${ns_id} ${vnf_member_index}
log ${ip_addr}
Test SSH Access With The New Password
[Documentation] Test SSH access with the new password configured via cloud-init.
- [Tags] instantiation_params sanity regression
Variable Should Exist ${vnf_ip_addr} msg=IP address of the management VNF is not available
Sleep 30s Waiting ssh daemon to be up
Delete NS Instance
- [Tags] instantiation_params sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] instantiation_params sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] instantiation_params sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_06-vnf_with_charm_data.py
+Force Tags basic_06 cluster_ee_config daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Charm VNF Descriptor
- [Tags] proxy_charm charm sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create Charm NS Descriptor
- [Tags] proxy_charm charm sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Charm Network Service
- [Tags] proxy_charm charm sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey} ${ns_timeout}
Set Suite Variable ${ns_id} ${id}
Get Management Ip Addresses
- [Tags] proxy_charm charm sanity regression
${ip_addr_1} Get Vnf Management Ip Address ${ns_id} ${vnf_member_index_1}
log ${ip_addr_1}
Test SSH Access
- [Tags] proxy_charm charm sanity regression
Variable Should Exist ${vnf_1_ip_addr} msg=IP address of the management VNF '${vnf_member_index_1}' is not available
Variable Should Exist ${vnf_2_ip_addr} msg=IP address of the management VNF '${vnf_member_index_2}' is not available
Check Remote Files Created Via Day 1 Operations
[Documentation] The Charm VNF has a Day 1 operation that creates a file named ${day_1_file_name}.
... This test checks whether that files have been created or not.
- [Tags] proxy_charm charm sanity regression
Check If remote File Exists ${vnf_1_ip_addr} ${username} ${password} ${privatekey} ${day_1_file_name}
Check If remote File Exists ${vnf_2_ip_addr} ${username} ${password} ${privatekey} ${day_1_file_name}
Execute Day 2 Operations
[Documentation] Performs one Day 2 operation per VNF that creates a new file.
- [Tags] proxy_charm charm sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${ns_op_id_1}= Execute NS Action ${ns_name} ${action_name} ${vnf_member_index_1} filename=${day_2_file_name_1}
Check Remote Files Created Via Day 2 Operations
[Documentation] Check whether the files created in the previous test via Day 2 operations exist or not.
- [Tags] proxy_charm charm sanity regression
Check If remote File Exists ${vnf_1_ip_addr} ${username} ${password} ${privatekey} ${day_2_file_name_1}
Check If remote File Exists ${vnf_2_ip_addr} ${username} ${password} ${privatekey} ${day_2_file_name_2}
Delete NS Instance
- [Tags] proxy_charm charm sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] proxy_charm charm sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] proxy_charm charm sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_07-secure_key_management_data.py
+Force Tags basic_07 cluster_ee_config daily regression sanity
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_08-disable_port_security_network_level_data.py
+Force Tags basic_08 cluster_main daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create VIM With Port Security Disabled
- [Tags] disable_port_security sanity regression
${created_vim_account_id}= Create VIM Target ${vim_name} ${vim_user} ${vim_password} ${vim_auth_url} ${vim_tenant} ${vim_account_type} config=${vim_config}
Check for VIM Target Status ${vim_name} ${prometheus_host} ${prometheus_port}
Create VNF Descriptor
- [Tags] disable_port_security sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create NS Descriptor
- [Tags] disable_port_security sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Network Service
- [Tags] disable_port_security sanity regression
${id}= Create Network Service ${nsd_name} ${vim_name} ${ns_name} ${ns_config} ${publickey}
Set Suite Variable ${ns_id} ${id}
Check Port Security Is Disabled
- [Tags] disable_port_security sanity regression
${rc} ${disabled_ports}= Run and Return RC and Output osm ns-show ${ns_name} --literal | grep -c '${port_disabled_msg}'
Run Keyword Unless ${disabled_ports} > 0 Fail msg=Found '${disabled_ports}' matches for '${port_disabled_msg}'
Delete NS Instance
- [Tags] disable_port_security sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] disable_port_security sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] disable_port_security sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Delete VIM
- [Tags] disable_port_security sanity regression cleanup
+ [Tags] cleanup
Delete VIM Target ${vim_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_09-manual_vdu_scaling_data.py
+Force Tags basic_09 cluster_main daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Scaling VNF Descriptor
- [Tags] manual_scaling sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create Scaling NS Descriptor
- [Tags] manual_scaling sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Scaling Network Service
- [Tags] manual_scaling sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey}
Set Suite Variable ${ns_id} ${id}
Get Vnf Id
- [Tags] manual_scaling sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
@{vnfr_list}= Get Ns Vnfr Ids ${ns_id}
Get Vdus Before Scale Out
[Documentation] Get the number of VDU records before the manual scaling.
- [Tags] manual_scaling sanity regression
@{vdur_list}= Get Vnf Vdur Names ${vnf_id}
Log List ${vdur_list}
Perform Manual Vdu Scale Out
- [Tags] manual_scaling sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${ns_op_id}= Execute Manual VNF Scale ${ns_name} ${vnf_member_index} ${scaling_group} SCALE_OUT
Check Vdus After Scale Out
[Documentation] Check whether there is one more VDU after scaling or not.
- [Tags] manual_scaling sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
@{vdur_list}= Get Vnf Vdur Names ${vnf_id}
Perform Manual Vdu Scale In
- [Tags] manual_scaling sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${ns_op_id}= Execute Manual VNF Scale ${ns_name} ${vnf_member_index} ${scaling_group} SCALE_IN
Check Vdus After Scaling In
[Documentation] Check whether there is one less VDU after scaling or not.
- [Tags] manual_scaling sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
@{vdur_list}= Get Vnf Vdur Names ${vnf_id}
Delete NS Instance
- [Tags] manual_scaling sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] manual_scaling sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] manual_scaling sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_11-native_charms.py
+Force Tags basic_11 cluster_ee_config cluster_relations daily regression sanity
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Charm VNF Descriptor
- [Tags] native_charms charm sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create Charm NS Descriptor
- [Tags] native_charms charm sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Charm Network Service
- [Tags] native_charms charm sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey} ${ns_timeout}
Set Suite Variable ${ns_id} ${id}
Get Management Ip Addresses
- [Tags] native_charms charm sanity regression
${ip_addr_1} Get Vnf Management Ip Address ${ns_id} ${vnf_member_index_1}
log ${ip_addr_1}
Test SSH Access
- [Tags] native_charms charm sanity regression
Variable Should Exist ${vnf_1_ip_addr} msg=IP address of the management VNF '${vnf_member_index_1}' is not available
Variable Should Exist ${vnf_2_ip_addr} msg=IP address of the management VNF '${vnf_member_index_2}' is not available
Check Remote Files Created Via Day 1 Operations
[Documentation] The Charm VNF has a Day 1 operation that creates a file named ${day_1_file_name}.
... This test checks whether that files have been created or not.
- [Tags] native_charms charm sanity regression
Check If remote File Exists ${vnf_1_ip_addr} ${username} ${password} ${privatekey} ${day_1_file_name}
Check If remote File Exists ${vnf_2_ip_addr} ${username} ${password} ${privatekey} ${day_1_file_name}
Delete NS Instance
- [Tags] native_charms charm sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] native_charms charm sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] native_charms charm sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
# limitations under the License.
*** Settings ***
+Documentation [BASIC-12] NS Primitives
+
Library OperatingSystem
Library String
Library Collections
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_12-ns_primitives_data.py
+Force Tags basic_12 cluster_ee_config daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
[Documentation] NS package needs to be updated with the Juju credentials for your OSM installation
- [Tags] nsprimitives charm sanity regression
-
${nsd_yaml}= Get File %{PACKAGES_FOLDER}/${nsd_pkg}/${nsd_file}
${changed_nsd_yaml}= Replace String ${nsd_yaml} ${old_juju_password} %{JUJU_PASSWORD}
Create File %{PACKAGES_FOLDER}/${nsd_pkg}/${nsd_file} ${changed_nsd_yaml}
Upload Vnfds
- [Tags] nsprimitives charm sanity regression
-
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg1}'
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg2}'
Upload Nsd
- [Tags] nsprimitives charm sanity regression
-
Create NSD %{PACKAGES_FOLDER}/${nsd_pkg}/
Instantiate NS
- [Tags] nsprimitives charm sanity regression
-
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey} ns_launch_max_wait_time=40min
Set Suite Variable ${ns_id} ${id}
Delete NS
- [Tags] nsprimitives charm sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] nsprimitives charm sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptors
- [Tags] nsprimitives charm sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name1}
Delete VNFD ${vnfd_name2}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_13-ns_relations.py
+Force Tags basic_13 cluster_ee_config cluster_relations daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Charm VNF Descriptor Provides
- [Tags] ns_relations charm sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg1}'
Create Charm VNF Descriptor Requires
- [Tags] ns_relations charm sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg2}'
Create Charm NS Descriptor
- [Tags] ns_relations charm sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Charm Network Service
- [Tags] ns_relations charm sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey} ${ns_timeout}
Set Suite Variable ${ns_id} ${id}
Delete NS Instance
- [Tags] ns_relations charm sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] ns_relations charm sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor Provides
- [Tags] ns_relations charm sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name1}
Delete VNF Descriptor Requires
- [Tags] ns_relations charm sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name2}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_14-vnf_relations.py
+Force Tags basic_14 cluster_ee_config cluster_relations daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Charm VNF Descriptor
- [Tags] vnf_relations charm sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create Charm NS Descriptor
- [Tags] vnf_relations charm sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Charm Network Service
- [Tags] vnf_relations charm sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey} ${ns_timeout}
Set Suite Variable ${ns_id} ${id}
Delete NS Instance
- [Tags] vnf_relations charm sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] vnf_relations charm sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor Provides
- [Tags] vnf_relations charm sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_15-rbac_configurations_data.py
+Force Tags basic_15 cluster_main daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create And Validate User
- [Tags] rbac_configurations sanity regression
Create User ${user_name} ${user_password}
Check If User Exists ${user_name}
Assign Role To User
- [Tags] rbac_configurations sanity regression
Update User Role ${user_name} ${user_project} ${user_role}
Check If User Is Assigned To Project ${user_name} ${user_project}
Run Action As User
- [Tags] rbac_configurations sanity regression
${rc} ${stdout}= Run And Return RC And Output OSM_USER=${user_name} OSM_PROJECT=${user_project} OSM_PASSWORD=${user_password} osm ns-list
Should Be Equal As Integers ${rc} ${success_return_code}
Create And Update Project
- [Tags] rbac_configurations sanity regression
Create Project ${project_name}
Update Project Name ${project_name} ${new_project_name}
Create And Validate Role
- [Tags] rbac_configurations sanity regression
Create Role ${role_name}
Check If Role Exists ${role_name}
Update Role Information
- [Tags] rbac_configurations sanity regression
Update Role ${role_name} add='vims: true'
Check If Role Exists ${role_name}
Delete Allocated Resources
- [Tags] rbac_configurations sanity regression cleanup
+ [Tags] cleanup
Delete User ${user_name}
Delete Project ${new_project_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_16-advanced_onboarding_and_scaling_data.py
+Force Tags basic_16 cluster_main daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Scaling VNF Descriptor
- [Tags] advanced_scaling sanity regression
Create VNFD Overriding Fields '%{PACKAGES_FOLDER}/${vnfd_pkg}' df.0.instantiation-level.0.vdu-level.0.number-of-instances=${init_instances};df.0.vdu-profile.0.min-number-of-instances=${min_instances};df.0.vdu-profile.0.max-number-of-instances=${max_instances};df.0.scaling-aspect.0.aspect-delta-details.deltas.0.vdu-delta.0.number-of-instances=${delta_instances}
Create Scaling NS Descriptor
- [Tags] advanced_scaling sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Scaling Network Service
- [Tags] advanced_scaling sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey}
Set Suite Variable ${ns_id} ${id}
Get Vnf Id
- [Tags] advanced_scaling sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
@{vnfr_list}= Get Ns Vnfr Ids ${ns_id}
Check Vdus Before Scale Out
[Documentation] Check the number of VDUs instances before the manual scaling.
- [Tags] advanced_scaling sanity regression
@{vdur_list}= Get Vnf Vdur Names ${vnf_id}
Log List ${vdur_list}
Perform Manual Vdu Scale Out
- [Tags] advanced_scaling sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${ns_op_id}= Execute Manual VNF Scale ${ns_name} ${vnf_member_index} ${scaling_group} SCALE_OUT
Check Vdus After Scale Out
[Documentation] Check whether there is one more VDU after scaling or not.
- [Tags] advanced_scaling sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
@{vdur_list}= Get Vnf Vdur Names ${vnf_id}
Perform Manual Vdu Scale In
- [Tags] advanced_scaling sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${ns_op_id}= Execute Manual VNF Scale ${ns_name} ${vnf_member_index} ${scaling_group} SCALE_IN
Check Vdus After Scaling In
[Documentation] Check whether there is one less VDU after scaling or not.
- [Tags] advanced_scaling sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
@{vdur_list}= Get Vnf Vdur Names ${vnf_id}
Delete NS Instance
- [Tags] advanced_scaling sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] advanced_scaling sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] advanced_scaling sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
# limitations under the License.
*** Settings ***
+Documentation [BASIC-17] Delete VNF Package Before NS Package.
+
Library OperatingSystem
Library String
Library Collections
Variables %{ROBOT_DEVOPS_FOLDER}/resources/basic_17-delete_vnf_package_data.py
+Force Tags basic_17 cluster_main daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create VNF Package
- [Tags] hackfest_basic sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create NS Package
- [Tags] hackfest_basic sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Cannot Delete VNF Package
- [Tags] hackfest_basic sanity regression cleanup
Assert Failure Delete VNFD ${vnfd_name}
Delete NS Package
- [Tags] hackfest_basic sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Package
- [Tags] hackfest_basic sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/epa_01-epa_sriov_data.py
+Force Tags epa_01 cluster_epa daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create VNF Descriptor
- [Tags] epa_sriov sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create NS Descriptor
- [Tags] epa_sriov sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Network Service
- [Tags] epa_sriov sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey}
Set Suite Variable ${ns_id} ${id}
Get VNF IP Address
- [Tags] epa_sriov sanity regression
${ip_addr}= Get Vnf Management Ip Address ${ns_id} ${vnf_member_index}
log ${ip_addr}
Check SR-IOV Interface
- [Tags] epa_sriov sanity regression
Sleep 30 seconds Waiting for SSH daemon to be up
Execute Remote Command Check Rc Return Output ${vnf_ip_addr} ${username} ${password} ${privatekey} lspci | grep "Ethernet controller" | grep -v "Virtio"
Delete NS Instance
- [Tags] epa_sriov sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] epa_sriov sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] epa_sriov sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/epa_02-additional_capabilities_data.py
+Force Tags epa_02 cluster_epa daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create VNF Descriptor
- [Tags] epa_capabilities sanity regression
Remove Environment Variable OVERRIDES
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create NS Descriptor
- [Tags] epa_capabilities sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Network Service
- [Tags] epa_capabilities sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey}
Set Suite Variable ${ns_id} ${id}
Get VNF Server ID
- [Tags] epa_capabilities sanity regression
${vnfs_list}= Get Ns Vnf List ${ns_id}
${vim_id}= Get VNF VIM ID ${vnfs_list}[0]
Get Server Flavor Properties
- [Tags] epa_capabilities sanity regression
${flavor_id}= Get Server Flavor ID ${vnf_server_id}
${properties}= Get Flavor Properties ${flavor_id}
Check Flavor Quota Properties
- [Tags] epa_capabilities sanity regression
${rc}= Run and Return RC echo ${flavor_properties} | grep "cpu_shares_level=custom"
Should Be Equal As Integers ${rc} ${success_return_code}
Delete NS Instance
- [Tags] epa_capabilities sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] epa_capabilities sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] epa_capabilities sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/epa_03-crud_operations_on_sdnc_data.py
+Force Tags epa_03 cluster_epa daily regression
+
Suite Teardown Run Keyword And Ignore Error Delete Basic SDNC
*** Test Cases ***
Create Basic SDNC
- [Tags] sdnc_crud sanity regression
${created_sdnc_id}= Create SDNC ${sdnc_name} ${sdnc_user} ${sdnc_password} ${sdnc_url} ${sdnc_type}
Check for SDNC ${sdnc_name}
- Check SDNC Status Is Healthy
- [Tags] sdnc_crud sanity regression
+Check SDNC Status Is Healthy
Check for SDNC Status ${sdnc_name} ${prometheus_host} ${prometheus_port}
Delete Basic SDNC
- [Tags] sdnc_crud sanity regression cleanup
+ [Tags] cleanup
Delete SDNC ${sdnc_name}
\r
Variables %{ROBOT_DEVOPS_FOLDER}/resources/epa_04-epa_underlay_sriov.py\r
\r
+Force Tags epa_04 cluster_epa daily regression\r
+\r
Suite Teardown Run Keyword And Ignore Error Suite Cleanup\r
\r
+\r
*** Variables ***\r
${vnf_member_index_1} 1\r
${vnf_member_index_2} 2\r
\r
*** Test Cases ***\r
Create VNF Descriptor\r
- [Tags] epa_underlay_sriov sanity regression\r
\r
Remove Environment Variable OVERRIDES\r
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'\r
\r
\r
Create NS Descriptor\r
- [Tags] epa_underlay_sriov sanity regression\r
\r
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'\r
\r
\r
Instantiate Network Service\r
- [Tags] epa_underlay_sriov sanity regression\r
\r
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey}\r
Set Suite Variable ${ns_id} ${id}\r
\r
\r
Get Management Ip Addresses\r
- [Tags] epa_underlay_sriov sanity regression\r
\r
Variable Should Exist ${ns_id} msg=Network service instance is not available\r
${ip} Get Vnf Management Ip Address ${ns_id} ${vnf_member_index_1}\r
\r
\r
Ping from Vnf1 to Vnf2\r
- [Tags] epa_underlay_sriov sanity regression\r
\r
Variable Should Exist ${ip_mgmt_1} msg=IP address of the data VNF '${vnf_member_index_1}' is not available\r
Variable Should Exist ${privatekey} msg=SSH private key not available\r
\r
\r
Ping from Vnf2 to Vnf1\r
- [Tags] epa_underlay_sriov sanity regression\r
\r
Variable Should Exist ${ip_mgmt_2} msg=IP address of the data VNF '${vnf_member_index_2}' is not available\r
Variable Should Exist ${privatekey} msg=SSH private key not available\r
\r
\r
Delete NS Instance\r
- [Tags] epa_underlay_sriov sanity regression cleanup\r
+ [Tags] cleanup\r
\r
Delete NS ${ns_name}\r
\r
\r
Delete NS Descriptor\r
- [Tags] epa_underlay_sriov sanity regression cleanup\r
+ [Tags] cleanup\r
\r
Delete NSD ${nsd_name}\r
\r
\r
Delete VNF Descriptor\r
- [Tags] epa_underlay_sriov sanity regression cleanup\r
+ [Tags] cleanup\r
\r
Delete VNFD ${vnfd_name}\r
\r
Variables %{ROBOT_DEVOPS_FOLDER}/resources/epa_05-epa_underlay_passthrough.py
+Force Tags epa_05 cluster_epa daily regresssion
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
+
*** Variables ***
${vnf_member_index_1} 1
${vnf_member_index_2} 2
*** Test Cases ***
Create VNF Descriptor
- [Tags] epa_underlay_passthrough sanity regression
Remove Environment Variable OVERRIDES
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create NS Descriptor
- [Tags] epa_underlay_passthrough sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Network Service
- [Tags] epa_underlay_passthrough sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey}
Set Suite Variable ${ns_id} ${id}
Get Management Ip Addresses
- [Tags] epa_underlay_passthrough sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${ip} Get Vnf Management Ip Address ${ns_id} ${vnf_member_index_1}
Ping from Vnf1 to Vnf2
- [Tags] epa_underlay_passthrough sanity regression
Variable Should Exist ${ip_mgmt_1} msg=IP address of the data VNF '${vnf_member_index_1}' is not available
Variable Should Exist ${privatekey} msg=SSH private key not available
Ping from Vnf2 to Vnf1
- [Tags] epa_underlay_passthrough sanity regression
Variable Should Exist ${ip_mgmt_2} msg=IP address of the data VNF '${vnf_member_index_2}' is not available
Variable Should Exist ${privatekey} msg=SSH private key not available
Delete NS Instance
- [Tags] epa_underlay_passthrough sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] epa_underlay_passthrough sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] epa_underlay_passthrough sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
# limitations under the License.
*** Settings ***
+Documentation [HACKFEST-BASIC] Basic NS with a single-VDU VNF
+
Library OperatingSystem
Library String
Library Collections
Variables %{ROBOT_DEVOPS_FOLDER}/resources/hackfest_basic_ns_data.py
+Force Tags hackfest_basic cluster_main daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Hackfest Basic VNF Descriptor
- [Tags] hackfest_basic sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create Hackfest Basic NS Descriptor
- [Tags] hackfest_basic sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Network Service Instance Test
- [Tags] hackfest_basic sanity regression
${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 sanity regression
${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 sanity regression
Test Connectivity ${vnf_ip_addr}
Test SSH Access
- [Tags] hackfest_basic sanity regression
Sleep 30s Waiting ssh daemon to be up
Test SSH Connection ${vnf_ip_addr} ${username} ${password} ${privatekey}
Delete NS Instance Test
- [Tags] hackfest_basic sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor Test
- [Tags] hackfest_basic sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor Test
- [Tags] hackfest_basic sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
# limitations under the License.
*** Settings ***
+Documentation [HACKFEST-CLOUDINIT] Basic NS with two multi-VDU VNF with cloudinit
+
Library OperatingSystem
Library String
Library Collections
Variables %{ROBOT_DEVOPS_FOLDER}/resources/hackfest_cloudinit_ns_data.py
+Force Tags hackfest_cloudinit cluster_main daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Hackfest Cloudinit VNF Descriptor
- [Tags] hackfest_cloudinit sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create Hackfest Cloudinit NS Descriptor
- [Tags] hackfest_cloudinit sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Network Service Instance Test
- [Tags] hackfest_cloudinit sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${EMPTY}
Set Suite Variable ${ns_id} ${id}
Get Vnf Ip Address
- [Tags] hackfest_cloudinit sanity regression
${ip_addr} Get Vnf Management Ip Address ${ns_id} ${vnf_member_index}
log ${ip_addr}
Test SSH Access
- [Tags] hackfest_cloudinit sanity regression
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 sanity regression
${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 sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor Test
- [Tags] hackfest_cloudinit sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor Test
- [Tags] hackfest_cloudinit sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
# limitations under the License.
*** Settings ***
+Documentation [HACKFEST-MULTIVDU] Basic NS with two multi-VDU VNF
+
Library OperatingSystem
Library String
Library Collections
Variables %{ROBOT_DEVOPS_FOLDER}/resources/hackfest_multivdu_ns_data.py
+Force Tags hackfest_multivdu cluster_main daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Hackfest multivdu VNF Descriptor
- [Tags] hackfest_multivdu sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create Hackfest Multivdu NS Descriptor
- [Tags] hackfest_multivdu sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Network Service Instance Test
- [Tags] hackfest_multivdu sanity regression
${status} ${message}= Run Keyword And Ignore Error Variable Should Exist ${publickey}
Run Keyword If "${status}" == "FAIL" Set Global Variable ${publickey} ${EMPTY}
Sleep ${wait_guard_for_vm_boot} Waiting for VM's daemons to be up and running
Get Vnf Ip Address
- [Tags] hackfest_multivdu sanity regression
${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 sanity regression
Test Connectivity ${vnf_ip_addr}
Test SSH Access
- [Tags] hackfest_multivdu sanity regression
${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 sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor Test
- [Tags] hackfest_multivdu sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor Test
- [Tags] hackfest_multivdu sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
# limitations under the License.
*** Settings ***
+Documentation [K8s-01] Create K8s cluster.
+
Library OperatingSystem
Library String
Library Collections
Variables %{ROBOT_DEVOPS_FOLDER}/resources/k8s_01-create_k8s_cluster_data.py
+Force Tags k8s_01 cluster_k8s daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Render a template
- [Tags] newK8sCluster regression
${stdout}= Render template %{ROBOT_DEVOPS_FOLDER}/resources/${template} %{ROBOT_DEVOPS_FOLDER}/resources/${config_file} IP_VM1=%{IP_VM1} IP_VM2=%{IP_VM2} IP_VM3=%{IP_VM3} IP_VM4=%{IP_VM4} IP_JUJU=%{IP_JUJU} NETWORK=%{VIM_MGMT_NET}
Log To Console \n${stdout}
Create Controller VNF Descriptor
- [Tags] newK8sCluster regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg1}'
Create Machines VNF Descriptor
- [Tags] newK8sCluster regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg2}'
Create K8s Cluster NS Descriptor
- [Tags] newK8sCluster regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate K8s Cluster Network Service
- [Tags] newK8sCluster regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ns_config=${EMPTY} publickey=${publickey} ns_launch_max_wait_time=70min config_file=%{ROBOT_DEVOPS_FOLDER}/resources/${config_file}
Set Suite Variable ${ns_id} ${id}
Get Management Ip Addresses
- [Tags] newK8sCluster regression
${ip_addr_1} Get Vnf Management Ip Address ${ns_id} ${vnf_member_index_1}
log ${ip_addr_1}
Set Suite Variable ${vnf_5_ip_addr} ${ip_addr_5}
Test SSH Access
- [Tags] newK8sCluster regression
Variable Should Exist ${vnf_1_ip_addr} msg=IP address of the management VNF '${vnf_member_index_1}' is not available
Variable Should Exist ${vnf_2_ip_addr} msg=IP address of the management VNF '${vnf_member_index_2}' is not available
Test SSH Connection ${vnf_5_ip_addr} ${username} ${password} ${privatekey}
Check kubeconfig file
- [Tags] newK8sCluster regression
Check If remote File Exists ${vnf_5_ip_addr} ${username} ${password} ${privatekey} ${kubeconfig_file}
Delete NS Instance
- [Tags] newK8sCluster regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] newK8sCluster regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete Controller VNF Descriptor
- [Tags] newK8sCluster regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name1}
Delete Machines VNF Descriptor
- [Tags] newK8sCluster regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name2}
# limitations under the License.
*** Settings ***
+Documentation [K8s-02] K8s cluster addition.
+
Library OperatingSystem
Library String
Library Collections
Variables %{ROBOT_DEVOPS_FOLDER}/resources/k8s_02-k8scluster_creation_data.py
+Force Tags k8s_02 cluster_k8s daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
+
*** Test Cases ***
Add K8s Cluster To OSM
- [Tags] k8scluster sanity regression
Create K8s Cluster %{K8S_CREDENTIALS} ${k8scluster_version} %{VIM_TARGET} %{VIM_MGMT_NET} ${k8scluster_name}
Remove K8s Cluster from OSM
- [Tags] k8scluster sanity regression
+ [Tags] cleanup
Delete K8s Cluster ${k8scluster_name}
*** Keywords ***
# limitations under the License.
*** Settings ***
+Documentation [K8s-03] Simple K8s.
+
Library OperatingSystem
Library String
Library Collections
Variables %{ROBOT_DEVOPS_FOLDER}/resources/k8s_03-simple_k8s_data.py
+Force Tags k8s_03 cluster_k8s daily regression sanity
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Simple K8s VNF Descriptor
- [Tags] simple_k8s charm sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create Simple K8s Descriptor
- [Tags] simple_k8s charm sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Add K8s Cluster To OSM
- [Tags] simple_k8s charm sanity regression
Create K8s Cluster %{K8S_CREDENTIALS} ${k8scluster_version} %{VIM_TARGET} %{VIM_MGMT_NET} ${k8scluster_name}
Network Service K8s Instance Test
- [Tags] simple_k8s charm sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey}
Set Suite Variable ${ns_id} ${id}
Execute Day 2 Operations
[Documentation] Performs one Day 2 operation per VNF that creates a new file.
- [Tags] simple_k8s charm sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${ns_op_id}= Execute NS K8s Action ${ns_name} ${action_name} ${vnf_member_index} ${kdu_name} application-name=${application_name} customtitle=${customtitle}
Delete NS K8s Instance Test
- [Tags] simple_k8s charm sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Remove K8s Cluster from OSM
- [Tags] simple_k8s charm sanity regression
+ [Tags] cleanup
Delete K8s Cluster ${k8scluster_name}
Delete NS Descriptor Test
- [Tags] simple_k8s charm sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor Test
- [Tags] simple_k8s charm sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Delete VNF NS Packages
- [Tags] simple_k8s charm sanity regression cleanup
+ [Tags] cleanup
Delete Package '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Delete Package '%{PACKAGES_FOLDER}/${nsd_pkg}'
# limitations under the License.
*** Settings ***
+Documentation [K8s-04] Openldap Helm chart.
+
Library OperatingSystem
Library String
Library Collections
Variables %{ROBOT_DEVOPS_FOLDER}/resources/k8s_04-openldap_helm_data.py
+Force Tags k8s_04 cluster_k8s daily regression sanity
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Package For OpenLDAP CNF
- [Tags] openldap sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create Package For OpenLDAP NS
- [Tags] openldap sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Add K8s Cluster To OSM
- [Tags] openldap sanity regression
Create K8s Cluster %{K8S_CREDENTIALS} ${k8scluster_version} %{VIM_TARGET} %{VIM_MGMT_NET} ${k8scluster_name}
Create Network Service Instance
- [Tags] openldap sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey}
Set Suite Variable ${ns_id} ${id}
Get Vnf Id
- [Tags] openldap sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
@{vnfr_list}= Get Ns Vnfr Ids ${ns_id}
Log List ${vnfr_list}
Set Suite Variable ${vnf_id} ${vnfr_list}[0]
Execute Upgrade Operation
- [Tags] openldap sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${ns_op_id}= Execute NS K8s Action ${ns_name} ${upgrade_action} ${vnf_member_index} ${kdu_name} replicaCount=${replica_count}
Check Replicas After Upgrade Operation
- [Tags] openldap sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${count}= Get Vnf Kdu Replica Count ${vnf_id} ${kdu_name}
log ${count}
Should Be Equal As Integers ${count} ${replica_count}
Execute Rollback Operation
- [Tags] openldap sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${ns_op_id}= Execute NS K8s Action ${ns_name} ${rollback_action} ${vnf_member_index} ${kdu_name}
Check Replicas After Rollback Operation
- [Tags] openldap sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${count}= Get Vnf Kdu Replica Count ${vnf_id} ${kdu_name}
log ${count}
Should Be Empty ${count}
Delete Network Service Instance
- [Tags] openldap sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Remove K8s Cluster from OSM
- [Tags] openldap sanity regression
+ [Tags] cleanup
Delete K8s Cluster ${k8scluster_name}
Delete NS Descriptor Test
- [Tags] openldap sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor Test
- [Tags] openldap sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/k8s_05-k8s_proxy_charms.py
+Force Tags k8s_05 cluster_ee_config cluster_k8s_charms daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Charm VNF Descriptor
- [Tags] k8s_proxy_charm charm sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create Charm NS Descriptor
- [Tags] k8s_proxy_charm charm sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Charm Network Service
- [Tags] k8s_proxy_charm charm sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey} ${ns_timeout}
Set Suite Variable ${ns_id} ${id}
Get Management Ip Addresses
- [Tags] k8s_proxy_charm charm sanity regression
${ip_addr_1} Get Vnf Management Ip Address ${ns_id} ${vnf_member_index_1}
log ${ip_addr_1}
Test SSH Access
- [Tags] k8s_proxy_charm charm sanity regression
Variable Should Exist ${vnf_1_ip_addr} msg=IP address of the management VNF '${vnf_member_index_1}' is not available
Variable Should Exist ${vnf_2_ip_addr} msg=IP address of the management VNF '${vnf_member_index_2}' is not available
Check Remote Files Created Via Day 1 Operations
[Documentation] The Charm VNF has a Day 1 operation that creates a file named ${day_1_file_name}.
... This test checks whether that files have been created or not.
- [Tags] k8s_proxy_charm charm sanity regression
Check If remote File Exists ${vnf_1_ip_addr} ${username} ${password} ${privatekey} ${day_1_file_name}
Check If remote File Exists ${vnf_2_ip_addr} ${username} ${password} ${privatekey} ${day_1_file_name}
Execute Day 2 Operations
[Documentation] Performs one Day 2 operation per VNF that creates a new file.
- [Tags] k8s_proxy_charm charm sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${ns_op_id_1}= Execute NS Action ${ns_name} ${action_name} ${vnf_member_index_1} filename=${day_2_file_name_1}
Check Remote Files Created Via Day 2 Operations
[Documentation] Check whether the files created in the previous test via Day 2 operations exist or not.
- [Tags] k8s_proxy_charm charm sanity regression
Check If remote File Exists ${vnf_1_ip_addr} ${username} ${password} ${privatekey} ${day_2_file_name_1}
Check If remote File Exists ${vnf_2_ip_addr} ${username} ${password} ${privatekey} ${day_2_file_name_2}
Delete NS Instance
- [Tags] k8s_proxy_charm charm sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] k8s_proxy_charm charm sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] k8s_proxy_charm charm sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/k8s_06-k8s_secure_key_management_data.py
+Force Tags k8s_06 cluster_ee_config cluster_k8s_charms daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Charm VNF Descriptor
- [Tags] nopasswd_k8s_proxy_charm charm sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create Charm NS Descriptor
- [Tags] nopasswd_k8s_proxy_charm charm sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Charm Network Service
- [Tags] nopasswd_k8s_proxy_charm charm sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey} ${ns_timeout}
Set Suite Variable ${ns_id} ${id}
Get Management Ip Addresses
- [Tags] nopasswd_k8s_proxy_charm charm sanity regression
${ip_addr_1} Get Vnf Management Ip Address ${ns_id} ${vnf_member_index_1}
log ${ip_addr_1}
Test SSH Access
- [Tags] nopasswd_k8s_proxy_charm charm sanity regression
Variable Should Exist ${vnf_1_ip_addr} msg=IP address of the management VNF '${vnf_member_index_1}' is not available
Variable Should Exist ${vnf_2_ip_addr} msg=IP address of the management VNF '${vnf_member_index_2}' is not available
Check Remote Files Created Via Day 1 Operations
[Documentation] The Charm VNF has a Day 1 operation that creates a file named ${day_1_file_name}.
... This test checks whether that files have been created or not.
- [Tags] nopasswd_k8s_proxy_charm charm sanity regression
Check If remote File Exists ${vnf_1_ip_addr} ${username} ${password} ${privatekey} ${day_1_file_name}
Check If remote File Exists ${vnf_2_ip_addr} ${username} ${password} ${privatekey} ${day_1_file_name}
Execute Day 2 Operations
[Documentation] Performs one Day 2 operation per VNF that creates a new file.
- [Tags] nopasswd_k8s_proxy_charm charm sanity regression
Variable Should Exist ${ns_id} msg=Network service instance is not available
${ns_op_id_1}= Execute NS Action ${ns_name} ${action_name} ${vnf_member_index_1} filename=${day_2_file_name_1}
Check Remote Files Created Via Day 2 Operations
[Documentation] Check whether the files created in the previous test via Day 2 operations exist or not.
- [Tags] nopasswd_k8s_proxy_charm charm sanity regression
Check If remote File Exists ${vnf_1_ip_addr} ${username} ${password} ${privatekey} ${day_2_file_name_1}
Check If remote File Exists ${vnf_2_ip_addr} ${username} ${password} ${privatekey} ${day_2_file_name_2}
Delete NS Instance
- [Tags] nopasswd_k8s_proxy_charm charm sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] nopasswd_k8s_proxy_charm charm sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] nopasswd_k8s_proxy_charm charm sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
# limitations under the License.\r
\r
*** Settings ***\r
+Documentation [K8s-07] Openldap Helm in isolated cluster with dummy VIM.\r
+\r
Library OperatingSystem\r
Library String\r
Library Collections\r
\r
Variables %{ROBOT_DEVOPS_FOLDER}/resources/k8s_07-dummy_helm_data.py\r
\r
+Force Tags k8s_07 cluster_k8s daily regression\r
+\r
Suite Teardown Run Keyword And Ignore Error Suite Cleanup\r
\r
\r
\r
*** Test Cases ***\r
Create Package For OpenLDAP CNF\r
- [Tags] dummy_vim sanity regression\r
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'\r
\r
Create Package For OpenLDAP NS\r
- [Tags] dummy_vim sanity regression\r
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'\r
\r
Create Dummy VIM\r
- [Tags] dummy_vim sanity regression\r
${created_vim_account_id}= Create VIM Target ${vim_name} ${vim_user} ${vim_password} ${vim_auth_url} ${vim_tenant} ${vim_account_type}\r
\r
Add K8s Cluster To OSM\r
- [Tags] dummy_vim sanity regression\r
Create K8s Cluster %{K8S_CREDENTIALS} ${k8scluster_version} ${vim_name} ${k8scluster_net} ${k8scluster_name}\r
\r
Create Network Service Instance\r
- [Tags] dummy_vim sanity regression\r
${id}= Create Network Service ${nsd_name} ${vim_name} ${ns_name} ${ns_config} ${publickey}\r
Set Suite Variable ${ns_id} ${id}\r
\r
Delete Network Service Instance\r
- [Tags] dummy_vim sanity regression cleanup\r
+ [Tags] cleanup\r
Delete NS ${ns_name}\r
\r
Remove K8s Cluster from OSM\r
- [Tags] dummy_vim sanity regression\r
+ [Tags] cleanup\r
Delete K8s Cluster ${k8scluster_name}\r
\r
Delete VIM\r
- [Tags] dummy_vim sanity regression cleanup\r
+ [Tags] cleanup\r
Delete VIM Target ${vim_name}\r
\r
Delete NS Descriptor Test\r
- [Tags] dummy_vim sanity regression cleanup\r
+ [Tags] cleanup\r
Delete NSD ${nsd_name}\r
\r
Delete VNF Descriptor Test\r
- [Tags] dummy_vim sanity regression cleanup\r
+ [Tags] cleanup\r
Delete VNFD ${vnfd_name}\r
\r
\r
Variables %{ROBOT_DEVOPS_FOLDER}/resources/quotas_01-quota_enforcement_data.py
+Force Tags quotas_01 cluster_main daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create First Project With Quotas
- [Tags] quota_enforcement sanity regression
Create Project With Quotas ${project_1_name} ${project_1_quotas}
${project_1_vnfds}= Get Project Quotas ${project_1_name} vnfds
Create Second Project With Quotas
- [Tags] quota_enforcement sanity regression
Create Project With Quotas ${project_2_name} ${project_2_quotas}
${project_2_vnfds}= Get Project Quotas ${project_2_name} vnfds
Should Be Equal As Integers 1 ${project_2_ns_instances}
Create User In Projects
- [Tags] quota_enforcement sanity regression
${rc} ${stdout}= Run And Return RC And Output osm user-create ${user_name} --password ${user_password} --project-role-mappings ${project_1_name},project_admin --project-role-mappings ${project_2_name},project_admin
Should Be Equal As Integers ${rc} ${success_return_code}
Change First Project Name to Third Project Name
- [Tags] quota_enforcement sanity regression
Update Project Name ${project_1_name} ${project_3_name}
${project_3_vnfds}= Get Project Quotas ${project_3_name} vnfds
Create VNFDs On Third Project Until Exceed Quota
- [Tags] quota_enforcement sanity regression
Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v1;product-name=v1'
Run Keyword And Expect Error * Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v2;product-name=v2'
Increase Third Project Quotas
- [Tags] quota_enforcement sanity regression
Update Project Quotas ${project_3_name} ${project_3_quotas}
${project_3_vnfds}= Get Project Quotas ${project_3_name} vnfds
Create More VNFDs On Third Project Until Exceed Quota
- [Tags] quota_enforcement sanity regression
Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v2;product-name=v2'
Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v3;product-name=v3'
Create VNFDs On Second Project Until Exceed Quota
- [Tags] quota_enforcement sanity regression
Create VNFD In Project ${project_2_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=vp2_1;product-name=vp2_1'
Run Keyword And Expect Error * Create VNFD In Project ${project_2_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=vp2_2;product-name=vp2_2'
Check Project Scopes
- [Tags] quota_enforcement sanity regression
${rc} ${stdout}= Run And Return RC And Output osm --project ${project_3_name} --password ${user_password} --user ${user_name} vnfpkg-show vp2_1
Log ${stdout}
Delete Second Project VNFD
- [Tags] quota_enforcement sanity regression cleanup
+ [Tags] cleanup
Delete VNFD In Project ${project_2_name} vp2_1 ${user_name} ${user_password}
Delete Third Project VNFDs
- [Tags] quota_enforcement sanity regression cleanup
+ [Tags] cleanup
Delete VNFD In Project ${project_3_name} v1 ${user_name} ${user_password}
Delete VNFD In Project ${project_3_name} v2 ${user_name} ${user_password}
Delete Second Project After Removing User From It
- [Tags] quota_enforcement sanity regression cleanup
+ [Tags] cleanup
Run Keyword And Expect Error * Delete Project ${project_2_name}
Remove User From Project ${user_name} ${project_2_name}
Delete Projects User
- [Tags] quota_enforcement sanity regression cleanup
+ [Tags] cleanup
${rc}= Run And Return RC osm user-delete ${user_name}
Delete Third Project
- [Tags] quota_enforcement sanity regression cleanup
+ [Tags] cleanup
Delete Project ${project_3_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/sa_01-vnf_with_vim_metrics_data.py
+Force Tags sa_01 cluster_sa daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create VNF Descriptor
- [Tags] vnf_vim_metrics sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create NS Descriptor
- [Tags] vnf_vim_metrics sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Network Service
- [Tags] vnf_vim_metrics sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey}
Set Suite Variable ${ns_id} ${id}
Get VNF VIM-based Metrics
- [Tags] vnf_vim_metrics sanity regression
Variable Should Exist ${prometheus_poll_retries} msg=Metric polling retries is not available
Variable Should Exist ${prometheus_poll_timeout} msg=Metric polling timeout is not available
Delete NS Instance
- [Tags] vnf_vim_metrics sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] vnf_vim_metrics sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] vnf_vim_metrics sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/sa_02-vnf_with_vim_metrics_and_autoscaling_data.py
+Force Tags sa_02 cluster_sa daily regression sanity
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create VNF Descriptor
- [Tags] vnf_vim_metrics_autoscaling sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create NS Descriptor
- [Tags] vnf_vim_metrics_autoscaling sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Network Service
- [Tags] vnf_vim_metrics_autoscaling sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey}
Set Suite Variable ${ns_id} ${id}
Get VNF Id
- [Tags] vnf_vim_metrics_autoscaling sanity regression
@{vnfr_list}= Get Ns Vnfr Ids ${ns_id}
Log List ${vnfr_list}
Get VNF IP Address
- [Tags] vnf_vim_metrics_autoscaling sanity regression
${ip_addr}= Get Vnf Management Ip Address ${ns_id} ${vnf_member_index}
log ${ip_addr}
Get VNF VIM-based Metric Before Auto-scaling
- [Tags] vnf_vim_metrics_autoscaling sanity regression
Variable Should Exist ${prometheus_poll_retries} msg=Metric polling retries is not available
Variable Should Exist ${prometheus_poll_timeout} msg=Metric polling timeout is not available
Increase VIM-based Metric To Force Auto-scaling
- [Tags] vnf_vim_metrics_autoscaling sanity regression
Variable Should Exist ${privatekey} msg=SSH private key not available
Execute Remote Command Check Rc Return Output ${vnf_ip_addr} ${username} ${password} ${privatekey} for i in {1..9}; do yes > /dev/null & done
Wait VIM-based Metric To Exceed Threshold
- [Tags] vnf_vim_metrics_autoscaling sanity regression
Variable Should Exist ${prometheus_poll_retries} msg=Metric polling retries is not available
Variable Should Exist ${prometheus_poll_timeout} msg=Metric polling timeout is not available
Get VDUs After Auto-scaling
- [Tags] vnf_vim_metrics_autoscaling sanity regression
Sleep 2 minutes Wait for auto-scale to take place
@{vdur_list}= Get Vnf Vdur Names ${vnf_id}
Delete NS Instance
- [Tags] vnf_vim_metrics_autoscaling sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] vnf_vim_metrics_autoscaling sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] vnf_vim_metrics_autoscaling sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/sa_07-alarms_from_sa-related_vnfs_data.py
+Force Tags sa_07 cluster_sa daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create Webhook Service VNF Descriptor
- [Tags] alarms_sa_related_vnfs sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${ws_vnfd_pkg}'
Create Webhook Service NS Descriptor
- [Tags] alarms_sa_related_vnfs sanity regression
Create NSD '%{PACKAGES_FOLDER}/${ws_nsd_pkg}'
Instantiate Webhook Service Network Service
- [Tags] alarms_sa_related_vnfs sanity regression
${id}= Create Network Service ${ws_nsd_name} %{VIM_TARGET} ${ws_ns_name} ${ns_config} ${publickey}
Set Suite Variable ${ws_ns_id} ${id}
Get Webhook Service VNF IP Address
- [Tags] alarms_sa_related_vnfs sanity regression
${ip_addr}= Get Vnf Management Ip Address ${ws_ns_id} ${vnf_member_index}
log ${ip_addr}
Start Webhook Service
- [Tags] alarms_sa_related_vnfs sanity regression
Variable Should Exist ${privatekey} msg=SSH private key not available
Sleep 40 seconds Wait for SSH daemon to be up
Create VNF Descriptor
- [Tags] alarms_sa_related_vnfs sanity regression
${rc} ${stdout}= Run and Return RC and Output mkdir '%{PACKAGES_FOLDER}/${new_vnfd_pkg}' && WEBHOOK_URL="http://${ws_vnf_ip_addr}:${ws_port}" envsubst < '%{PACKAGES_FOLDER}/${vnfd_pkg}'/'${vnfd_file}' > '%{PACKAGES_FOLDER}/${new_vnfd_pkg}'/'${vnfd_file}'
log ${stdout}
Create NS Descriptor
- [Tags] alarms_sa_related_vnfs sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Network Service
- [Tags] alarms_sa_related_vnfs sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey}
Set Suite Variable ${ns_id} ${id}
Get Alarm Metric
- [Tags] alarms_sa_related_vnfs sanity regression
Variable Should Exist ${prometheus_poll_retries} msg=Metric polling retries is not available
Variable Should Exist ${prometheus_poll_timeout} msg=Metric polling timeout is not available
Check Alarms Were Received
- [Tags] alarms_sa_related_vnfs sanity regression
Wait Until Keyword Succeeds 6 times 40 seconds Execute Remote Command Check Rc Return Output ${ws_vnf_ip_addr} ${username} ${password} ${privatekey} cat '${ws_log_file}' | grep '${alarm_msg}' | grep '${ns_name}'
Delete NS Instance
- [Tags] alarms_sa_related_vnfs sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] alarms_sa_related_vnfs sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] alarms_sa_related_vnfs sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
Delete Webhook Service NS Instance
- [Tags] alarms_sa_related_vnfs sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ws_ns_name}
Delete Webhook Service NS Descriptor
- [Tags] alarms_sa_related_vnfs sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${ws_nsd_name}
Delete Webhook Service VNF Descriptor
- [Tags] alarms_sa_related_vnfs sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${ws_vnfd_name}
Variables %{ROBOT_DEVOPS_FOLDER}/resources/sa_08-vnf_with_vnf_indicators_snmp_data.py
+Force Tags sa_08 cluster_k8s daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Test Cases ***
Create VNF Descriptor
- [Tags] vnf_indicators_snmp sanity regression
Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
Create NS Descriptor
- [Tags] vnf_indicators_snmp sanity regression
Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
Instantiate Network Service
- [Tags] vnf_indicators_snmp sanity regression
${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${EMPTY}
Set Suite Variable ${ns_id} ${id}
Get VNF SNMP Metrics
- [Tags] vnf_indicators_snmp sanity regression
Variable Should Exist ${prometheus_host} msg=Prometheus address is not available
Variable Should Exist ${prometheus_port} msg=Prometheus port is not available
Delete NS Instance
- [Tags] vnf_indicators_snmp sanity regression cleanup
+ [Tags] cleanup
Delete NS ${ns_name}
Delete NS Descriptor
- [Tags] vnf_indicators_snmp sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd_name}
Delete VNF Descriptor
- [Tags] vnf_indicators_snmp sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd_name}
# limitations under the License.
*** Settings ***
+Documentation [SLICE-01] Network Slicing.
+
Library OperatingSystem
Library String
Library Collections
Variables %{ROBOT_DEVOPS_FOLDER}/resources/slice_01-network_slicing_data.py
+Force Tags slice_01 cluster_slices daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
Create Slice VNF Descriptors
[Documentation] Onboards all the VNFDs required for the test: vnfd1_pkg and vnfd2_pkg (in the variables file)
- [Tags] basic_network_slicing SLICING-01 sanity regression
-
Create VNFD '%{PACKAGES_FOLDER}/${vnfd1_pkg}'
Create VNFD '%{PACKAGES_FOLDER}/${vnfd2_pkg}'
Create Slice NS Descriptors
[Documentation] Onboards all the NSDs required for the test: nsd1_pkg and nsd2_pkg (in the variables file)
- [Tags] basic_network_slicing SLICING-01 sanity regression
-
Create NSD '%{PACKAGES_FOLDER}/${nsd1_pkg}'
Create NSD '%{PACKAGES_FOLDER}/${nsd2_pkg}'
Create Slice Template
[Documentation] Onboards the Network Slice Template: nst (in the variables file)
- [Tags] basic_network_slicing SLICING-01 sanity regression
-
Create NST '%{PACKAGES_FOLDER}/${nst}'
Network Slice Instance Test
[Documentation] Instantiates the NST recently onboarded and sets the instantiation id as a suite variable (nsi_id)
- [Tags] basic_network_slicing SLICING-01 sanity regression
-
${id}= Create Network Slice ${nst_name} %{VIM_TARGET} ${slice_name} ${nst_config} ${publickey}
Set Suite Variable ${nsi_id} ${id}
Get Middle Vnf Management Ip
[Documentation] Obtains the management IP of the slice middle VNF (name in the reources file) and sets the ip as a suite variable (mgmt_vnf_ip)
- [Tags] basic_network_slicing SLICING-01 sanity regression
-
${middle_ns_id}= Run and Return RC and Output osm ns-list | grep ${middle_ns_name} | awk '{print $4}' 2>&1
${vnf_ip} Get Vnf Management Ip Address ${middle_ns_id}[1] ${vnf_member_index}
Run Keyword If '${vnf_ip}' == '${EMPTY}' Fatal Error Variable \$\{ vnf_ip\} Empty
Get Slice Vnf Ip Addresses
[Documentation] Obtains the list of IPs addresses in the slice and sets the list as a suite variable (slice_vnfs_ips)
- [Tags] basic_network_slicing SLICING-01 sanity regression
-
# Get all the ns_id in the slice except the middle one to avoid self ping
@{slice_ns_list} Get Slice Ns List Except One ${slice_name} ${middle_ns_name}
log many @{slice_ns_list}
Test Middle Ns Ping
[Documentation] Pings the slice middle vnf (mgmt_vnf_ip)
- [Tags] basic_network_slicing SLICING-01 sanity regression
Sleep 60s Waiting for the network to be up
# Ping to the middle VNF
log ${mgmt_vnf_ip}
Test Middle Vnf SSH Access
[Documentation] SSH access to the slice middle vnf (mgmt_vnf_ip) with the credentials provided in the variables file
- [Tags] basic_network_slicing SLICING-01 sanity regression
Sleep 30s Waiting ssh daemon to be up
Test SSH Connection ${mgmt_vnf_ip} ${username} ${password} ${privatekey}
[Documentation] SSH access to the slice middle vnf (mgmt_vnf_ip) with the credentials provided in the variables file
... and pings all the IP addresses in the list (slice_vnfs_ips)
- [Tags] basic_network_slicing SLICING-01 sanity regression
-
Ping Many ${mgmt_vnf_ip} ${username} ${password} ${privatekey} @{slice_vnfs_ips}
Delete Slice Instance
[Documentation] Stops the slice instance (slice_name)
-
- [Tags] basic_network_slicing SLICING-01 sanity regression cleanup
+ [Tags] cleanup
Delete NSI ${slice_name}
Delete Slice Template
[Documentation] Deletes the NST (nst_name) from OSM
-
- [Tags] basic_network_slicing SLICING-01 sanity regression cleanup
+ [Tags] cleanup
Delete NST ${nst_name}
Delete NS Descriptors
[Documentation] Deletes all the NSDs created for the test: nsd1_name, nsd2_name
-
- [Tags] basic_network_slicing SLICING-01 sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd1_name}
Delete NSD ${nsd2_name}
Delete VNF Descriptors
[Documentation] Deletes all the VNFDs created for the test: vnfd1_name, vnfd2_name
-
- [Tags] basic_network_slicing SLICING-01 sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd1_name}
Delete VNFD ${vnfd2_name}
# limitations under the License.
*** Settings ***
+Documentation [SLICE-02] Shared Network Slicing.
+
Library OperatingSystem
Library String
Library Collections
Variables %{ROBOT_DEVOPS_FOLDER}/resources/slice_02-shared_network_slicing_data.py
+Force Tags slice_02 cluster_slices daily regression
+
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
Create Slice VNF Descriptors
[Documentation] Onboards all the VNFDs required for the test: vnfd1_pkg and vnfd2_pkg (in the variables file)
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
Create VNFD '%{PACKAGES_FOLDER}/${vnfd1_pkg}'
Create VNFD '%{PACKAGES_FOLDER}/${vnfd2_pkg}'
Create Slice NS Descriptors
[Documentation] Onboards all the NSDs required for the test: nsd1_pkg and nsd2_pkg (in the variables file)
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
Create NSD '%{PACKAGES_FOLDER}/${nsd1_pkg}'
Create NSD '%{PACKAGES_FOLDER}/${nsd2_pkg}'
Create Slice Templates
[Documentation] Onboards the Network Slice Templates: nst, nst2 (in the variables file)
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
Create NST '%{PACKAGES_FOLDER}/${nst}'
Create NST '%{PACKAGES_FOLDER}/${nst2}'
[Documentation] Instantiates the First NST recently onboarded (nst_name) and sets the instantiation id as a suite variable (nsi_id)
... The slice contains 3 NS (1 shared)
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
${id}= Create Network Slice ${nst_name} %{VIM_TARGET} ${slice_name} ${nst_config} ${publickey}
Set Suite Variable ${nsi_id} ${id}
[Documentation] Instantiates the Second NST recently onboarded (nst2_name) and sets the instantiation id as a suite variable (nsi2_id)
... The slice contains 2 NS (1 shared)
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
${id}= Create Network Slice ${nst2_name} %{VIM_TARGET} ${slice2_name} ${nst_config} ${publickey}
Set Suite Variable ${nsi2_id} ${id}
First Network Slice Ns Count
[Documentation] Counts the NS in both slice instances and shoul be equal to 4
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
${slice1_count}= Get Slice Ns Count ${slice_name}
${slice2_count}= Get Slice Ns Count ${slice2_name}
${together}= Evaluate ${slice1_count} + ${slice2_count}
Get Middle Vnf Management Ip
[Documentation] Obtains the management IP of the shared NS main (only) VNF and sets it as a suite variable (mgmt_vnf_ip)
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
${middle_ns_id}= Run and Return RC and Output osm ns-list | grep ${middle_ns_name} | awk '{print $4}' 2>&1
${vnf_ip} Get Vnf Management Ip Address ${middle_ns_id}[1] ${vnf_member_index}
Run Keyword If '${vnf_ip}' == '${EMPTY}' Fatal Error Variable \$\{ vnf_ip\} Empty
Get First Slice Vnf IPs
[Documentation] Obtains the list of IPs addresses in the first slice and sets the list as a suite variable (slice1_vnfs_ips)
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
# Get all the ns_id in the slice except the middle one
@{ip_list} Get Slice Vnf Ip Addresses ${slice_name}
Should Be True ${ip_list} is not None
Test Middle Ns Ping
[Documentation] Pings the slice middle vnf (mgmt_vnf_ip)
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
Sleep 60s Waiting for the network to be up
# Ping to the middle VNF
Test Connectivity ${mgmt_vnf_ip}
Test Middle Vnf SSH Access
[Documentation] SSH access to the slice middle vnf (mgmt_vnf_ip) with the credentials provided in the variables file
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
Sleep 30s Waiting ssh daemon to be up
Test SSH Connection ${mgmt_vnf_ip} ${username} ${password} ${privatekey}
[Documentation] SSH access to the slice middle vnf (mgmt_vnf_ip) with the credentials provided in the variables file
... and pings all the IP addresses in the list (slice1_vnfs_ips)
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
Ping Many ${mgmt_vnf_ip} ${username} ${password} ${privatekey} @{slice1_vnfs_ips}
Delete Slice One Instance
[Documentation] Stops the slice instance (slice_name)
- [Tags] shared_network_slicing SLICING-02 sanity regression cleanup
+ [Tags] cleanup
Delete NSI ${slice_name}
Second Network Slice Ns Count
[Documentation] Counts the NS in both slice instances and should be equal to 2
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
${slice1_count}= Get Slice Ns Count ${slice_name}
${slice2_count}= Get Slice Ns Count ${slice2_name}
${together}= Evaluate ${slice1_count} + ${slice2_count}
Get Second Slice Vnf IPs
[Documentation] Obtains the list of IPs addresses in the second slice and sets the list as a suite variable (slice2_vnfs_ips)
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
# Get all the ns_id in the slice
@{ip_list} Get Slice Vnf Ip Addresses ${slice2_name}
Should Be True ${ip_list} is not None
[Documentation] SSH access to the slice middle vnf (mgmt_vnf_ip) with the credentials provided in the variables file
... and pings all the IP addresses in the list (slice2_vnfs_ips)
- [Tags] shared_network_slicing SLICING-02 sanity regression
-
Ping Many ${mgmt_vnf_ip} ${username} ${password} ${privatekey} @{slice2_vnfs_ips}
Delete Slice Two Instance
[Documentation] Stops the slice instance (slice2_name)
- [Tags] shared_network_slicing SLICING-02 sanity regression cleanup
+ [Tags] cleanup
Delete NSI ${slice2_name}
Delete Slice One Template
[Documentation] Deletes the NST (nst_name) from OSM
- [Tags] shared_network_slicing SLICING-02 sanity regression cleanup
+ [Tags] cleanup
Delete NST ${nst_name}
Delete Slice Two Template
[Documentation] Deletes the NST (nst2_name) from OSM
- [Tags] shared_network_slicing SLICING-02 sanity regression cleanup
+ [Tags] cleanup
Delete NST ${nst2_name}
Delete NS Descriptors
[Documentation] Deletes all the NSDs created for the test: nsd1_name, nsd2_name
- [Tags] shared_network_slicing SLICING-02 sanity regression cleanup
+ [Tags] cleanup
Delete NSD ${nsd1_name}
Delete NSD ${nsd2_name}
Delete VNF Descriptors
[Documentation] Deletes all the VNFDs created for the test: vnfd1_name, vnfd2_name
- [Tags] shared_network_slicing SLICING-02 sanity regression cleanup
+ [Tags] cleanup
Delete VNFD ${vnfd1_name}
Delete VNFD ${vnfd2_name}