blob: e0eb0c2bd0fca215b9e6cfe677fe7900a889db70 [file] [log] [blame]
yadavmr58af6b12019-09-18 15:33:25 +05301# -*- coding: utf-8 -*-
2
3##
4# Copyright 2019 Tech Mahindra Limited
5#
6# All Rights Reserved.
7#
8# Licensed under the Apache License, Version 2.0 (the "License"); you may
9# not use this file except in compliance with the License. You may obtain
10# a copy of the License at
11#
12# http://www.apache.org/licenses/LICENSE-2.0
13#
14# Unless required by applicable law or agreed to in writing, software
15# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
17# License for the specific language governing permissions and limitations
18# under the License.
19##
20
21## Change log:
22# 1. Feature 7829: Jayant Madavi, Mrityunjay Yadav : MY00514913@techmahindra.com : 06-aug-2019 : Improvement to the code, robot framework initial seed code.
23##
24
25
26*** Variables ***
27${success_return_code} 0
28${ns_launch_max_wait_time} 5min
29${ns_launch_pol_time} 30sec
30${ns_delete_max_wait_time} 1min
31${ns_delete_pol_time} 15sec
yadavmr19a4fea2019-12-17 01:11:05 +053032${nsconfig}
yadavmr58af6b12019-09-18 15:33:25 +053033
yadavmr58af6b12019-09-18 15:33:25 +053034*** Keywords ***
35Get NS List
36 [Documentation] Get ns instance list
37
yadavmrf21d9da2019-11-05 11:42:57 +053038 ${rc} ${stdout}= Run and Return RC and Output osm ns-list
yadavmr58af6b12019-09-18 15:33:25 +053039 log ${stdout}
yadavmrf21d9da2019-11-05 11:42:57 +053040 Should Be Equal As Integers ${rc} ${success_return_code}
yadavmr58af6b12019-09-18 15:33:25 +053041
42
yadavmrf3ec8f42020-01-30 16:07:59 +053043Get NS Instance ID
44 [Arguments] ${ns_name}
45
46 ${rc} ${stdout}= Run and Return RC and Output osm ns-list --filter name="${ns_name}" | awk 'NR==4{print $4}'
47 log ${stdout}
48 [Return] ${stdout}
49
50
51Verify All JUJU Applications Status
52 [Arguments] ${ns} ${api_ip} ${api_port} ${username} ${password} ${api_cert_path}
53
54 ${juju_model}= Get NS Instance ID ${ns}
55
56 Import Library robot_juju.JujuLibrary ${api_ip} ${api_port} ${juju_model} ${username} ${password} ${api_cert_path}
57 Assert status of applications is ${status_active}
58
59
yadavmr58af6b12019-09-18 15:33:25 +053060Launch Network Services and Return
yadavmr19a4fea2019-12-17 01:11:05 +053061 [Arguments] ${vim_name} ${ns_config}=''
Ragavi D17621f92019-12-06 10:31:07 +000062 [Documentation] Get Configuration parameter to create Newtork service
yadavmrf21d9da2019-11-05 11:42:57 +053063
yadavmr19a4fea2019-12-17 01:11:05 +053064 Run Keyword If ${ns_config}=='' Get NS Config
65 ... ELSE Set NS Config ${ns_config}
66 Log To Console \n${nsconfig}
yadavmrf21d9da2019-11-05 11:42:57 +053067 Should Not Be Empty ${nsd_ids} There are no NS descriptors to launch the NS
yadavmr58af6b12019-09-18 15:33:25 +053068 :FOR ${nsd} IN @{nsd_ids}
69 \ ${ns_name}= GENERATE NAME
70 \ Append To List ${ns_ids} ${ns_name}
yadavmr19a4fea2019-12-17 01:11:05 +053071 \ Create Network Service ${nsd} ${vim_name} ${ns_name} ${nsconfig}
72
73
74Set NS Config
75 [Arguments] ${ns_config}
Ragavi D17621f92019-12-06 10:31:07 +000076 [Documentation] Set NS Configuration variable
77
yadavmr19a4fea2019-12-17 01:11:05 +053078 ${nsconfig}= Get Variable Value ${ns_config} ''
79 Set Test Variable ${nsconfig}
80
81
82Get NS Config
Ragavi D17621f92019-12-06 10:31:07 +000083 [Documentation] Get NS Configuration from Environment Variable
84
yadavmr19a4fea2019-12-17 01:11:05 +053085 ${nsconfig}= Get Environment Variable NS_CONFIG ''
86 Set Test Variable ${nsconfig}
yadavmr58af6b12019-09-18 15:33:25 +053087
yadavmrf21d9da2019-11-05 11:42:57 +053088
yadavmr58af6b12019-09-18 15:33:25 +053089Create Network Service
90 [Documentation] Create ns at osm
yadavmr19a4fea2019-12-17 01:11:05 +053091 [Arguments] ${nsd} ${vim_name} ${ns_name} ${ns_config}
yadavmr58af6b12019-09-18 15:33:25 +053092
yadavmrf21d9da2019-11-05 11:42:57 +053093 Run Keyword If ${ns_config}!='' Create Network Service With Config ${nsd} ${vim_name} ${ns_name} ${ns_config}
94 ... ELSE Create Network Service Without Config ${nsd} ${vim_name} ${ns_name}
95
yadavmr58af6b12019-09-18 15:33:25 +053096 WAIT UNTIL KEYWORD SUCCEEDS ${ns_launch_max_wait_time} ${ns_launch_pol_time} Check For NS Instance To Configured ${ns_name}
97 Check For NS Instance For Failure ${ns_name}
yadavmrf21d9da2019-11-05 11:42:57 +053098
yadavmr58af6b12019-09-18 15:33:25 +053099
100Create Network Service Without Config
101 [Documentation] Create ns at osm
102 [Arguments] ${nsd} ${vim_name} ${ns_name}
103
yadavmrf21d9da2019-11-05 11:42:57 +0530104 ${rc} ${stdout}= Run and Return RC and Output osm ns-create --ns_name ${ns_name} --nsd_name ${nsd} --vim_account ${vim_name}
yadavmr58af6b12019-09-18 15:33:25 +0530105 log ${stdout}
yadavmrf21d9da2019-11-05 11:42:57 +0530106 Should Be Equal As Integers ${rc} ${success_return_code}
yadavmr58af6b12019-09-18 15:33:25 +0530107
108
109Create Network Service With Config
110 [Documentation] Create ns at osm
111 [Arguments] ${nsd} ${vim_name} ${ns_name} ${ns_config}
112
yadavmrf21d9da2019-11-05 11:42:57 +0530113 ${rc} ${stdout}= Run and Return RC and Output osm ns-create --ns_name ${ns_name} --nsd_name ${nsd} --vim_account ${vim_name} --config ${ns_config}
yadavmr58af6b12019-09-18 15:33:25 +0530114 log ${stdout}
yadavmrf21d9da2019-11-05 11:42:57 +0530115 Should Be Equal As Integers ${rc} ${success_return_code}
yadavmr58af6b12019-09-18 15:33:25 +0530116
yadavmrf21d9da2019-11-05 11:42:57 +0530117
yadavmr58af6b12019-09-18 15:33:25 +0530118Delete NS
119 [Documentation] Delete ns
120 [Arguments] ${ns}
121
yadavmrf21d9da2019-11-05 11:42:57 +0530122 ${rc} ${stdout}= Run and Return RC and Output osm ns-delete ${ns}
yadavmr58af6b12019-09-18 15:33:25 +0530123 log ${stdout}
yadavmrf21d9da2019-11-05 11:42:57 +0530124 Should Be Equal As Integers ${rc} ${success_return_code}
yadavmr58af6b12019-09-18 15:33:25 +0530125
126 WAIT UNTIL KEYWORD SUCCEEDS ${ns_delete_max_wait_time} ${ns_delete_pol_time} Check For NS Instance To Be Delete ${ns}
127
128
129Check For NS Instance To Configured
130 [Arguments] ${ns_name}
131
yadavmrf21d9da2019-11-05 11:42:57 +0530132 ${rc} ${stdout}= Run and Return RC and Output osm ns-list --filter name="${ns_name}"
yadavmr58af6b12019-09-18 15:33:25 +0530133 log ${stdout}
yadavmrf21d9da2019-11-05 11:42:57 +0530134 Should Be Equal As Integers ${rc} ${success_return_code}
yadavmrd7b6ab02020-01-27 18:04:30 +0530135 Should Contain Any ${stdout} READY BROKEN
yadavmr58af6b12019-09-18 15:33:25 +0530136
137
138Check For NS Instance For Failure
139 [Arguments] ${ns_name}
140
yadavmrf21d9da2019-11-05 11:42:57 +0530141 ${rc} ${stdout}= Run and Return RC and Output osm ns-list --filter name="${ns_name}"
yadavmr58af6b12019-09-18 15:33:25 +0530142 log ${stdout}
yadavmrf21d9da2019-11-05 11:42:57 +0530143 Should Be Equal As Integers ${rc} ${success_return_code}
yadavmrd7b6ab02020-01-27 18:04:30 +0530144 Should Not Contain ${stdout} BROKEN
yadavmr58af6b12019-09-18 15:33:25 +0530145
146
147Check For NS Instance To Be Delete
148 [Arguments] ${ns}
149
yadavmrf21d9da2019-11-05 11:42:57 +0530150 ${rc} ${stdout}= Run and Return RC and Output osm ns-list
yadavmr58af6b12019-09-18 15:33:25 +0530151 log ${stdout}
yadavmrf21d9da2019-11-05 11:42:57 +0530152 Should Be Equal As Integers ${rc} ${success_return_code}
yadavmr58af6b12019-09-18 15:33:25 +0530153 Should Not Contain ${stdout} ${ns}
154
155
156Force Delete NS
157 [Documentation] Forcely Delete ns
158 [Arguments] ${ns}
159
yadavmrf21d9da2019-11-05 11:42:57 +0530160 ${rc} ${stdout}= Run and Return RC and Output osm ns-delete ${ns}
yadavmr58af6b12019-09-18 15:33:25 +0530161 log ${stdout}
yadavmrf21d9da2019-11-05 11:42:57 +0530162 Should Be Equal As Integers ${rc} ${success_return_code}
yadavmr58af6b12019-09-18 15:33:25 +0530163 WAIT UNTIL KEYWORD SUCCEEDS ${ns_delete_max_wait_time} ${ns_delete_pol_time} Check For NS Instance To Be Delete ${ns}
yadavmrf3ec8f42020-01-30 16:07:59 +0530164
165
166Perform VNF Scale-in Operation
167 [Arguments] ${ns} ${vnf_member} ${scaling_group}
168
169 ${rc} ${nsr}= Run and Return RC and Output osm ns-show ${ns} --literal
170 ${scaled_vnf}= Get Scaled Vnf ${nsr}
171 log to console Scaled VNF befor scale-in operation is ${scaled_vnf}
172 ${rc} ${stdout}= Run and Return RC and Output osm vnf-scale --scale-in --scaling-group ${scaling_group} ${ns} ${vnf_member}
173 Should Be Equal As Integers ${rc} ${success_return_code}
174 log ${stdout}
175 Sleep 1m Waiting for scale-in operation to complete
176 ${rc} ${nsr}= Run and Return RC and Output osm ns-show ${ns} --literal
177 ${scaled_vnf}= Get Scaled Vnf ${nsr}
178 log to console Scaled VNF after scale-in operation is ${scaled_vnf}
179
180
181Perform VNF Scale-out Operation
182 [Arguments] ${ns} ${vnf_member} ${scaling_group}
183
184 ${rc} ${nsr}= Run and Return RC and Output osm ns-show ${ns} --literal
185 ${scaled_vnf}= Get Scaled Vnf ${nsr}
186 log to console Scaled VNF befor scale-out operation is ${scaled_vnf}
187 ${rc} ${stdout}= Run and Return RC and Output osm vnf-scale --scale-out --scaling-group ${scaling_group} ${ns} ${vnf_member}
188 Should Be Equal As Integers ${rc} ${success_return_code}
189 log ${stdout}
190 Sleep 1m Waiting for scale-out operation to complete
191 ${rc} ${nsr}= Run and Return RC and Output osm ns-show ${ns} --literal
192 ${scaled_vnf}= Get Scaled Vnf ${nsr}
193 log to console Scaled VNF befor scale-out operation is ${scaled_vnf}