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
10 # http://www.apache.org/licenses/LICENSE-2.0
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=================================================
21 TC_ONELINE_DESCR="ECS Create 10000 jobs and restart, test job persisency"
23 #App names to include in the test when running docker, space separated list
24 DOCKER_INCLUDED_IMAGES="ECS PRODSTUB CR CP"
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=""
31 #Supported test environment profiles
32 SUPPORTED_PROFILES="ONAP-HONOLULU ORAN-CHERRY ORAN-DAWN"
34 SUPPORTED_RUNMODES="DOCKER KUBE"
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
52 start_ecs $SIM_GROUP/$ECS_COMPOSE_DIR/application.yaml
58 start_control_panel $SIM_GROUP/$CONTROL_PANEL_COMPOSE_DIR/application.properties
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
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
74 prodstub_arm_type 200 prod-a type1
76 prodstub_arm_type 200 prod-b type1
77 prodstub_arm_type 200 prod-b type2
79 prodstub_arm_type 200 prod-c type1
80 prodstub_arm_type 200 prod-c type2
81 prodstub_arm_type 200 prod-c type3
83 prodstub_arm_type 200 prod-d type4
84 prodstub_arm_type 200 prod-d type5
86 for ((i=1; i<=$NUM_JOBS; i++))
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
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
97 if [ $(($i%5)) -eq 2 ]; then
98 prodstub_arm_job_create 200 prod-c job$i
100 if [ $(($i%5)) -eq 3 ]; then
101 prodstub_arm_job_create 200 prod-d job$i
103 if [ $(($i%5)) -eq 4 ]; then
104 prodstub_arm_job_create 200 prod-d job$i
108 ecs_api_edp_put_producer 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ecs/ei-type-1.json
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
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
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
116 ecs_equal json:ei-producer/v1/eiproducers 4
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
123 for ((i=1; i<=$NUM_JOBS; i++))
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
130 ecs_api_a1_get_job_status 200 job$i ENABLED
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
138 ecs_api_a1_get_job_status 200 job$i ENABLED
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
146 ecs_api_a1_get_job_status 200 job$i ENABLED
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
154 ecs_api_a1_get_job_status 200 job$i ENABLED
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
162 ecs_api_a1_get_job_status 200 job$i ENABLED
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))
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))
185 for ((i=1; i<=$NUM_JOBS; i++))
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
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
196 if [ $(($i%5)) -eq 2 ]; then
197 prodstub_delete_jobdata 204 prod-c job$i
199 if [ $(($i%5)) -eq 3 ]; then
200 prodstub_delete_jobdata 204 prod-d job$i
202 if [ $(($i%5)) -eq 4 ]; then
203 prodstub_delete_jobdata 204 prod-d job$i
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
212 for ((i=1; i<=$NUM_JOBS; i++))
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
218 ecs_api_a1_get_job_status 200 job$i DISABLED
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
225 ecs_api_a1_get_job_status 200 job$i DISABLED
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
232 ecs_api_a1_get_job_status 200 job$i DISABLED
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
239 ecs_api_a1_get_job_status 200 job$i DISABLED
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
246 ecs_api_a1_get_job_status 200 job$i DISABLED
252 ecs_api_edp_put_producer 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ecs/ei-type-1.json
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
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
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
260 ecs_equal json:ei-producer/v1/eiproducers 4
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
267 for ((i=1; i<=$NUM_JOBS; i++))
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
273 ecs_api_a1_get_job_status 200 job$i ENABLED
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
280 ecs_api_a1_get_job_status 200 job$i ENABLED
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
287 ecs_api_a1_get_job_status 200 job$i ENABLED
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
294 ecs_api_a1_get_job_status 200 job$i ENABLED
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
301 ecs_api_a1_get_job_status 200 job$i ENABLED
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))
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))
321 for ((i=1; i<=$NUM_JOBS; i++))
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
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
332 if [ $(($i%5)) -eq 2 ]; then
333 prodstub_check_jobdata 200 prod-c job$i type3 $TARGET ric1 testdata/ecs/job-template.json
335 if [ $(($i%5)) -eq 3 ]; then
336 prodstub_check_jobdata 200 prod-d job$i type4 $TARGET ric1 testdata/ecs/job-template.json
338 if [ $(($i%5)) -eq 4 ]; then
339 prodstub_check_jobdata 200 prod-d job$i type5 $TARGET ric1 testdata/ecs/job-template.json
344 for ((i=1; i<=$NUM_JOBS; i++))
346 if [ $(($i%5)) -eq 0 ]; then
347 ecs_api_a1_delete_job 204 job$i
349 if [ $(($i%5)) -eq 1 ]; then
350 ecs_api_a1_delete_job 204 job$i
352 if [ $(($i%5)) -eq 2 ]; then
353 ecs_api_a1_delete_job 204 job$i
355 if [ $(($i%5)) -eq 3 ]; then
356 ecs_api_a1_delete_job 204 job$i
358 if [ $(($i%5)) -eq 4 ]; then
359 ecs_api_a1_delete_job 204 job$i
363 ecs_equal json:ei-producer/v1/eiproducers 4
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
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
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
388 #### TEST COMPLETE ####
393 auto_clean_environment