blob: 6a2ae7ae0d09284b22576ec7595fa7127fbfe1a5 [file] [log] [blame]
garciadeblas7a9e0312023-12-11 22:24:46 +01001*** Comments ***
rarikbbae1a72023-11-20 22:58:32 +05302# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License
13
garciadeblas7a9e0312023-12-11 22:24:46 +010014
rarikbbae1a72023-11-20 22:58:32 +053015*** Settings ***
garciadeblas7a9e0312023-12-11 22:24:46 +010016Documentation [Sol003-02] Sol003 Dual Stack IP in VNFM NB interface
rarikbbae1a72023-11-20 22:58:32 +053017
18Library OperatingSystem
19Library String
20Library Collections
21Library RequestsLibrary
22Library yaml
23Library JsonValidator
24Library JSONLibrary
25
garciadeblas7a9e0312023-12-11 22:24:46 +010026Resource ../lib/rest_lib.resource
27Resource ../lib/vnfd_lib.resource
28Resource ../lib/ns_lib.resource
29Resource ../lib/vnf_lib.resource
30Resource ../lib/vim_lib.resource
rarikbbae1a72023-11-20 22:58:32 +053031
garciadeblas7a9e0312023-12-11 22:24:46 +010032Test Tags sol003_02 cluster_osm_rest daily
rarikbbae1a72023-11-20 22:58:32 +053033
34Suite Teardown Run Keyword And Ignore Error Suite Cleanup
35
36
37*** Variables ***
38# SOL003 API URI paths
garciadeblas7a9e0312023-12-11 22:24:46 +010039${VNF_INSTANCE_URI} /osm/vnflcm/v1/vnf_instances
40${VNF_INSTANCE_LCM_OPS} /osm/vnflcm/v1/vnf_lcm_op_occs
rarikbbae1a72023-11-20 22:58:32 +053041
42# NS and VNF descriptor package folder and ids
garciadeblas7a9e0312023-12-11 22:24:46 +010043${VNFD_PKG} hackfest_basic_vnf
44${VNFD_NAME} hackfest_basic-vnf
rarikbbae1a72023-11-20 22:58:32 +053045
46
47*** Test Cases ***
rarikbbae1a72023-11-20 22:58:32 +053048Create VNFD Descriptor
49 [Documentation] Test case to create a VNF Identifier
garciadeblas7a9e0312023-12-11 22:24:46 +010050 ${VNFD_ID}= Create VNFD %{PACKAGES_FOLDER}/${VNFD_PKG}
51 Set Suite Variable ${VNFD_ID}
52 ${CREATED_VIM_ACCOUNT_ID}= Get VIM Target ID %{VIM_TARGET}
53 Set Suite Variable ${CREATED_VIM_ACCOUNT_ID}
rarikbbae1a72023-11-20 22:58:32 +053054 Get Auth Token
55 ${json_path}= Read Directory
56 ${json_obj}= Load JSON From File ${json_path}/sol003_DualStackip.json
57 ${json_obj}= Get Variable Value ${json_obj['data'][0]}
garciadeblas7a9e0312023-12-11 22:24:46 +010058 ${NS_NAME}= Get Variable Value ${json_obj['vnfInstanceName']}
59 Set Suite Variable ${NS_NAME}
60 ${VALUE1}= Get Variable Value ${json_obj['additionalParams']['ip-address']}
61 Set Suite Variable ${VALUE1}
62 ${UPDATED_JSON_OBJ}= JSONLibrary.Update Value To Json ${json_obj} $..vimAccountId ${CREATED_VIM_ACCOUNT_ID}
63 Log ${UPDATED_JSON_OBJ}
64 ${UPDATED_JSON_OBJ}= JSONLibrary.Update Value To Json ${UPDATED_JSON_OBJ} $..additionalParams.virtual-link-desc[0][id] %{VIM_MGMT_NET}
65 Log ${UPDATED_JSON_OBJ}
66 ${UPDATED_JSON_OBJ}= JSONLibrary.Update Value To Json ${UPDATED_JSON_OBJ} $..additionalParams.virtual-link-profile-id %{VIM_MGMT_NET}
67 Log ${UPDATED_JSON_OBJ}
68 Set Test Variable ${UPDATED_JSON_OBJ}
69 Post Api Request ${VNF_INSTANCE_URI} ${UPDATED_JSON_OBJ}
rarikbbae1a72023-11-20 22:58:32 +053070 Pass Execution If ${request_response.status_code} in ${success_status_code_list} Query VNF Instance completed
71 ${id}= Get Value From Json ${request_response.json()} $..id
garciadeblas7a9e0312023-12-11 22:24:46 +010072 Set Suite Variable ${CREATEID} ${id[0]}
rarikbbae1a72023-11-20 22:58:32 +053073 Get VNFDs List
74
75Instantiate VNF
76 [Documentation] Test case to Instantiate a VNF
77 Get Ns List
78 Get Vnf List
79 Get Auth Token
80 ${json_path}= Read Directory
81 ${json_obj}= Load JSON From File ${json_path}/sol003_DualStackip.json
82 ${json_obj}= Get Variable Value ${json_obj['data'][1]}
garciadeblas7a9e0312023-12-11 22:24:46 +010083 ${UPDATED_JSON_OBJ}= JSONLibrary.Update Value To Json ${json_obj} $..vimAccountId ${CREATED_VIM_ACCOUNT_ID}
84 ${UPDATED_JSON_OBJ}= JSONLibrary.Update Value To Json ${UPDATED_JSON_OBJ} $..vnfId ${CREATEID}
85 Set Test Variable ${UPDATED_JSON_OBJ}
86 Post Api Request ${VNF_INSTANCE_URI}/${CREATEID}/instantiate ${UPDATED_JSON_OBJ}
rarikbbae1a72023-11-20 22:58:32 +053087 Pass Execution If ${request_response.status_code} in ${success_status_code_list} Instantiate VNF Instance completed
88 ${id}= Get Value From Json ${request_response.json()} $..id
garciadeblas7a9e0312023-12-11 22:24:46 +010089 Set Suite Variable ${VNF_INSTANCE_ID} ${id[0]}
rarikbbae1a72023-11-20 22:58:32 +053090 Sleep 12s
91 Get Ns List
92 Get Vnf List
93
94Get Ns Id
garciadeblas7a9e0312023-12-11 22:24:46 +010095 [Documentation] Get the NS identifier
rarikbbae1a72023-11-20 22:58:32 +053096 ${id}= Get Ns Id ${ns_name}
garciadeblas7a9e0312023-12-11 22:24:46 +010097 Set Suite Variable ${NS_ID} ${id}
rarikbbae1a72023-11-20 22:58:32 +053098
99Get Dual Ip
garciadeblas7a9e0312023-12-11 22:24:46 +0100100 [Documentation] Get the IP address from the NS
101 ${id}= Get Dual Ip ${NS_ID}
102 Set Suite Variable ${DUAL_IP} ${id}
rarikbbae1a72023-11-20 22:58:32 +0530103
104Query VNF Instances
105 [Documentation] Test case to query VNF Instance
106 Get Auth Token
garciadeblas7a9e0312023-12-11 22:24:46 +0100107 Get Api Request ${VNF_INSTANCE_URI}
rarikbbae1a72023-11-20 22:58:32 +0530108 ${value}= Get ID nsState
109 Should Be Equal ${value} INSTANTIATED
110 Pass Execution If ${request_response.status_code} in ${success_status_code_list} Query VNF Instance completed
111 ${id}= Get Value From Json ${request_response.json()} $.._id
garciadeblas7a9e0312023-12-11 22:24:46 +0100112 Set Suite Variable ${QUERY_ID} ${id[0]}
rarikbbae1a72023-11-20 22:58:32 +0530113
114Query VNF Instance ID
115 [Documentation] Test case to query Vnf instance ID
116 Get Auth Token
garciadeblas7a9e0312023-12-11 22:24:46 +0100117 Get Api Request ${VNF_INSTANCE_URI}/${QUERY_ID}
rarikbbae1a72023-11-20 22:58:32 +0530118 ${value}= Get ID nsState
119 Should Be Equal ${value} INSTANTIATED
120 Should Be Equal As Strings ${RequestResponse.status_code} 200
121 ${id}= Get Value From Json ${request_response.json()} $.._id
garciadeblas7a9e0312023-12-11 22:24:46 +0100122 Log ${id[0]}
rarikbbae1a72023-11-20 22:58:32 +0530123
124Query VNF LCM Ops
125 [Documentation] Test case to Query VNF LCM operation
126 Get Auth Token
garciadeblas7a9e0312023-12-11 22:24:46 +0100127 Get Api Request ${VNF_INSTANCE_LCM_OPS}
128 ${id1}= Get Value From Json ${request_response.json()} $.._id
129 Set Suite Variable ${LCM_OP_ID} ${id1[0]}
130 FOR ${index} IN RANGE 0 15
131 Log ${index}
132 Get Api Request ${VNF_INSTANCE_LCM_OPS}
133 ${value}= Get ID operationState
134 ${status}= Run Keyword And Return Status Should Be Equal ${value} COMPLETED
135 IF ${status}
136 BREAK
137 ELSE
138 Sleep 10s
139 END
rarikbbae1a72023-11-20 22:58:32 +0530140 END
141
142Query VNF LCM Ops ID
143 [Documentation] Test case to Query VNF LCM operation id
144 Get Auth Token
garciadeblas7a9e0312023-12-11 22:24:46 +0100145 Get Api Request ${VNF_INSTANCE_LCM_OPS}/${LCM_OP_ID}
146 ${id1}= Get Value From Json ${request_response.json()} $.._id
147 Log ${id1[0]}
148 FOR ${index} IN RANGE 0 15
149 Log ${index}
150 Get Api Request ${VNF_INSTANCE_LCM_OPS}/${LCM_OP_ID}
rarikbbae1a72023-11-20 22:58:32 +0530151 ${value}= Get ID operationState
152 ${status}= Run Keyword And Return Status Should Be Equal ${value} COMPLETED
garciadeblas7a9e0312023-12-11 22:24:46 +0100153 IF ${status}
154 BREAK
155 ELSE
156 Sleep 10s
157 END
rarikbbae1a72023-11-20 22:58:32 +0530158 END
159
160Verify Dual Ip
garciadeblas7a9e0312023-12-11 22:24:46 +0100161 [Documentation] Test case to terminate the VNF
162 Should Be Equal ${DUAL_IP} ${VALUE1}
rarikbbae1a72023-11-20 22:58:32 +0530163
164Terminate VNF
165 [Documentation] Test case to terminate the VNF
166 Get Auth Token
167 ${json_path}= Read Directory
garciadeblas7a9e0312023-12-11 22:24:46 +0100168 ${UPDATED_JSON_OBJ}= Load JSON From File ${json_path}/sol003_DualStackip.json
169 ${UPDATED_JSON_OBJ}= Get Variable Value ${UPDATED_JSON_OBJ['data'][3]}
170 Set Suite Variable ${UPDATED_JSON_OBJ}
171 Post Api Request ${VNF_INSTANCE_URI}/${CREATEID}/terminate ${UPDATED_JSON_OBJ}
rarikbbae1a72023-11-20 22:58:32 +0530172 ${id}= Get Value From Json ${request_response.json()} $..id
garciadeblas7a9e0312023-12-11 22:24:46 +0100173 ${terminateid}= Set Variable ${id[0]}
174 Get Api Request ${VNF_INSTANCE_LCM_OPS}/${terminateid}
rarikbbae1a72023-11-20 22:58:32 +0530175 ${LcmopsTerminate}= Get Value From Json ${request_response.json()} $.._id
garciadeblas7a9e0312023-12-11 22:24:46 +0100176 Log ${LcmopsTerminate[0]}
177 FOR ${index} IN RANGE 0 15
178 Log ${index}
179 Get Api Request ${VNF_INSTANCE_LCM_OPS}/${terminateid}
rarikbbae1a72023-11-20 22:58:32 +0530180 ${value}= Get ID operationState
181 ${status}= Run Keyword And Return Status Should Be Equal ${value} COMPLETED
garciadeblas7a9e0312023-12-11 22:24:46 +0100182 IF ${status}
183 BREAK
184 ELSE
185 Sleep 10s
186 END
rarikbbae1a72023-11-20 22:58:32 +0530187 END
188 Pass Execution If ${request_response.status_code} in ${success_status_code_list} Terminate VNF instance completed
189
190Delete VNF
191 [Documentation] Test case to delete VNF
192 Get Auth Token
garciadeblas7a9e0312023-12-11 22:24:46 +0100193 Create Session APISession ${REST_API_HOST}
194 &{Headers}= Create Dictionary Content-Type=application/json Accept=application/json Authorization=Bearer ${AccessToken}
195 ${resp}= DELETE On Session APISession ${VNF_INSTANCE_URI}/${CREATEID} headers=${Headers}
rarikbbae1a72023-11-20 22:58:32 +0530196 Pass Execution If ${resp.status_code} in ${success_status_code_list} Delete VNF Instance completed
197
198Delete VNF Descriptor Test
199 [Documentation] Test case to delete the VNF descriptor test
200 [Tags] cleanup
garciadeblas7a9e0312023-12-11 22:24:46 +0100201 Delete VNFD ${VNFD_NAME}
rarikbbae1a72023-11-20 22:58:32 +0530202
203
204*** Keywords ***
205Suite Cleanup
206 [Documentation] Test Suit Cleanup: Deleting Descriptor
garciadeblas7a9e0312023-12-11 22:24:46 +0100207 Run Keyword If Any Tests Failed Delete VNFD ${VNFD_NAME}