Functional Test Updates for I Release
[nonrtric.git] / test / auto-test / FTC350.sh
1 #!/bin/bash
2
3 #  ============LICENSE_START===============================================
4 #  Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
5 #  Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved.
6 #  ========================================================================
7 #  Licensed under the Apache License, Version 2.0 (the "License");
8 #  you may not use this file except in compliance with the License.
9 #  You may obtain a copy of the License at
10 #
11 #       http://www.apache.org/licenses/LICENSE-2.0
12 #
13 #  Unless required by applicable law or agreed to in writing, software
14 #  distributed under the License is distributed on an "AS IS" BASIS,
15 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 #  See the License for the specific language governing permissions and
17 #  limitations under the License.
18 #  ============LICENSE_END=================================================
19 #
20
21 TC_ONELINE_DESCR="Change supported policy types and reconfigure rics"
22
23 #App names to include in the test when running docker, space separated list
24 DOCKER_INCLUDED_IMAGES="CP CR MR A1PMS RICSIM SDNC KUBEPROXY"
25
26 #App names to include in the test when running kubernetes, space separated list
27 KUBE_INCLUDED_IMAGES="CP CR MR A1PMS RICSIM SDNC KUBEPROXY"
28 #Pre-started app (not started by script) to include in the test when running kubernetes, space separated list
29 KUBE_PRESTARTED_IMAGES=""
30
31 #Ignore image in DOCKER_INCLUDED_IMAGES, KUBE_INCLUDED_IMAGES if
32 #the image is not configured in the supplied env_file
33 #Used for images not applicable to all supported profile
34 CONDITIONALLY_IGNORED_IMAGES=""
35
36 #Supported test environment profiles
37 SUPPORTED_PROFILES="ONAP-KOHN ONAP-LONDON ONAP-MONTREAL  ORAN-G-RELEASE ORAN-H-RELEASE ORAN-I-RELEASE"
38 #Supported run modes
39 SUPPORTED_RUNMODES="DOCKER KUBE"
40
41 . ../common/testcase_common.sh $@
42
43 setup_testenvironment
44
45 #### TEST BEGIN ####
46
47 sim_generate_policy_uuid
48
49 use_cr_http
50
51 NUM_RICS=10
52 NUM_RICS_2=$(($NUM_RICS-2))
53
54 # Tested variants of REST/SDNC config
55 TESTED_VARIANTS="REST   REST+SDNC"
56
57 for interface in $TESTED_VARIANTS ; do
58
59     echo "#####################################################################"
60     echo "#####################################################################"
61     echo "### Testing a1pms: "$interface
62     echo "#####################################################################"
63     echo "#####################################################################"
64
65
66     # Clean container and start all needed containers #
67     clean_environment
68
69     start_kube_proxy
70
71     #Start simulators and prepare two configs
72
73     start_ric_simulators ricsim_g1 $NUM_RICS_2 OSC_2.1.0
74
75     start_cr 1
76
77     if [[ "$A1PMS_FEATURE_LEVEL" == *"NO-DMAAP"* ]]; then
78         :
79     else
80         start_mr
81     fi
82
83
84     # Create first config
85     if [[ $interface = *"SDNC"* ]]; then
86         start_sdnc
87         controller_api_wait_for_status_ok 200 ricsim_g1_1
88         prepare_a1pms_config      SDNC  ".a1pms_config_initial.json"
89     else
90         prepare_a1pms_config      NOSDNC  ".a1pms_config_initial.json"
91     fi
92
93     # Create 2nd config and save for later
94     start_ric_simulators ricsim_g1 $NUM_RICS OSC_2.1.0
95
96     if [[ $interface = *"SDNC"* ]]; then
97         prepare_a1pms_config      SDNC  ".a1pms_config_all.json"
98     else
99         prepare_a1pms_config      NOSDNC  ".a1pms_config_all.json"
100     fi
101
102     if [ $RUNMODE == "KUBE" ]; then
103         start_a1pms NORPOXY $SIM_GROUP/$A1PMS_COMPOSE_DIR/application2.yaml
104     else
105         start_a1pms NORPOXY $SIM_GROUP/$A1PMS_COMPOSE_DIR/$A1PMS_CONFIG_FILE
106     fi
107
108     set_a1pms_trace
109
110     sleep_wait 120 "Let A1PMS configuration take effect"
111
112     a1pms_api_get_status 200
113
114     # Create service to be able to receive events when rics becomes available
115     # Must use rest towards the a1pms since dmaap is not configured yet
116     a1pms_api_put_service 201 "ric-registration" 0 "$CR_SERVICE_APP_PATH_0/ric-registration"
117
118     #Load first config
119     a1pms_api_put_configuration 200              ".a1pms_config_initial.json"
120     a1pms_api_get_configuration 200              ".a1pms_config_initial.json"
121
122     for ((i=1; i<=${NUM_RICS}; i++))
123     do
124         sim_print ricsim_g1_$i interface
125     done
126
127     # All sims running but 2 are not configured in consul
128     a1pms_equal json:rics 8 300
129
130     cr_equal 0 received_callbacks?id=ric-registration 8 120
131     cr_api_check_all_sync_events 200 0 ric-registration ricsim_g1_1 ricsim_g1_2  ricsim_g1_3 ricsim_g1_4 ricsim_g1_5 ricsim_g1_6  ricsim_g1_7  ricsim_g1_8
132
133     a1pms_api_get_rics 200 NOTYPE "ricsim_g1_1:me1_ricsim_g1_1,me2_ricsim_g1_1:NOTYPE:???? \
134                              ricsim_g1_2:me1_ricsim_g1_2,me2_ricsim_g1_2:NOTYPE:???? \
135                              ricsim_g1_3:me1_ricsim_g1_3,me2_ricsim_g1_3:NOTYPE:???? \
136                              ricsim_g1_4:me1_ricsim_g1_4,me2_ricsim_g1_4:NOTYPE:???? \
137                              ricsim_g1_5:me1_ricsim_g1_5,me2_ricsim_g1_5:NOTYPE:???? \
138                              ricsim_g1_6:me1_ricsim_g1_6,me2_ricsim_g1_6:NOTYPE:???? \
139                              ricsim_g1_7:me1_ricsim_g1_7,me2_ricsim_g1_7:NOTYPE:???? \
140                              ricsim_g1_8:me1_ricsim_g1_8,me2_ricsim_g1_8:NOTYPE:???? "
141
142
143     sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
144     sim_put_policy_type 201 ricsim_g1_2 1 testdata/OSC/sim_1.json
145     sim_put_policy_type 201 ricsim_g1_3 1 testdata/OSC/sim_1.json
146     sim_put_policy_type 201 ricsim_g1_4 1 testdata/OSC/sim_1.json
147     sim_put_policy_type 201 ricsim_g1_5 1 testdata/OSC/sim_1.json
148
149     sim_put_policy_type 201 ricsim_g1_2 2 testdata/OSC/sim_2.json
150     sim_put_policy_type 201 ricsim_g1_3 2 testdata/OSC/sim_2.json
151     sim_put_policy_type 201 ricsim_g1_4 2 testdata/OSC/sim_2.json
152     sim_put_policy_type 201 ricsim_g1_5 2 testdata/OSC/sim_2.json
153     sim_put_policy_type 201 ricsim_g1_6 2 testdata/OSC/sim_2.json
154
155     sim_put_policy_type 201 ricsim_g1_3 3 testdata/OSC/sim_3.json
156     sim_put_policy_type 201 ricsim_g1_4 3 testdata/OSC/sim_3.json
157     sim_put_policy_type 201 ricsim_g1_5 3 testdata/OSC/sim_3.json
158     sim_put_policy_type 201 ricsim_g1_6 3 testdata/OSC/sim_3.json
159     sim_put_policy_type 201 ricsim_g1_7 3 testdata/OSC/sim_3.json
160
161     sim_put_policy_type 201 ricsim_g1_4 4 testdata/OSC/sim_4.json
162     sim_put_policy_type 201 ricsim_g1_5 4 testdata/OSC/sim_4.json
163     sim_put_policy_type 201 ricsim_g1_6 4 testdata/OSC/sim_4.json
164     sim_put_policy_type 201 ricsim_g1_7 4 testdata/OSC/sim_4.json
165     sim_put_policy_type 201 ricsim_g1_8 4 testdata/OSC/sim_4.json
166
167     sim_put_policy_type 201 ricsim_g1_5 5 testdata/OSC/sim_5.json
168     sim_put_policy_type 201 ricsim_g1_6 5 testdata/OSC/sim_5.json
169     sim_put_policy_type 201 ricsim_g1_7 5 testdata/OSC/sim_5.json
170     sim_put_policy_type 201 ricsim_g1_8 5 testdata/OSC/sim_5.json
171
172     a1pms_equal json:policy-types 5 120
173
174     echo "Check the number of types in the a1pms for each ric"
175     a1pms_equal json:policy-types?ric_id=ricsim_g1_1 1 120
176     a1pms_equal json:policy-types?ric_id=ricsim_g1_2 2 120
177     a1pms_equal json:policy-types?ric_id=ricsim_g1_3 3 120
178     a1pms_equal json:policy-types?ric_id=ricsim_g1_4 4 120
179     a1pms_equal json:policy-types?ric_id=ricsim_g1_5 5 120
180     a1pms_equal json:policy-types?ric_id=ricsim_g1_6 4 120
181     a1pms_equal json:policy-types?ric_id=ricsim_g1_7 3 120
182     a1pms_equal json:policy-types?ric_id=ricsim_g1_8 2 120
183
184     a1pms_api_get_rics 200 NOTYPE "ricsim_g1_1:me1_ricsim_g1_1,me2_ricsim_g1_1:1:???? \
185                              ricsim_g1_2:me1_ricsim_g1_2,me2_ricsim_g1_2:1,2:???? \
186                              ricsim_g1_3:me1_ricsim_g1_3,me2_ricsim_g1_3:1,2,3:???? \
187                              ricsim_g1_4:me1_ricsim_g1_4,me2_ricsim_g1_4:1,2,3,4:???? \
188                              ricsim_g1_5:me1_ricsim_g1_5,me2_ricsim_g1_5:1,2,3,4,5:???? \
189                              ricsim_g1_6:me1_ricsim_g1_6,me2_ricsim_g1_6:2,3,4,5:???? \
190                              ricsim_g1_7:me1_ricsim_g1_7,me2_ricsim_g1_7:3,4,5:???? \
191                              ricsim_g1_8:me1_ricsim_g1_8,me2_ricsim_g1_8:4,5:???? "
192
193     cr_equal 0 received_callbacks?id=ric-registration 16 120
194     cr_api_check_all_sync_events 200 0 ric-registration ricsim_g1_1 ricsim_g1_2  ricsim_g1_3 ricsim_g1_4 ricsim_g1_5 ricsim_g1_6  ricsim_g1_7  ricsim_g1_8
195
196     #Load config with all rics
197     a1pms_api_put_configuration 200               ".a1pms_config_all.json"
198     a1pms_api_get_configuration 200               ".a1pms_config_all.json"
199
200     a1pms_equal json:rics 10 120
201
202     cr_equal 0 received_callbacks?id=ric-registration 18 120
203     cr_api_check_all_sync_events 200 0 ric-registration ricsim_g1_9  ricsim_g1_10
204
205     sim_put_policy_type 201 ricsim_g1_9 5 testdata/OSC/sim_5.json
206
207     a1pms_equal json:policy-types 5 120
208
209     echo "Check the number of types in the a1pms for each ric"
210     a1pms_equal json:policy-types?ric_id=ricsim_g1_1 1 120
211     a1pms_equal json:policy-types?ric_id=ricsim_g1_2 2 120
212     a1pms_equal json:policy-types?ric_id=ricsim_g1_3 3 120
213     a1pms_equal json:policy-types?ric_id=ricsim_g1_4 4 120
214     a1pms_equal json:policy-types?ric_id=ricsim_g1_5 5 120
215     a1pms_equal json:policy-types?ric_id=ricsim_g1_6 4 120
216     a1pms_equal json:policy-types?ric_id=ricsim_g1_7 3 120
217     a1pms_equal json:policy-types?ric_id=ricsim_g1_8 2 120
218     a1pms_equal json:policy-types?ric_id=ricsim_g1_9 1 120
219     a1pms_equal json:policy-types?ric_id=ricsim_g1_10 0 120
220
221     a1pms_api_get_rics 200 NOTYPE "ricsim_g1_1:me1_ricsim_g1_1,me2_ricsim_g1_1:1:???? \
222                              ricsim_g1_2:me1_ricsim_g1_2,me2_ricsim_g1_2:1,2:???? \
223                              ricsim_g1_3:me1_ricsim_g1_3,me2_ricsim_g1_3:1,2,3:???? \
224                              ricsim_g1_4:me1_ricsim_g1_4,me2_ricsim_g1_4:1,2,3,4:???? \
225                              ricsim_g1_5:me1_ricsim_g1_5,me2_ricsim_g1_5:1,2,3,4,5:???? \
226                              ricsim_g1_6:me1_ricsim_g1_6,me2_ricsim_g1_6:2,3,4,5:???? \
227                              ricsim_g1_7:me1_ricsim_g1_7,me2_ricsim_g1_7:3,4,5:???? \
228                              ricsim_g1_8:me1_ricsim_g1_8,me2_ricsim_g1_8:4,5:???? \
229                              ricsim_g1_9:me1_ricsim_g1_9,me2_ricsim_g1_9:5:???? \
230                              ricsim_g1_10:me1_ricsim_g1_10,me2_ricsim_g1_10:NOTYPE:???? "
231
232     cr_equal 0 received_callbacks?id=ric-registration 19 120
233     cr_api_check_all_sync_events 200 0 ric-registration ricsim_g1_9
234
235     #No policy type in sim #10
236
237     a1pms_equal json:policy-types 5
238
239     a1pms_api_put_service 201 "serv1" 3600 "$CR_SERVICE_APP_PATH_0/serv1"
240
241     notificationurl=$CR_SERVICE_APP_PATH_0"/test"
242
243     sleep_wait 120
244
245     # Load config with reduced number of rics
246     a1pms_api_put_configuration 200              ".a1pms_config_initial.json"
247     a1pms_api_get_configuration 200              ".a1pms_config_initial.json"
248
249     a1pms_equal json:rics 8 120
250
251     cr_equal 0 received_callbacks?id=ric-registration 19 120
252     cr_api_check_all_sync_events 200 0 ric-registration EMPTY
253
254     a1pms_equal json:policy-types 5 120
255
256     echo "Check the number of types in the a1pms for each ric"
257     a1pms_equal json:policy-types?ric_id=ricsim_g1_1 1 120
258     a1pms_equal json:policy-types?ric_id=ricsim_g1_2 2 120
259     a1pms_equal json:policy-types?ric_id=ricsim_g1_3 3 120
260     a1pms_equal json:policy-types?ric_id=ricsim_g1_4 4 120
261     a1pms_equal json:policy-types?ric_id=ricsim_g1_5 5 120
262     a1pms_equal json:policy-types?ric_id=ricsim_g1_6 4 120
263     a1pms_equal json:policy-types?ric_id=ricsim_g1_7 3 120
264     a1pms_equal json:policy-types?ric_id=ricsim_g1_8 2 120
265
266     a1pms_api_get_rics 200 NOTYPE "ricsim_g1_1:me1_ricsim_g1_1,me2_ricsim_g1_1:1:???? \
267                              ricsim_g1_2:me1_ricsim_g1_2,me2_ricsim_g1_2:1,2:???? \
268                              ricsim_g1_3:me1_ricsim_g1_3,me2_ricsim_g1_3:1,2,3:???? \
269                              ricsim_g1_4:me1_ricsim_g1_4,me2_ricsim_g1_4:1,2,3,4:???? \
270                              ricsim_g1_5:me1_ricsim_g1_5,me2_ricsim_g1_5:1,2,3,4,5:???? \
271                              ricsim_g1_6:me1_ricsim_g1_6,me2_ricsim_g1_6:2,3,4,5:???? \
272                              ricsim_g1_7:me1_ricsim_g1_7,me2_ricsim_g1_7:3,4,5:???? \
273                              ricsim_g1_8:me1_ricsim_g1_8,me2_ricsim_g1_8:4,5:???? "
274
275     sleep_wait 120
276
277     a1pms_equal json:policy-instances 0
278
279     a1pms_api_get_policy_types 404 ricsim_g1_9
280
281     # Load config with all rics
282     a1pms_api_put_configuration 200              ".a1pms_config_all.json"
283     a1pms_api_get_configuration 200              ".a1pms_config_all.json"
284
285     a1pms_equal json:rics 10 120
286
287     a1pms_equal json:policy-types 5 120
288
289     echo "Check the number of types in the a1pms for each ric"
290     a1pms_equal json:policy-types?ric_id=ricsim_g1_1 1 120
291     a1pms_equal json:policy-types?ric_id=ricsim_g1_2 2 120
292     a1pms_equal json:policy-types?ric_id=ricsim_g1_3 3 120
293     a1pms_equal json:policy-types?ric_id=ricsim_g1_4 4 120
294     a1pms_equal json:policy-types?ric_id=ricsim_g1_5 5 120
295     a1pms_equal json:policy-types?ric_id=ricsim_g1_6 4 120
296     a1pms_equal json:policy-types?ric_id=ricsim_g1_7 3 120
297     a1pms_equal json:policy-types?ric_id=ricsim_g1_8 2 120
298     a1pms_equal json:policy-types?ric_id=ricsim_g1_9 1 120
299     a1pms_equal json:policy-types?ric_id=ricsim_g1_10 0 120
300
301     a1pms_api_get_rics 200 NOTYPE "ricsim_g1_1:me1_ricsim_g1_1,me2_ricsim_g1_1:1:???? \
302                              ricsim_g1_2:me1_ricsim_g1_2,me2_ricsim_g1_2:1,2:???? \
303                              ricsim_g1_3:me1_ricsim_g1_3,me2_ricsim_g1_3:1,2,3:???? \
304                              ricsim_g1_4:me1_ricsim_g1_4,me2_ricsim_g1_4:1,2,3,4:???? \
305                              ricsim_g1_5:me1_ricsim_g1_5,me2_ricsim_g1_5:1,2,3,4,5:???? \
306                              ricsim_g1_6:me1_ricsim_g1_6,me2_ricsim_g1_6:2,3,4,5:???? \
307                              ricsim_g1_7:me1_ricsim_g1_7,me2_ricsim_g1_7:3,4,5:???? \
308                              ricsim_g1_8:me1_ricsim_g1_8,me2_ricsim_g1_8:4,5:???? \
309                              ricsim_g1_9:me1_ricsim_g1_9,me2_ricsim_g1_9:5:???? \
310                              ricsim_g1_10:me1_ricsim_g1_10,me2_ricsim_g1_10:NOTYPE:???? "
311
312     sleep_wait 120
313
314     a1pms_equal json:policy-instances 0
315
316     sim_equal ricsim_g1_9 num_instances 0
317
318
319     sim_delete_policy_type 204 ricsim_g1_4 4
320     sim_delete_policy_type 204 ricsim_g1_5 4
321     sim_delete_policy_type 204 ricsim_g1_6 4
322     sim_delete_policy_type 204 ricsim_g1_7 4
323
324     sleep_wait 120
325
326     a1pms_equal json:policy-types 5 120
327
328     a1pms_equal json:policy-types?ric_id=ricsim_g1_1 1 120
329     a1pms_equal json:policy-types?ric_id=ricsim_g1_2 2 120
330     a1pms_equal json:policy-types?ric_id=ricsim_g1_3 3 120
331     a1pms_equal json:policy-types?ric_id=ricsim_g1_4 3 120
332     a1pms_equal json:policy-types?ric_id=ricsim_g1_5 4 120
333     a1pms_equal json:policy-types?ric_id=ricsim_g1_6 3 120
334     a1pms_equal json:policy-types?ric_id=ricsim_g1_7 2 120
335     a1pms_equal json:policy-types?ric_id=ricsim_g1_8 2 120
336     a1pms_equal json:policy-types?ric_id=ricsim_g1_9 1 120
337     a1pms_equal json:policy-types?ric_id=ricsim_g1_10 0 120
338
339     a1pms_api_get_rics 200 NOTYPE "ricsim_g1_1:me1_ricsim_g1_1,me2_ricsim_g1_1:1:???? \
340                              ricsim_g1_2:me1_ricsim_g1_2,me2_ricsim_g1_2:1,2:???? \
341                              ricsim_g1_3:me1_ricsim_g1_3,me2_ricsim_g1_3:1,2,3:???? \
342                              ricsim_g1_4:me1_ricsim_g1_4,me2_ricsim_g1_4:1,2,3:???? \
343                              ricsim_g1_5:me1_ricsim_g1_5,me2_ricsim_g1_5:1,2,3,5:???? \
344                              ricsim_g1_6:me1_ricsim_g1_6,me2_ricsim_g1_6:2,3,5:???? \
345                              ricsim_g1_7:me1_ricsim_g1_7,me2_ricsim_g1_7:3,5:???? \
346                              ricsim_g1_8:me1_ricsim_g1_8,me2_ricsim_g1_8:4,5:???? \
347                              ricsim_g1_9:me1_ricsim_g1_9,me2_ricsim_g1_9:5:???? \
348                              ricsim_g1_10:me1_ricsim_g1_10,me2_ricsim_g1_10:NOTYPE:???? "
349
350     sim_delete_policy_type 204 ricsim_g1_8 4
351
352     a1pms_equal json:policy-types 5 120
353     a1pms_equal json:policy-types?ric_id=ricsim_g1_8 1 120
354
355     a1pms_api_get_rics 200 NOTYPE "ricsim_g1_1:me1_ricsim_g1_1,me2_ricsim_g1_1:1:???? \
356                             ricsim_g1_2:me1_ricsim_g1_2,me2_ricsim_g1_2:1,2:???? \
357                             ricsim_g1_3:me1_ricsim_g1_3,me2_ricsim_g1_3:1,2,3:???? \
358                             ricsim_g1_4:me1_ricsim_g1_4,me2_ricsim_g1_4:1,2,3:???? \
359                             ricsim_g1_5:me1_ricsim_g1_5,me2_ricsim_g1_5:1,2,3,5:???? \
360                             ricsim_g1_6:me1_ricsim_g1_6,me2_ricsim_g1_6:2,3,5:???? \
361                             ricsim_g1_7:me1_ricsim_g1_7,me2_ricsim_g1_7:3,5:???? \
362                             ricsim_g1_8:me1_ricsim_g1_8,me2_ricsim_g1_8:5:???? \
363                             ricsim_g1_9:me1_ricsim_g1_9,me2_ricsim_g1_9:5:???? \
364                             ricsim_g1_10:me1_ricsim_g1_10,me2_ricsim_g1_10:NOTYPE:???? "
365
366
367
368     check_a1pms_logs
369     if [[ $interface = *"SDNC"* ]]; then
370         check_sdnc_logs
371     fi
372
373     store_logs          ${interface}
374
375 done
376
377
378 #### TEST COMPLETE ####
379
380
381 print_result
382
383 auto_clean_environment