Merge "Update of EI Data Producer API"
[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 persisency"
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
42 #### TEST BEGIN ####
43
44 FLAT_A1_EI="1"
45
46 clean_environment
47
48 use_ecs_rest_http
49
50 use_prod_stub_http
51
52 start_ecs $SIM_GROUP/$ECS_COMPOSE_DIR/application.yaml
53
54 start_prod_stub
55
56 set_ecs_trace
57
58 start_control_panel $SIM_GROUP/$CONTROL_PANEL_COMPOSE_DIR/application.properties
59
60 start_cr
61
62 CB_JOB="$PROD_STUB_SERVICE_PATH$PROD_STUB_JOB_CALLBACK"
63 CB_SV="$PROD_STUB_SERVICE_PATH$PROD_STUB_SUPERVISION_CALLBACK"
64 TARGET="http://localhost:80/target"  # Dummy target
65
66 NUM_JOBS=10000
67
68 # Setup prodstub sim to accept calls for producers, types and jobs
69 prodstub_arm_producer 200 prod-a
70 prodstub_arm_producer 200 prod-b
71 prodstub_arm_producer 200 prod-c
72 prodstub_arm_producer 200 prod-d
73
74 prodstub_arm_type 200 prod-a type1
75
76 prodstub_arm_type 200 prod-b type1
77 prodstub_arm_type 200 prod-b type2
78
79 prodstub_arm_type 200 prod-c type1
80 prodstub_arm_type 200 prod-c type2
81 prodstub_arm_type 200 prod-c type3
82
83 prodstub_arm_type 200 prod-d type4
84 prodstub_arm_type 200 prod-d type5
85
86 for ((i=1; i<=$NUM_JOBS; i++))
87 do
88     if [ $(($i%5)) -eq 0 ]; then
89         prodstub_arm_job_create 200 prod-a job$i
90         prodstub_arm_job_create 200 prod-b job$i
91         prodstub_arm_job_create 200 prod-c job$i
92     fi
93     if [ $(($i%5)) -eq 1 ]; then
94         prodstub_arm_job_create 200 prod-b job$i
95         prodstub_arm_job_create 200 prod-c job$i
96     fi
97     if [ $(($i%5)) -eq 2 ]; then
98         prodstub_arm_job_create 200 prod-c job$i
99     fi
100     if [ $(($i%5)) -eq 3 ]; then
101         prodstub_arm_job_create 200 prod-d job$i
102     fi
103     if [ $(($i%5)) -eq 4 ]; then
104         prodstub_arm_job_create 200 prod-d job$i
105     fi
106 done
107
108 ecs_api_edp_put_producer 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ecs/ei-type-1.json
109
110 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
111
112 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
113
114 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
115
116 ecs_equal json:ei-producer/v1/eiproducers 4
117
118 ecs_api_edp_get_producer_status 200 prod-a ENABLED
119 ecs_api_edp_get_producer_status 200 prod-b ENABLED
120 ecs_api_edp_get_producer_status 200 prod-c ENABLED
121 ecs_api_edp_get_producer_status 200 prod-d ENABLED
122
123 for ((i=1; i<=$NUM_JOBS; i++))
124 do
125     if [ $(($i%5)) -eq 0 ]; then
126         ecs_api_a1_put_job 201 job$i type1 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
127         if [  -z "$FLAT_A1_EI" ]; then
128             ecs_api_a1_get_job_status 200 type1 job$i ENABLED
129         else
130             ecs_api_a1_get_job_status 200 job$i ENABLED
131         fi
132     fi
133     if [ $(($i%5)) -eq 1 ]; then
134         ecs_api_a1_put_job 201 job$i type2 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
135         if [  -z "$FLAT_A1_EI" ]; then
136             ecs_api_a1_get_job_status 200 type2 job$i ENABLED
137         else
138             ecs_api_a1_get_job_status 200 job$i ENABLED
139         fi
140     fi
141     if [ $(($i%5)) -eq 2 ]; then
142         ecs_api_a1_put_job 201 job$i type3 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
143         if [  -z "$FLAT_A1_EI" ]; then
144             ecs_api_a1_get_job_status 200 type3 job$i ENABLED
145         else
146             ecs_api_a1_get_job_status 200 job$i ENABLED
147         fi
148     fi
149     if [ $(($i%5)) -eq 3 ]; then
150         ecs_api_a1_put_job 201 job$i type4 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
151         if [  -z "$FLAT_A1_EI" ]; then
152             ecs_api_a1_get_job_status 200 type4 job$i ENABLED
153         else
154             ecs_api_a1_get_job_status 200 job$i ENABLED
155         fi
156     fi
157     if [ $(($i%5)) -eq 4 ]; then
158         ecs_api_a1_put_job 201 job$i type5 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
159         if [  -z "$FLAT_A1_EI" ]; then
160             ecs_api_a1_get_job_status 200 type5 job$i ENABLED
161         else
162             ecs_api_a1_get_job_status 200 job$i ENABLED
163         fi
164     fi
165 done
166
167 if [  -z "$FLAT_A1_EI" ]; then
168     ecs_equal json:A1-EI/v1/eitypes/type1/eijobs $(($NUM_JOBS/5))
169     ecs_equal json:A1-EI/v1/eitypes/type2/eijobs $(($NUM_JOBS/5))
170     ecs_equal json:A1-EI/v1/eitypes/type3/eijobs $(($NUM_JOBS/5))
171     ecs_equal json:A1-EI/v1/eitypes/type4/eijobs $(($NUM_JOBS/5))
172     ecs_equal json:A1-EI/v1/eitypes/type5/eijobs $(($NUM_JOBS/5))
173 else
174     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
175     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
176     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
177     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
178     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
179 fi
180
181 restart_ecs
182
183 set_ecs_trace
184
185 for ((i=1; i<=$NUM_JOBS; i++))
186 do
187     if [ $(($i%5)) -eq 0 ]; then
188         prodstub_delete_jobdata 204 prod-a job$i
189         prodstub_delete_jobdata 204 prod-b job$i
190         prodstub_delete_jobdata 204 prod-c job$i
191     fi
192     if [ $(($i%5)) -eq 1 ]; then
193         prodstub_delete_jobdata 204 prod-b job$i
194         prodstub_delete_jobdata 204 prod-c job$i
195     fi
196     if [ $(($i%5)) -eq 2 ]; then
197         prodstub_delete_jobdata 204 prod-c job$i
198     fi
199     if [ $(($i%5)) -eq 3 ]; then
200         prodstub_delete_jobdata 204 prod-d job$i
201     fi
202     if [ $(($i%5)) -eq 4 ]; then
203         prodstub_delete_jobdata 204 prod-d job$i
204     fi
205 done
206
207 ecs_api_edp_get_producer_status 404 prod-a
208 ecs_api_edp_get_producer_status 404 prod-b
209 ecs_api_edp_get_producer_status 404 prod-c
210 ecs_api_edp_get_producer_status 404 prod-d
211
212 for ((i=1; i<=$NUM_JOBS; i++))
213 do
214     if [ $(($i%5)) -eq 0 ]; then
215         if [  -z "$FLAT_A1_EI" ]; then
216             ecs_api_a1_get_job_status 200 type1 job$i DISABLED
217         else
218             ecs_api_a1_get_job_status 200 job$i DISABLED
219         fi
220     fi
221     if [ $(($i%5)) -eq 1 ]; then
222         if [  -z "$FLAT_A1_EI" ]; then
223             ecs_api_a1_get_job_status 200 type2 job$i DISABLED
224         else
225             ecs_api_a1_get_job_status 200 job$i DISABLED
226         fi
227     fi
228     if [ $(($i%5)) -eq 2 ]; then
229         if [  -z "$FLAT_A1_EI" ]; then
230             ecs_api_a1_get_job_status 200 type3 job$i DISABLED
231         else
232             ecs_api_a1_get_job_status 200 job$i DISABLED
233         fi
234     fi
235     if [ $(($i%5)) -eq 3 ]; then
236         if [  -z "$FLAT_A1_EI" ]; then
237             ecs_api_a1_get_job_status 200 type4 job$i DISABLED
238         else
239             ecs_api_a1_get_job_status 200 job$i DISABLED
240         fi
241     fi
242     if [ $(($i%5)) -eq 4 ]; then
243         if [  -z "$FLAT_A1_EI" ]; then
244             ecs_api_a1_get_job_status 200 type5 job$i DISABLED
245         else
246             ecs_api_a1_get_job_status 200 job$i DISABLED
247         fi
248     fi
249 done
250
251
252 ecs_api_edp_put_producer 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ecs/ei-type-1.json
253
254 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
255
256 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
257
258 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
259
260 ecs_equal json:ei-producer/v1/eiproducers 4
261
262 ecs_api_edp_get_producer_status 200 prod-a ENABLED
263 ecs_api_edp_get_producer_status 200 prod-b ENABLED
264 ecs_api_edp_get_producer_status 200 prod-c ENABLED
265 ecs_api_edp_get_producer_status 200 prod-d ENABLED
266
267 for ((i=1; i<=$NUM_JOBS; i++))
268 do
269     if [ $(($i%5)) -eq 0 ]; then
270         if [  -z "$FLAT_A1_EI" ]; then
271             ecs_api_a1_get_job_status 200 type1 job$i ENABLED
272         else
273             ecs_api_a1_get_job_status 200 job$i ENABLED
274         fi
275     fi
276     if [ $(($i%5)) -eq 1 ]; then
277         if [  -z "$FLAT_A1_EI" ]; then
278             ecs_api_a1_get_job_status 200 type2 job$i ENABLED
279         else
280             ecs_api_a1_get_job_status 200 job$i ENABLED
281         fi
282     fi
283     if [ $(($i%5)) -eq 2 ]; then
284         if [  -z "$FLAT_A1_EI" ]; then
285             ecs_api_a1_get_job_status 200 type3 job$i ENABLED
286         else
287             ecs_api_a1_get_job_status 200 job$i ENABLED
288         fi
289     fi
290     if [ $(($i%5)) -eq 3 ]; then
291         if [  -z "$FLAT_A1_EI" ]; then
292             ecs_api_a1_get_job_status 200 type4 job$i ENABLED
293         else
294             ecs_api_a1_get_job_status 200 job$i ENABLED
295         fi
296     fi
297     if [ $(($i%5)) -eq 4 ]; then
298         if [  -z "$FLAT_A1_EI" ]; then
299             ecs_api_a1_get_job_status 200 type5 job$i ENABLED
300         else
301             ecs_api_a1_get_job_status 200 job$i ENABLED
302         fi
303     fi
304 done
305
306
307 if [  -z "$FLAT_A1_EI" ]; then
308     ecs_equal json:A1-EI/v1/eitypes/type1/eijobs $(($NUM_JOBS/5))
309     ecs_equal json:A1-EI/v1/eitypes/type2/eijobs $(($NUM_JOBS/5))
310     ecs_equal json:A1-EI/v1/eitypes/type3/eijobs $(($NUM_JOBS/5))
311     ecs_equal json:A1-EI/v1/eitypes/type4/eijobs $(($NUM_JOBS/5))
312     ecs_equal json:A1-EI/v1/eitypes/type5/eijobs $(($NUM_JOBS/5))
313 else
314     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
315     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
316     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
317     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
318     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
319 fi
320
321 for ((i=1; i<=$NUM_JOBS; i++))
322 do
323     if [ $(($i%5)) -eq 0 ]; then
324         prodstub_check_jobdata 200 prod-a job$i type1 $TARGET ric1 testdata/ecs/job-template.json
325         prodstub_check_jobdata 200 prod-b job$i type1 $TARGET ric1 testdata/ecs/job-template.json
326         prodstub_check_jobdata 200 prod-c job$i type1 $TARGET ric1 testdata/ecs/job-template.json
327     fi
328     if [ $(($i%5)) -eq 1 ]; then
329         prodstub_check_jobdata 200 prod-b job$i type2 $TARGET ric1 testdata/ecs/job-template.json
330         prodstub_check_jobdata 200 prod-c job$i type2 $TARGET ric1 testdata/ecs/job-template.json
331     fi
332     if [ $(($i%5)) -eq 2 ]; then
333         prodstub_check_jobdata 200 prod-c job$i type3 $TARGET ric1 testdata/ecs/job-template.json
334     fi
335     if [ $(($i%5)) -eq 3 ]; then
336         prodstub_check_jobdata 200 prod-d job$i type4 $TARGET ric1 testdata/ecs/job-template.json
337     fi
338     if [ $(($i%5)) -eq 4 ]; then
339         prodstub_check_jobdata 200 prod-d job$i type5 $TARGET ric1 testdata/ecs/job-template.json
340     fi
341 done
342
343
344 for ((i=1; i<=$NUM_JOBS; i++))
345 do
346     if [ $(($i%5)) -eq 0 ]; then
347         ecs_api_a1_delete_job 204 job$i
348     fi
349     if [ $(($i%5)) -eq 1 ]; then
350         ecs_api_a1_delete_job 204 job$i
351     fi
352     if [ $(($i%5)) -eq 2 ]; then
353         ecs_api_a1_delete_job 204 job$i
354     fi
355     if [ $(($i%5)) -eq 3 ]; then
356         ecs_api_a1_delete_job 204 job$i
357     fi
358     if [ $(($i%5)) -eq 4 ]; then
359         ecs_api_a1_delete_job 204 job$i
360     fi
361 done
362
363 ecs_equal json:ei-producer/v1/eiproducers 4
364
365 ecs_api_edp_get_producer_status 200 prod-a ENABLED
366 ecs_api_edp_get_producer_status 200 prod-b ENABLED
367 ecs_api_edp_get_producer_status 200 prod-c ENABLED
368 ecs_api_edp_get_producer_status 200 prod-d ENABLED
369
370 if [  -z "$FLAT_A1_EI" ]; then
371     ecs_equal json:A1-EI/v1/eitypes/type1/eijobs 0
372     ecs_equal json:A1-EI/v1/eitypes/type2/eijobs 0
373     ecs_equal json:A1-EI/v1/eitypes/type3/eijobs 0
374     ecs_equal json:A1-EI/v1/eitypes/type4/eijobs 0
375     ecs_equal json:A1-EI/v1/eitypes/type5/eijobs 0
376 else
377     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
378     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
379     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
380     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
381     ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
382 fi
383
384 check_ecs_logs
385
386 store_logs END
387
388 #### TEST COMPLETE ####
389
390
391 print_result
392
393 auto_clean_environment