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