X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Ftests.git;a=blobdiff_plain;f=robot-systest%2Flib%2Fnsi_lib.robot;fp=robot-systest%2Flib%2Fnsi_lib.robot;h=0000000000000000000000000000000000000000;hp=1b883960f1c928bd7f5c60602df00948e7fd9e5f;hb=5e001f506b744021d5ef25999c9da28cf56d8fbc;hpb=b0db4577db692b0d6c9210099c58c808cbc993c1 diff --git a/robot-systest/lib/nsi_lib.robot b/robot-systest/lib/nsi_lib.robot deleted file mode 100644 index 1b88396..0000000 --- a/robot-systest/lib/nsi_lib.robot +++ /dev/null @@ -1,212 +0,0 @@ -# Copyright 2020 Atos -# -# 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 Collections - - -*** Variables *** -${success_return_code} 0 -${slice_launch_pol_time} 30sec -${slice_delete_pol_time} 15sec -${vim_timeout_multiplier} %{OSM_VIM_MULTIPLIER_TIMEOUT=1.0} - - -*** Keywords *** - -Create Network Slice - [Documentation] Instantiates a NST and returns an instantiation id (nsi), verifying the slice is successfully instantiated - ... Parameters: - ... nst: Name of the slice template - ... vim_name: Name of the VIM entry already in OSM - ... slice_name: Name of the slice instance - ... slice_config: Extra parameters that might require the slice instantiation i.e. configuration attributes - ... publickey: SSH public key of the local machine - ... Execution example: - ... \${nsi}= Create Network Slice \${nst} \${vim_name} \${slice_name} \${slice_config} \${publickey} - - [Arguments] ${nst} ${vim_name} ${slice_name} ${slice_config} ${publickey} ${slice_launch_max_wait_time}=6min ${config_file}=${EMPTY} - - ${slice_launch_max_wait_time}= Convert Time ${slice_launch_max_wait_time} result_format=number - ${slice_launch_max_wait_time}= Evaluate ${slice_launch_max_wait_time} * ${vim_timeout_multiplier} - ${config_attr} Set Variable If '${slice_config}'!='${EMPTY}' --config '${slice_config}' \ - ${sshkeys_attr} Set Variable If '${publickey}'!='${EMPTY}' --ssh_keys ${publickey} \ - ${config_file_attr} Set Variable If '${config_file}'!='${EMPTY}' --config_file '${config_file}' \ - - ${nsi_id}= Instantiate Network Slice ${slice_name} ${nst} ${vim_name} ${config_attr} ${config_file_attr} ${sshkeys_attr} - Log ${nsi_id} - - WAIT UNTIL KEYWORD SUCCEEDS ${slice_launch_max_wait_time} ${slice_launch_pol_time} Check For Network Slice Instance To Configured ${slice_name} - Check For Network Slice Instance For Failure ${slice_name} - [Return] ${nsi_id} - - -Instantiate Network Slice - [Documentation] Instantiates a NST and returns an instantiation id (nsi) - ... Parameters: - ... slice_name: Name of the slice instance - ... nst: Name of the slice template - ... vim_name: Name of the VIM entry already in OSM - ... slice_extra_args: Extra parameters that might require the slice instantiation i.e. configuration attributes - ... Execution example: - ... \${nsi}= Instantiate Network Slice \${slice_name} \${nst} \${vim_name} \${config_attr} - - [Arguments] ${slice_name} ${nst} ${vim_name} ${slice_extra_args} ${sshkeys_attr} - - ${rc} ${stdout}= Run and Return RC and Output osm nsi-create --nsi_name ${slice_name} --nst_name ${nst} --vim_account ${vim_name} ${sshkeys_attr} ${slice_extra_args} - Log ${stdout} - Should Be Equal As Integers ${rc} ${success_return_code} - [Return] ${stdout} - - -Get Slice Ns List - [Documentation] Retrieves the list of NS in a slice - ... Parameters: - ... slice_name: Name of the slice instance - ... Execution example: - ... \@{slice_ns_list}= Get Slice Ns List \${slice_name} - - [Arguments] ${slice_name} - - Should Not Be Empty ${slice_name} - @{ns_list_string}= Run and Return RC and Output osm ns-list | grep ${slice_name} | awk '{print $4}' 2>&1 - # Returns a String of ns_id and needs to be converted into a list - @{ns_list} = Split String ${ns_list_string}[1] - Log List ${ns_list} - [Return] @{ns_list} - - -Get Slice Ns List Except One - [Documentation] Retrieves the list of NS in a slice removing one from the list. This is done to save time in the tests, avoiding one VNF to ping itself. - ... Parameters: - ... slice_name: Name of the slice instance - ... exception_ns: Name of the ns that will not appear in the final list - ... Execution example: - ... \@{slice_ns_list}= Get Slice Ns List Except One \${slice_name} \${exception_ns} - - [Arguments] ${slice_name} ${exception_ns} - - Should Not Be Empty ${slice_name} - Should Not Be Empty ${exception_ns} - - @{ns_list_string}= Run and Return RC and Output osm ns-list | grep ${slice_name} | awk '!/${exception_ns}/' | awk '{print $4}' 2>&1 - # Returns a String of ns_id and needs to be converted into a list - @{ns_list} = Split String ${ns_list_string}[1] - Log List ${ns_list} - [Return] @{ns_list} - - -Get Slice Ns Count - [Documentation] Returns the count of all the NS in a slice - ... Parameters: - ... slice_name: Name of the slice instance - ... Execution example: - ... \${slice_ns_count}= Get Slice Ns Count \${slice_name} - - [Arguments] ${slice_name} - - Should Not Be Empty ${slice_name} - ${rc} ${stdout}= Run and Return RC and Output osm ns-list | grep ${slice_name} | wc -l 2>&1 - Log ${stdout} - Should Be Equal As Integers ${rc} ${success_return_code} - [Return] ${stdout} - - -Get Slice Vnf Ip Addresses - [Documentation] Retrieves the list of IP addresses that belong to each of the VNFs in the slice - ... Parameters: - ... slice_name: Name of the slice instance - ... Execution example: - ... \@{slice_ip_address_list}= Get Slice Vnf Ip Addresses \${slice_name} - - [Arguments] ${slice_name} - - # Get all the ns_id in the slice - @{slice_ns_list} Get Slice Ns List ${slice_name} - Log Many @{slice_ns_list} - @{temp_list}= Create List - # For each ns_id in the list, get all the vnf_id and their IP addresses - FOR ${ns_id} IN @{slice_ns_list} - Log ${ns_id} - @{vnf_id_list} Get Ns Vnf List ${ns_id} - # For each vnf_id in the list, get all its IP addresses - @{ns_ip_list} Get Ns Ip List @{vnf_id_list} - @{temp_list}= Combine Lists ${temp_list} ${ns_ip_list} - END - Log List ${temp_list} - [Return] @{temp_list} - - -Check For Network Slice Instance To Configured - [Documentation] Verify the slice has been instantiated - ... Parameters: - ... slice_name: Name of the slice instance - ... Execution example: - ... Check For Network Slice Instance To Configured \${slice_name} - - [Arguments] ${slice_name} - - ${rc} ${stdout}= Run and Return RC and Output osm nsi-list --filter name="${slice_name}" - Log ${stdout} - Should Be Equal As Integers ${rc} ${success_return_code} - Should Contain Any ${stdout} READY BROKEN configured - - -Check For Network Slice Instance For Failure - [Documentation] Verify the slice instance is not in failure - ... Parameters: - ... slice_name: Name of the slice instance - ... Execution example: - ... Check For Network Slice Instance For Failure \${slice_name} - - [Arguments] ${slice_name} - - ${rc} ${stdout}= Run and Return RC and Output osm nsi-list --filter name="${slice_name}" - Log ${stdout} - Should Be Equal As Integers ${rc} ${success_return_code} - Should Not Contain ${stdout} failed - - -Delete NSI - [Documentation] Delete Network Slice Instance (NSI) - ... Parameters: - ... slice_name: Name of the slice instance - ... slice_delete_max_wait_time: Delete operation timeout - ... Execution example: - ... Delete NST \${slice_name} - - [Arguments] ${slice_name} ${slice_delete_max_wait_time}=4min - - ${rc} ${stdout}= Run and Return RC and Output osm nsi-delete ${slice_name} - Log ${stdout} - Should Be Equal As Integers ${rc} ${success_return_code} - - ${slice_delete_max_wait_time}= Convert Time ${slice_delete_max_wait_time} result_format=number - ${slice_delete_max_wait_time}= Evaluate ${slice_delete_max_wait_time} * ${vim_timeout_multiplier} - WAIT UNTIL KEYWORD SUCCEEDS ${slice_delete_max_wait_time} ${slice_delete_pol_time} Check For Network Slice Instance To Be Deleted ${slice_name} - - -Check For Network Slice Instance To Be Deleted - [Documentation] Verify the slice instance is not present - ... Parameters: - ... slice_name: Name of the slice instance - ... Execution example: - ... Check For Network Slice Instance \${slice_name} - - [Arguments] ${slice_name} - - ${rc} ${stdout}= Run and Return RC and Output osm nsi-list | awk '{print $2}' | grep ${slice_name} - Should Not Be Equal As Strings ${stdout} ${slice_name} - -