blob: 6701096a8e65205d99598e815566f58a22f4832a [file] [log] [blame]
aguilardb19f27f2021-06-30 12:21:18 +02001# Licensed under the Apache License, Version 2.0 (the "License");
2# you may not use this file except in compliance with the License.
3# You may obtain a copy of the License at
4#
5# http://www.apache.org/licenses/LICENSE-2.0
6#
7# Unless required by applicable law or agreed to in writing, software
8# distributed under the License is distributed on an "AS IS" BASIS,
9# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10# See the License for the specific language governing permissions and
11# limitations under the License.
12
13*** Settings ***
garciadeblasf4ebaa82022-06-23 13:33:26 +020014Documentation [BASIC-19] NS with a single VNF and two VDU linked by a VLD with ip-profile.
aguilardb19f27f2021-06-30 12:21:18 +020015
16Library OperatingSystem
17Library String
18Library Collections
19Library SSHLibrary
20
21Resource %{ROBOT_DEVOPS_FOLDER}/lib/vnfd_lib.robot
22Resource %{ROBOT_DEVOPS_FOLDER}/lib/nsd_lib.robot
23Resource %{ROBOT_DEVOPS_FOLDER}/lib/ns_lib.robot
24Resource %{ROBOT_DEVOPS_FOLDER}/lib/ssh_lib.robot
25
26Force Tags basic_19 cluster_main daily regression
27
28Suite Teardown Run Keyword And Ignore Error Suite Cleanup
29
30
31*** Variables ***
32# NS and VNF descriptor package folder and ids
33${vnfd_pkg} ipprofile_2vm_vnf
34${vnfd_name} ipprofile_2vm-vnf
35${nsd_pkg} ipprofile_2vm_ns
36${nsd_name} ipprofile_2vm-ns
37
38# NS instance name and configuration
39${ns_name} basic_19
40${ns_config} {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] }
41
garciadeblas61bbf922022-06-25 18:12:53 +020042# SSH keys and username to be used
aguilardb19f27f2021-06-30 12:21:18 +020043${publickey} %{HOME}/.ssh/id_rsa.pub
44${username} ubuntu
45
46# VNFs data
aguilardf2578292022-03-29 15:26:43 +000047${vnf_member_index_1} vnf
aguilardb19f27f2021-06-30 12:21:18 +020048${internal_prefix} ^192.168.200.*
49
50${success_return_code} 0
51
52
53*** Test Cases ***
54Create VNF Descriptor
55
garciadeblasf4ebaa82022-06-23 13:33:26 +020056 Create VNFD '%{PACKAGES_FOLDER}/${vnfd_pkg}'
aguilardb19f27f2021-06-30 12:21:18 +020057
58
59Create NS Descriptor
60
garciadeblasf4ebaa82022-06-23 13:33:26 +020061 Create NSD '%{PACKAGES_FOLDER}/${nsd_pkg}'
aguilardb19f27f2021-06-30 12:21:18 +020062
63
64Instantiate Network Service
65
garciadeblasf4ebaa82022-06-23 13:33:26 +020066 ${id}= Create Network Service ${nsd_name} %{VIM_TARGET} ${ns_name} ${ns_config} ${publickey}
67 Set Suite Variable ${ns_id} ${id}
aguilardb19f27f2021-06-30 12:21:18 +020068
69
70Get Vnf Info
71
garciadeblasf4ebaa82022-06-23 13:33:26 +020072 Variable Should Exist ${ns_id} msg=Network service instance is not available
73 @{vnfr_list}= Get Ns Vnfr Ids ${ns_id}
aguilardb19f27f2021-06-30 12:21:18 +020074 Log List ${vnfr_list}
75 Set Suite Variable ${vnf_id} ${vnfr_list}[0]
garciadeblasf4ebaa82022-06-23 13:33:26 +020076 ${ip} Get Vnf Management Ip Address ${ns_id} ${vnf_member_index_1}
77 Set Suite Variable ${vnf_ipmgmt} ${ip}
garciadeblas321726f2022-12-21 11:43:06 +010078 Log ${vnf_ipmgmt}
aguilardb19f27f2021-06-30 12:21:18 +020079
80
81Check Vnf IPs
82
garciadeblas61bbf922022-06-25 18:12:53 +020083 Variable Should Exist ${vnf_id} msg=VNF is not available
garciadeblas9553b6f2023-06-19 12:00:49 +020084 ${rc} ${stdout}= Run and Return RC and Output osm vnf-show ${vnf_id} --literal | yq '.vdur[0].interfaces[] | select(."vnf-vld-id" == "internal")' | yq -r '."ip-address"'
garciadeblasf4ebaa82022-06-23 13:33:26 +020085 Should Be Equal As Integers ${rc} ${success_return_code} msg=${stdout} values=False
86 Should Match Regexp ${stdout} ${internal_prefix} msg=${stdout} doesn't match subnet's regexp ${internal_prefix}
garciadeblas9553b6f2023-06-19 12:00:49 +020087 ${rc} ${stdout}= Run and Return RC and Output osm vnf-show ${vnf_id} --literal | yq '.vdur[1].interfaces[] | select(."vnf-vld-id" == "internal")' | yq -r '."ip-address"'
garciadeblasf4ebaa82022-06-23 13:33:26 +020088 Should Be Equal As Integers ${rc} ${success_return_code} msg=${stdout} values=False
89 Should Match Regexp ${stdout} ${internal_prefix} msg=${stdout} doesn't match subnet's regexp ${internal_prefix}
garciadeblas61bbf922022-06-25 18:12:53 +020090
aguilardb19f27f2021-06-30 12:21:18 +020091
92Delete NS Instance
93 [Tags] cleanup
94
garciadeblasf4ebaa82022-06-23 13:33:26 +020095 Delete NS ${ns_name}
aguilardb19f27f2021-06-30 12:21:18 +020096
97
98Delete NS Descriptor
99 [Tags] cleanup
100
garciadeblasf4ebaa82022-06-23 13:33:26 +0200101 Delete NSD ${nsd_name}
aguilardb19f27f2021-06-30 12:21:18 +0200102
103
104Delete VNF Descriptor
105 [Tags] cleanup
106
garciadeblasf4ebaa82022-06-23 13:33:26 +0200107 Delete VNFD ${vnfd_name}
aguilardb19f27f2021-06-30 12:21:18 +0200108
109
110*** Keywords ***
111Suite Cleanup
garciadeblasf4ebaa82022-06-23 13:33:26 +0200112 [Documentation] Test Suite Cleanup: Deleting descriptors and NS instance
aguilardb19f27f2021-06-30 12:21:18 +0200113
garciadeblasf4ebaa82022-06-23 13:33:26 +0200114 Run Keyword If Any Tests Failed Delete NS ${ns_name}
115 Run Keyword If Any Tests Failed Delete NSD ${nsd_name}
116 Run Keyword If Any Tests Failed Delete VNFD ${vnfd_name}