blob: 1edefbd02d7415626be070b24a58f6c923574139 [file] [log] [blame]
BjornMagnussonXAbb648282021-03-19 09:12:42 +01001#!/usr/bin/env bash
2
3# ============LICENSE_START===============================================
4# Copyright (C) 2020 Nordix Foundation. All rights reserved.
5# ========================================================================
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17# ============LICENSE_END=================================================
18#
19
20
21TC_ONELINE_DESCR="ONAP Use case REQ-626"
22#App names to include in the test when running docker, space separated list
23DOCKER_INCLUDED_IMAGES="CBS CONSUL CP CR MR DMAAPMR PA RICSIM SDNC NGW"
24
25#App names to include in the test when running kubernetes, space separated list
26KUBE_INCLUDED_IMAGES="CP CR MR PA RICSIM SDNC KUBEPROXY NGW"
27#Prestarted app (not started by script) to include in the test when running kubernetes, space separated list
28KUBE_PRESTARTED_IMAGES=""
29
30#Ignore image in DOCKER_INCLUDED_IMAGES, KUBE_INCLUDED_IMAGES if
31#the image is not configured in the supplied env_file
32#Used for images not applicable to all supported profile
33CONDITIONALLY_IGNORED_IMAGES="NGW"
34
35#Supported test environment profiles
BjornMagnussonXAe6b019f2021-04-27 15:34:09 +020036SUPPORTED_PROFILES="ONAP-HONOLULU ONAP-ISTANBUL"
BjornMagnussonXAbb648282021-03-19 09:12:42 +010037#Supported run modes
38SUPPORTED_RUNMODES="DOCKER KUBE"
39
40. ../common/testcase_common.sh $@
41. ../common/agent_api_functions.sh
42. ../common/ricsimulator_api_functions.sh
43. ../common/mr_api_functions.sh
44. ../common/control_panel_api_functions.sh
45. ../common/controller_api_functions.sh
46. ../common/cr_api_functions.sh
47. ../common/consul_cbs_functions.sh
48. ../common/kube_proxy_api_functions.sh
49. ../common/gateway_api_functions.sh
50
51setup_testenvironment
52
53#### TEST BEGIN ####
54
55#Local vars in test script
56##########################
57
58use_cr_https
59use_agent_rest_https
60use_sdnc_https
61use_simulator_https
62use_mr_https
63
64if [ "$PMS_VERSION" == "V2" ]; then
65 notificationurl=$CR_SERVICE_PATH"/test"
66else
67 echo "Version V2 of PMS is needed, exiting..."
68 exit 1
69fi
70
71generate_policy_uuid
72
73# Tested variants of REST/DMAAP/SDNC config
74TESTED_VARIANTS="REST DMAAP REST+SDNC DMAAP+SDNC"
75for interface in $TESTED_VARIANTS ; do
76
77 echo "#####################################################################"
78 echo "#####################################################################"
79 echo "### Testing agent: $interface using https"
80 echo "#####################################################################"
81 echo "#####################################################################"
82
83 clean_environment
84
85 if [ $RUNMODE == "KUBE" ]; then
86 start_kube_proxy
87 fi
88
89 if [[ $interface = *"DMAAP"* ]]; then
90 use_agent_dmaap_https
91 else
92 use_agent_rest_https
93 fi
94
95 OSC_NUM_RICS=1
96 STD_NUM_RICS=1
97
98 start_ric_simulators $RIC_SIM_PREFIX"_g1" $OSC_NUM_RICS OSC_2.1.0
99
100 start_ric_simulators $RIC_SIM_PREFIX"_g2" $STD_NUM_RICS STD_1.1.3
101
102 start_ric_simulators $RIC_SIM_PREFIX"_g3" $STD_NUM_RICS STD_2.0.0
103
104 start_mr
105
106 start_control_panel $SIM_GROUP/$CONTROL_PANEL_COMPOSE_DIR/$CONTROL_PANEL_CONFIG_FILE
107
108 if [ ! -z "$NRT_GATEWAY_APP_NAME" ]; then
109 start_gateway $SIM_GROUP/$NRT_GATEWAY_COMPOSE_DIR/$NRT_GATEWAY_CONFIG_FILE
110 fi
111
112 if [[ $interface = *"SDNC"* ]]; then
113 start_sdnc
114 prepare_consul_config SDNC ".consul_config.json"
115 else
116 prepare_consul_config NOSDNC ".consul_config.json"
117 fi
118
119 start_policy_agent NORPOXY $SIM_GROUP/$POLICY_AGENT_COMPOSE_DIR/$POLICY_AGENT_CONFIG_FILE
120
121 set_agent_trace
122
123 if [ $RUNMODE == "DOCKER" ]; then
124 start_consul_cbs
125 fi
126
127 if [ $RUNMODE == "KUBE" ]; then
128 agent_load_config ".consul_config.json"
129 else
130 consul_config_app ".consul_config.json"
131 fi
132
133 # Check that all rics are synced in
134 api_equal json:rics 3 300
135
136 api_get_status 200
137
138 # Print the A1 version for OSC
139 for ((i=1; i<=$OSC_NUM_RICS; i++))
140 do
141 sim_print $RIC_SIM_PREFIX"_g1_"$i interface
142 done
143
144
145 # Print the A1 version for STD 1.X
146 for ((i=1; i<=$STD_NUM_RICS; i++))
147 do
148 sim_print $RIC_SIM_PREFIX"_g2_"$i interface
149 done
150
151 # Print the A1 version for STD 2.X
152 for ((i=1; i<=$STD_NUM_RICS; i++))
153 do
154 sim_print $RIC_SIM_PREFIX"_g3_"$i interface
155 done
156
157 #################################################################
158 ## REQ: Synchronize A1 Policy Information in RAN
159 #################################################################
160
161 # Load the polictypes in osc
162 for ((i=1; i<=$OSC_NUM_RICS; i++))
163 do
164 sim_put_policy_type 201 $RIC_SIM_PREFIX"_g1_"$i 100 demo-testdata/OSC/sim_qos.json
165 sim_put_policy_type 201 $RIC_SIM_PREFIX"_g1_"$i 20008 demo-testdata/OSC/sim_tsa.json
166 done
167
168 #Check the number of schemas and the individual schemas in OSC
169 api_equal json:policy-types 3 300
170
171 for ((i=1; i<=$OSC_NUM_RICS; i++))
172 do
173 api_equal json:policy-types?ric_id=$RIC_SIM_PREFIX"_g1_"$i 2 120
174 done
175
176 # Check the schemas in OSC
177 for ((i=1; i<=$OSC_NUM_RICS; i++))
178 do
179 api_get_policy_type 200 100 demo-testdata/OSC/qos-agent-modified.json
180 api_get_policy_type 200 20008 demo-testdata/OSC/tsa-agent-modified.json
181 done
182
183
184 # Load the polictypes in std
185 for ((i=1; i<=$STD_NUM_RICS; i++))
186 do
187 sim_put_policy_type 201 $RIC_SIM_PREFIX"_g3_"$i STD_QOS_0_2_0 demo-testdata/STD2/sim_qos.json
188 sim_put_policy_type 201 $RIC_SIM_PREFIX"_g3_"$i STD_QOS2_0.1.0 demo-testdata/STD2/sim_qos2.json
189 done
190
191 #Check the number of schemas and the individual schemas in STD
192 api_equal json:policy-types 5 120
193
194 for ((i=1; i<=$STD_NUM_RICS; i++))
195 do
196 api_equal json:policy-types?ric_id=$RIC_SIM_PREFIX"_g3_"$i 2 120
197 done
198
199 # Check the schemas in STD
200 for ((i=1; i<=$STD_NUM_RICS; i++))
201 do
202 api_get_policy_type 200 STD_QOS_0_2_0 demo-testdata/STD2/qos-agent-modified.json
203 api_get_policy_type 200 'STD_QOS2_0.1.0' demo-testdata/STD2/qos2-agent-modified.json
204 done
205
206 #Check the number of types
207 api_equal json:policy-types 5 120
208
209 #################################################################
210 ## REQ: A1 Policy Type / Instance Operations
211 #################################################################
212
213 # Create policies
214 use_agent_rest_http
215
216 api_put_service 201 "Emergency-response-app" 0 "$CR_SERVICE_PATH/1"
217
218 # Create policies in OSC
219 for ((i=1; i<=$OSC_NUM_RICS; i++))
220 do
221 api_put_policy 201 "Emergency-response-app" $RIC_SIM_PREFIX"_g1_"$i 100 $((3000+$i)) NOTRANSIENT $notificationurl demo-testdata/OSC/piqos_template.json 1
222 api_put_policy 201 "Emergency-response-app" $RIC_SIM_PREFIX"_g1_"$i 20008 $((4000+$i)) NOTRANSIENT $notificationurl demo-testdata/OSC/pitsa_template.json 1
223 done
224
225
226 # Check the number of policies in OSC
227 for ((i=1; i<=$OSC_NUM_RICS; i++))
228 do
229 sim_equal $RIC_SIM_PREFIX"_g1_"$i num_instances 2
230 done
231
232
233 # Create policies in STD
234 for ((i=1; i<=$STD_NUM_RICS; i++))
235 do
236 api_put_policy 201 "Emergency-response-app" $RIC_SIM_PREFIX"_g2_"$i NOTYPE $((2100+$i)) NOTRANSIENT $notificationurl demo-testdata/STD/pi1_template.json 1
237 api_put_policy 201 "Emergency-response-app" $RIC_SIM_PREFIX"_g3_"$i STD_QOS_0_2_0 $((2300+$i)) NOTRANSIENT $notificationurl demo-testdata/STD2/pi1_template.json 1
238 api_put_policy 201 "Emergency-response-app" $RIC_SIM_PREFIX"_g3_"$i 'STD_QOS2_0.1.0' $((2400+$i)) NOTRANSIENT $notificationurl demo-testdata/STD2/pi1_template.json 1
239 done
240
241
242 # Check the number of policies in STD
243 for ((i=1; i<=$STD_NUM_RICS; i++))
244 do
245 sim_equal $RIC_SIM_PREFIX"_g2_"$i num_instances 1
246 sim_equal $RIC_SIM_PREFIX"_g3_"$i num_instances 2
247 done
248
249 #################################################################
250 ## REQ: A1 Policy Instance Status Operations
251 #################################################################
252
253 # Check status STD
254 for ((i=1; i<=$STD_NUM_RICS; i++))
255 do
256 api_get_policy_status 200 $((2100+$i)) STD "UNDEFINED"
257 api_get_policy_status 200 $((2300+$i)) STD2 EMPTY EMPTY
258 api_get_policy_status 200 $((2400+$i)) STD2 EMPTY EMPTY
259 done
260
261 # Check status OSC
262 VAL='NOT IN EFFECT'
263 for ((i=1; i<=$OSC_NUM_RICS; i++))
264 do
265 api_get_policy_status 200 $((3000+$i)) OSC "$VAL" "false"
266 api_get_policy_status 200 $((4000+$i)) OSC "$VAL" "false"
267 done
268
269 # Note: Status callback is not tested since this callback (http POST) is made from the
270 # ricsim directly to the receiver of the status, i.e. the status does NOT
271 # pass through PMS
272
273 check_policy_agent_logs
274
275 if [[ $interface = *"SDNC"* ]]; then
276 check_sdnc_logs
277 fi
278
279 #### TEST COMPLETE ####
280
281 store_logs "https__${interface}"
282
283done
284
285print_result
286
287auto_clean_environment