Adaptation to changes in ECS, PMS and RAPP Catalogue
[nonrtric.git] / test / auto-test / FTC1800.sh
1 #!/bin/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
21 TC_ONELINE_DESCR="ECS Create 10000 jobs and restart, test job persistency"
22
23 #App names to include in the test when running docker, space separated list
24 DOCKER_INCLUDED_IMAGES="ECS PRODSTUB CR CP"
25
26 #App names to include in the test when running kubernetes, space separated list
27 KUBE_INCLUDED_IMAGES="ECS PRODSTUB CP CR"
28 #Prestarted app (not started by script) to include in the test when running kubernetes, space separated list
29 KUBE_PRESTARTED_IMAGES=""
30
31 #Supported test environment profiles
32 SUPPORTED_PROFILES="ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
33 #Supported run modes
34 SUPPORTED_RUNMODES="DOCKER KUBE"
35
36 . ../common/testcase_common.sh  $@
37 . ../common/ecs_api_functions.sh
38 . ../common/prodstub_api_functions.sh
39 . ../common/control_panel_api_functions.sh
40 . ../common/controller_api_functions.sh
41 . ../common/cr_api_functions.sh
42
43 #### TEST BEGIN ####
44
45 FLAT_A1_EI="1"
46
47 clean_environment
48
49 use_ecs_rest_http
50
51 use_prod_stub_http
52
53 start_ecs NOPROXY $SIM_GROUP/$ECS_COMPOSE_DIR/application.yaml
54
55 start_prod_stub
56
57 set_ecs_trace
58
59 start_control_panel $SIM_GROUP/$CONTROL_PANEL_COMPOSE_DIR/application.properties
60
61 start_cr
62
63 CB_JOB="$PROD_STUB_SERVICE_PATH$PROD_STUB_JOB_CALLBACK"
64 CB_SV="$PROD_STUB_SERVICE_PATH$PROD_STUB_SUPERVISION_CALLBACK"
65 TARGET="http://localhost:80/target"  # Dummy target
66
67 NUM_JOBS=10000
68
69 # Setup prodstub sim to accept calls for producers, types and jobs
70 prodstub_arm_producer 200 prod-a
71 prodstub_arm_producer 200 prod-b
72 prodstub_arm_producer 200 prod-c
73 prodstub_arm_producer 200 prod-d
74
75 prodstub_arm_type 200 prod-a type1
76
77 prodstub_arm_type 200 prod-b type1
78 prodstub_arm_type 200 prod-b type2
79
80 prodstub_arm_type 200 prod-c type1
81 prodstub_arm_type 200 prod-c type2
82 prodstub_arm_type 200 prod-c type3
83
84 prodstub_arm_type 200 prod-d type4
85 prodstub_arm_type 200 prod-d type5
86
87 for ((i=1; i<=$NUM_JOBS; i++))
88 do
89     if [ $(($i%5)) -eq 0 ]; then
90         prodstub_arm_job_create 200 prod-a job$i
91         prodstub_arm_job_create 200 prod-b job$i
92         prodstub_arm_job_create 200 prod-c job$i
93     fi
94     if [ $(($i%5)) -eq 1 ]; then
95         prodstub_arm_job_create 200 prod-b job$i
96         prodstub_arm_job_create 200 prod-c job$i
97     fi
98     if [ $(($i%5)) -eq 2 ]; then
99         prodstub_arm_job_create 200 prod-c job$i
100     fi
101     if [ $(($i%5)) -eq 3 ]; then
102         prodstub_arm_job_create 200 prod-d job$i
103     fi
104     if [ $(($i%5)) -eq 4 ]; then
105         prodstub_arm_job_create 200 prod-d job$i
106     fi
107 done
108
109 if [ $ECS_VERSION == "V1-1" ]; then
110
111     ecs_api_edp_put_producer 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ecs/ei-type-1.json
112
113     ecs_api_edp_put_producer 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type1 testdata/ecs/ei-type-1.json type2 testdata/ecs/ei-type-2.json
114
115     ecs_api_edp_put_producer 201 prod-c $CB_JOB/prod-c $CB_SV/prod-c type1 testdata/ecs/ei-type-1.json type2 testdata/ecs/ei-type-2.json type3 testdata/ecs/ei-type-3.json
116
117     ecs_api_edp_put_producer 201 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4 testdata/ecs/ei-type-4.json type5 testdata/ecs/ei-type-5.json
118
119 else
120
121     ecs_api_edp_put_type_2 201 type1 testdata/ecs/ei-type-1.json
122     ecs_api_edp_put_type_2 201 type2 testdata/ecs/ei-type-2.json
123     ecs_api_edp_put_type_2 201 type3 testdata/ecs/ei-type-3.json
124     ecs_api_edp_put_type_2 201 type4 testdata/ecs/ei-type-4.json
125     ecs_api_edp_put_type_2 201 type5 testdata/ecs/ei-type-5.json
126
127     ecs_api_edp_put_producer_2 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
128
129     ecs_api_edp_put_producer_2 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type1 type2
130
131     ecs_api_edp_put_producer_2 201 prod-c $CB_JOB/prod-c $CB_SV/prod-c type1 type2 type3
132
133     ecs_api_edp_put_producer_2 201 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4 type5
134 fi
135
136 ecs_equal json:ei-producer/v1/eiproducers 4
137
138 ecs_api_edp_get_producer_status 200 prod-a ENABLED
139 ecs_api_edp_get_producer_status 200 prod-b ENABLED
140 ecs_api_edp_get_producer_status 200 prod-c ENABLED
141 ecs_api_edp_get_producer_status 200 prod-d ENABLED
142
143 for ((i=1; i<=$NUM_JOBS; i++))
144 do
145     if [ $(($i%5)) -eq 0 ]; then
146         ecs_api_a1_put_job 201 job$i type1 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
147         if [  -z "$FLAT_A1_EI" ]; then
148             ecs_api_a1_get_job_status 200 type1 job$i ENABLED
149         else
150             ecs_api_a1_get_job_status 200 job$i ENABLED 120
151         fi
152     fi
153     if [ $(($i%5)) -eq 1 ]; then
154         ecs_api_a1_put_job 201 job$i type2 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
155         if [  -z "$FLAT_A1_EI" ]; then
156             ecs_api_a1_get_job_status 200 type2 job$i ENABLED
157         else
158             ecs_api_a1_get_job_status 200 job$i ENABLED 120
159         fi
160     fi
161     if [ $(($i%5)) -eq 2 ]; then
162         ecs_api_a1_put_job 201 job$i type3 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
163         if [  -z "$FLAT_A1_EI" ]; then
164             ecs_api_a1_get_job_status 200 type3 job$i ENABLED
165         else
166             ecs_api_a1_get_job_status 200 job$i ENABLED 120
167         fi
168     fi
169     if [ $(($i%5)) -eq 3 ]; then
170         ecs_api_a1_put_job 201 job$i type4 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
171         if [  -z "$FLAT_A1_EI" ]; then
172             ecs_api_a1_get_job_status 200 type4 job$i ENABLED
173         else
174             ecs_api_a1_get_job_status 200 job$i ENABLED 120
175         fi
176     fi
177     if [ $(($i%5)) -eq 4 ]; then
178         ecs_api_a1_put_job 201 job$i type5 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
179         if [  -z "$FLAT_A1_EI" ]; then
180             ecs_api_a1_get_job_status 200 type5 job$i ENABLED
181         else
182             ecs_api_a1_get_job_status 200 job$i ENABLED 120
183         fi
184     fi
185 done
186
187 if [  -z "$FLAT_A1_EI" ]; then
188     ecs_equal json:A1-EI/v1/eitypes/type1/eijobs $(($NUM_JOBS/5))
189     ecs_equal json:A1-EI/v1/eitypes/type2/eijobs $(($NUM_JOBS/5))
190     ecs_equal json:A1-EI/v1/eitypes/type3/eijobs $(($NUM_JOBS/5))
191     ecs_equal json:A1-EI/v1/eitypes/type4/eijobs $(($NUM_JOBS/5))
192     ecs_equal json:A1-EI/v1/eitypes/type5/eijobs $(($NUM_JOBS/5))
193 else
194     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
195     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
196     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
197     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
198     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
199 fi
200
201 restart_ecs
202
203 set_ecs_trace
204
205 for ((i=1; i<=$NUM_JOBS; i++))
206 do
207     if [ $(($i%5)) -eq 0 ]; then
208         prodstub_delete_jobdata 204 prod-a job$i
209         prodstub_delete_jobdata 204 prod-b job$i
210         prodstub_delete_jobdata 204 prod-c job$i
211     fi
212     if [ $(($i%5)) -eq 1 ]; then
213         prodstub_delete_jobdata 204 prod-b job$i
214         prodstub_delete_jobdata 204 prod-c job$i
215     fi
216     if [ $(($i%5)) -eq 2 ]; then
217         prodstub_delete_jobdata 204 prod-c job$i
218     fi
219     if [ $(($i%5)) -eq 3 ]; then
220         prodstub_delete_jobdata 204 prod-d job$i
221     fi
222     if [ $(($i%5)) -eq 4 ]; then
223         prodstub_delete_jobdata 204 prod-d job$i
224     fi
225 done
226
227 ecs_api_edp_get_producer_status 404 prod-a
228 ecs_api_edp_get_producer_status 404 prod-b
229 ecs_api_edp_get_producer_status 404 prod-c
230 ecs_api_edp_get_producer_status 404 prod-d
231
232 for ((i=1; i<=$NUM_JOBS; i++))
233 do
234     if [ $(($i%5)) -eq 0 ]; then
235         if [  -z "$FLAT_A1_EI" ]; then
236             ecs_api_a1_get_job_status 200 type1 job$i DISABLED
237         else
238             ecs_api_a1_get_job_status 200 job$i DISABLED 120
239         fi
240     fi
241     if [ $(($i%5)) -eq 1 ]; then
242         if [  -z "$FLAT_A1_EI" ]; then
243             ecs_api_a1_get_job_status 200 type2 job$i DISABLED
244         else
245             ecs_api_a1_get_job_status 200 job$i DISABLED 120
246         fi
247     fi
248     if [ $(($i%5)) -eq 2 ]; then
249         if [  -z "$FLAT_A1_EI" ]; then
250             ecs_api_a1_get_job_status 200 type3 job$i DISABLED
251         else
252             ecs_api_a1_get_job_status 200 job$i DISABLED 120
253         fi
254     fi
255     if [ $(($i%5)) -eq 3 ]; then
256         if [  -z "$FLAT_A1_EI" ]; then
257             ecs_api_a1_get_job_status 200 type4 job$i DISABLED
258         else
259             ecs_api_a1_get_job_status 200 job$i DISABLED 120
260         fi
261     fi
262     if [ $(($i%5)) -eq 4 ]; then
263         if [  -z "$FLAT_A1_EI" ]; then
264             ecs_api_a1_get_job_status 200 type5 job$i DISABLED
265         else
266             ecs_api_a1_get_job_status 200 job$i DISABLED 120
267         fi
268     fi
269 done
270
271 if [ $ECS_VERSION == "V1-1" ]; then
272
273     ecs_api_edp_put_producer 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ecs/ei-type-1.json
274
275     ecs_api_edp_put_producer 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type1 testdata/ecs/ei-type-1.json type2 testdata/ecs/ei-type-2.json
276
277     ecs_api_edp_put_producer 201 prod-c $CB_JOB/prod-c $CB_SV/prod-c type1 testdata/ecs/ei-type-1.json type2 testdata/ecs/ei-type-2.json type3 testdata/ecs/ei-type-3.json
278
279     ecs_api_edp_put_producer 201 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4 testdata/ecs/ei-type-4.json type5 testdata/ecs/ei-type-5.json
280
281 else
282     ecs_api_edp_put_producer_2 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
283
284     ecs_api_edp_put_producer_2 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type1 type2
285
286     ecs_api_edp_put_producer_2 201 prod-c $CB_JOB/prod-c $CB_SV/prod-c type1 type2 type3
287
288     ecs_api_edp_put_producer_2 201 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4 type5
289
290 fi
291
292 ecs_equal json:ei-producer/v1/eiproducers 4
293
294 ecs_api_edp_get_producer_status 200 prod-a ENABLED
295 ecs_api_edp_get_producer_status 200 prod-b ENABLED
296 ecs_api_edp_get_producer_status 200 prod-c ENABLED
297 ecs_api_edp_get_producer_status 200 prod-d ENABLED
298
299 for ((i=1; i<=$NUM_JOBS; i++))
300 do
301     if [ $(($i%5)) -eq 0 ]; then
302         if [  -z "$FLAT_A1_EI" ]; then
303             ecs_api_a1_get_job_status 200 type1 job$i ENABLED
304         else
305             ecs_api_a1_get_job_status 200 job$i ENABLED 120
306         fi
307     fi
308     if [ $(($i%5)) -eq 1 ]; then
309         if [  -z "$FLAT_A1_EI" ]; then
310             ecs_api_a1_get_job_status 200 type2 job$i ENABLED
311         else
312             ecs_api_a1_get_job_status 200 job$i ENABLED 120
313         fi
314     fi
315     if [ $(($i%5)) -eq 2 ]; then
316         if [  -z "$FLAT_A1_EI" ]; then
317             ecs_api_a1_get_job_status 200 type3 job$i ENABLED
318         else
319             ecs_api_a1_get_job_status 200 job$i ENABLED 120
320         fi
321     fi
322     if [ $(($i%5)) -eq 3 ]; then
323         if [  -z "$FLAT_A1_EI" ]; then
324             ecs_api_a1_get_job_status 200 type4 job$i ENABLED
325         else
326             ecs_api_a1_get_job_status 200 job$i ENABLED 120
327         fi
328     fi
329     if [ $(($i%5)) -eq 4 ]; then
330         if [  -z "$FLAT_A1_EI" ]; then
331             ecs_api_a1_get_job_status 200 type5 job$i ENABLED
332         else
333             ecs_api_a1_get_job_status 200 job$i ENABLED 120
334         fi
335     fi
336 done
337
338
339 if [  -z "$FLAT_A1_EI" ]; then
340     ecs_equal json:A1-EI/v1/eitypes/type1/eijobs $(($NUM_JOBS/5))
341     ecs_equal json:A1-EI/v1/eitypes/type2/eijobs $(($NUM_JOBS/5))
342     ecs_equal json:A1-EI/v1/eitypes/type3/eijobs $(($NUM_JOBS/5))
343     ecs_equal json:A1-EI/v1/eitypes/type4/eijobs $(($NUM_JOBS/5))
344     ecs_equal json:A1-EI/v1/eitypes/type5/eijobs $(($NUM_JOBS/5))
345 else
346     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
347     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
348     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
349     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
350     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
351 fi
352
353 for ((i=1; i<=$NUM_JOBS; i++))
354 do
355     if [ $(($i%5)) -eq 0 ]; then
356         if [ $ECS_VERSION == "V1-1" ]; then
357             prodstub_check_jobdata 200 prod-a job$i type1 $TARGET ric1 testdata/ecs/job-template.json
358             prodstub_check_jobdata 200 prod-b job$i type1 $TARGET ric1 testdata/ecs/job-template.json
359             prodstub_check_jobdata 200 prod-c job$i type1 $TARGET ric1 testdata/ecs/job-template.json
360         else
361             prodstub_check_jobdata_2 200 prod-a job$i type1 $TARGET ric1 testdata/ecs/job-template.json
362             prodstub_check_jobdata_2 200 prod-b job$i type1 $TARGET ric1 testdata/ecs/job-template.json
363             prodstub_check_jobdata_2 200 prod-c job$i type1 $TARGET ric1 testdata/ecs/job-template.json
364         fi
365
366     fi
367     if [ $(($i%5)) -eq 1 ]; then
368         if [ $ECS_VERSION == "V1-1" ]; then
369             prodstub_check_jobdata 200 prod-b job$i type2 $TARGET ric1 testdata/ecs/job-template.json
370             prodstub_check_jobdata 200 prod-c job$i type2 $TARGET ric1 testdata/ecs/job-template.json
371         else
372             prodstub_check_jobdata_2 200 prod-b job$i type2 $TARGET ric1 testdata/ecs/job-template.json
373             prodstub_check_jobdata_2 200 prod-c job$i type2 $TARGET ric1 testdata/ecs/job-template.json
374         fi
375     fi
376     if [ $(($i%5)) -eq 2 ]; then
377         if [ $ECS_VERSION == "V1-1" ]; then
378             prodstub_check_jobdata 200 prod-c job$i type3 $TARGET ric1 testdata/ecs/job-template.json
379         else
380             prodstub_check_jobdata_2 200 prod-c job$i type3 $TARGET ric1 testdata/ecs/job-template.json
381         fi
382     fi
383     if [ $(($i%5)) -eq 3 ]; then
384         if [ $ECS_VERSION == "V1-1" ]; then
385             prodstub_check_jobdata 200 prod-d job$i type4 $TARGET ric1 testdata/ecs/job-template.json
386         else
387             prodstub_check_jobdata_2 200 prod-d job$i type4 $TARGET ric1 testdata/ecs/job-template.json
388         fi
389     fi
390     if [ $(($i%5)) -eq 4 ]; then
391         if [ $ECS_VERSION == "V1-1" ]; then
392             prodstub_check_jobdata 200 prod-d job$i type5 $TARGET ric1 testdata/ecs/job-template.json
393         else
394             prodstub_check_jobdata_2 200 prod-d job$i type5 $TARGET ric1 testdata/ecs/job-template.json
395         fi
396     fi
397 done
398
399
400 for ((i=1; i<=$NUM_JOBS; i++))
401 do
402     if [ $(($i%5)) -eq 0 ]; then
403         ecs_api_a1_delete_job 204 job$i
404     fi
405     if [ $(($i%5)) -eq 1 ]; then
406         ecs_api_a1_delete_job 204 job$i
407     fi
408     if [ $(($i%5)) -eq 2 ]; then
409         ecs_api_a1_delete_job 204 job$i
410     fi
411     if [ $(($i%5)) -eq 3 ]; then
412         ecs_api_a1_delete_job 204 job$i
413     fi
414     if [ $(($i%5)) -eq 4 ]; then
415         ecs_api_a1_delete_job 204 job$i
416     fi
417 done
418
419 ecs_equal json:ei-producer/v1/eiproducers 4
420
421 ecs_api_edp_get_producer_status 200 prod-a ENABLED
422 ecs_api_edp_get_producer_status 200 prod-b ENABLED
423 ecs_api_edp_get_producer_status 200 prod-c ENABLED
424 ecs_api_edp_get_producer_status 200 prod-d ENABLED
425
426 if [  -z "$FLAT_A1_EI" ]; then
427     ecs_equal json:A1-EI/v1/eitypes/type1/eijobs 0
428     ecs_equal json:A1-EI/v1/eitypes/type2/eijobs 0
429     ecs_equal json:A1-EI/v1/eitypes/type3/eijobs 0
430     ecs_equal json:A1-EI/v1/eitypes/type4/eijobs 0
431     ecs_equal json:A1-EI/v1/eitypes/type5/eijobs 0
432 else
433     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
434     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
435     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
436     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
437     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
438 fi
439
440 check_ecs_logs
441
442 store_logs END
443
444 #### TEST COMPLETE ####
445
446
447 print_result
448
449 auto_clean_environment