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 persistency"
23 #App names to include in the test when running docker, space separated list
24 DOCKER_INCLUDED_IMAGES="ECS PRODSTUB CR CP NGW"
26 #App names to include in the test when running kubernetes, space separated list
27 KUBE_INCLUDED_IMAGES="ECS PRODSTUB CP CR KUBEPROXY NGW"
28 #Prestarted app (not started by script) to include in the test when running kubernetes, space separated list
29 KUBE_PRESTARTED_IMAGES=""
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="NGW"
36 #Supported test environment profiles
37 SUPPORTED_PROFILES="ONAP-HONOLULU ONAP-ISTANBUL ORAN-CHERRY ORAN-D-RELEASE"
39 SUPPORTED_RUNMODES="DOCKER KUBE"
41 . ../common/testcase_common.sh $@
42 . ../common/ecs_api_functions.sh
43 . ../common/prodstub_api_functions.sh
44 . ../common/control_panel_api_functions.sh
45 . ../common/controller_api_functions.sh
46 . ../common/cr_api_functions.sh
47 . ../common/kube_proxy_api_functions.sh
48 . ../common/gateway_api_functions.sh
58 if [ $RUNMODE == "KUBE" ]; then
66 start_ecs NOPROXY $SIM_GROUP/$ECS_COMPOSE_DIR/$ECS_CONFIG_FILE
72 start_control_panel $SIM_GROUP/$CONTROL_PANEL_COMPOSE_DIR/$CONTROL_PANEL_CONFIG_FILE
74 if [ ! -z "$NRT_GATEWAY_APP_NAME" ]; then
75 start_gateway $SIM_GROUP/$NRT_GATEWAY_COMPOSE_DIR/$NRT_GATEWAY_CONFIG_FILE
80 CB_JOB="$PROD_STUB_SERVICE_PATH$PROD_STUB_JOB_CALLBACK"
81 CB_SV="$PROD_STUB_SERVICE_PATH$PROD_STUB_SUPERVISION_CALLBACK"
82 TARGET="http://localhost:80/target" # Dummy target
86 # Setup prodstub sim to accept calls for producers, types and jobs
87 prodstub_arm_producer 200 prod-a
88 prodstub_arm_producer 200 prod-b
89 prodstub_arm_producer 200 prod-c
90 prodstub_arm_producer 200 prod-d
92 prodstub_arm_type 200 prod-a type1
94 prodstub_arm_type 200 prod-b type1
95 prodstub_arm_type 200 prod-b type2
97 prodstub_arm_type 200 prod-c type1
98 prodstub_arm_type 200 prod-c type2
99 prodstub_arm_type 200 prod-c type3
101 prodstub_arm_type 200 prod-d type4
102 prodstub_arm_type 200 prod-d type5
104 for ((i=1; i<=$NUM_JOBS; i++))
106 if [ $(($i%5)) -eq 0 ]; then
107 prodstub_arm_job_create 200 prod-a job$i
108 prodstub_arm_job_create 200 prod-b job$i
109 prodstub_arm_job_create 200 prod-c job$i
111 if [ $(($i%5)) -eq 1 ]; then
112 prodstub_arm_job_create 200 prod-b job$i
113 prodstub_arm_job_create 200 prod-c job$i
115 if [ $(($i%5)) -eq 2 ]; then
116 prodstub_arm_job_create 200 prod-c job$i
118 if [ $(($i%5)) -eq 3 ]; then
119 prodstub_arm_job_create 200 prod-d job$i
121 if [ $(($i%5)) -eq 4 ]; then
122 prodstub_arm_job_create 200 prod-d job$i
126 if [ $ECS_VERSION == "V1-1" ]; then
128 ecs_api_edp_put_producer 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ecs/ei-type-1.json
130 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
132 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
134 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
138 ecs_api_edp_put_type_2 201 type1 testdata/ecs/ei-type-1.json
139 ecs_api_edp_put_type_2 201 type2 testdata/ecs/ei-type-2.json
140 ecs_api_edp_put_type_2 201 type3 testdata/ecs/ei-type-3.json
141 ecs_api_edp_put_type_2 201 type4 testdata/ecs/ei-type-4.json
142 ecs_api_edp_put_type_2 201 type5 testdata/ecs/ei-type-5.json
144 ecs_api_edp_put_producer_2 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
146 ecs_api_edp_put_producer_2 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type1 type2
148 ecs_api_edp_put_producer_2 201 prod-c $CB_JOB/prod-c $CB_SV/prod-c type1 type2 type3
150 ecs_api_edp_put_producer_2 201 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4 type5
153 ecs_equal json:ei-producer/v1/eiproducers 4
155 ecs_api_edp_get_producer_status 200 prod-a ENABLED
156 ecs_api_edp_get_producer_status 200 prod-b ENABLED
157 ecs_api_edp_get_producer_status 200 prod-c ENABLED
158 ecs_api_edp_get_producer_status 200 prod-d ENABLED
160 for ((i=1; i<=$NUM_JOBS; i++))
162 if [ $(($i%5)) -eq 0 ]; then
163 ecs_api_a1_put_job 201 job$i type1 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
164 if [ -z "$FLAT_A1_EI" ]; then
165 ecs_api_a1_get_job_status 200 type1 job$i ENABLED
167 ecs_api_a1_get_job_status 200 job$i ENABLED 120
170 if [ $(($i%5)) -eq 1 ]; then
171 ecs_api_a1_put_job 201 job$i type2 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
172 if [ -z "$FLAT_A1_EI" ]; then
173 ecs_api_a1_get_job_status 200 type2 job$i ENABLED
175 ecs_api_a1_get_job_status 200 job$i ENABLED 120
178 if [ $(($i%5)) -eq 2 ]; then
179 ecs_api_a1_put_job 201 job$i type3 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
180 if [ -z "$FLAT_A1_EI" ]; then
181 ecs_api_a1_get_job_status 200 type3 job$i ENABLED
183 ecs_api_a1_get_job_status 200 job$i ENABLED 120
186 if [ $(($i%5)) -eq 3 ]; then
187 ecs_api_a1_put_job 201 job$i type4 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
188 if [ -z "$FLAT_A1_EI" ]; then
189 ecs_api_a1_get_job_status 200 type4 job$i ENABLED
191 ecs_api_a1_get_job_status 200 job$i ENABLED 120
194 if [ $(($i%5)) -eq 4 ]; then
195 ecs_api_a1_put_job 201 job$i type5 $TARGET ric1 $CR_SERVICE_PATH/job_status_ric1 testdata/ecs/job-template.json
196 if [ -z "$FLAT_A1_EI" ]; then
197 ecs_api_a1_get_job_status 200 type5 job$i ENABLED
199 ecs_api_a1_get_job_status 200 job$i ENABLED 120
204 if [ -z "$FLAT_A1_EI" ]; then
205 ecs_equal json:A1-EI/v1/eitypes/type1/eijobs $(($NUM_JOBS/5))
206 ecs_equal json:A1-EI/v1/eitypes/type2/eijobs $(($NUM_JOBS/5))
207 ecs_equal json:A1-EI/v1/eitypes/type3/eijobs $(($NUM_JOBS/5))
208 ecs_equal json:A1-EI/v1/eitypes/type4/eijobs $(($NUM_JOBS/5))
209 ecs_equal json:A1-EI/v1/eitypes/type5/eijobs $(($NUM_JOBS/5))
211 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
212 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
213 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
214 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
215 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
224 for ((i=1; i<=$NUM_JOBS; i++))
226 if [ $(($i%5)) -eq 0 ]; then
227 prodstub_delete_jobdata 204 prod-a job$i
228 prodstub_delete_jobdata 204 prod-b job$i
229 prodstub_delete_jobdata 204 prod-c job$i
231 if [ $(($i%5)) -eq 1 ]; then
232 prodstub_delete_jobdata 204 prod-b job$i
233 prodstub_delete_jobdata 204 prod-c job$i
235 if [ $(($i%5)) -eq 2 ]; then
236 prodstub_delete_jobdata 204 prod-c job$i
238 if [ $(($i%5)) -eq 3 ]; then
239 prodstub_delete_jobdata 204 prod-d job$i
241 if [ $(($i%5)) -eq 4 ]; then
242 prodstub_delete_jobdata 204 prod-d job$i
246 ecs_api_edp_get_producer_status 404 prod-a
247 ecs_api_edp_get_producer_status 404 prod-b
248 ecs_api_edp_get_producer_status 404 prod-c
249 ecs_api_edp_get_producer_status 404 prod-d
251 for ((i=1; i<=$NUM_JOBS; i++))
253 if [ $(($i%5)) -eq 0 ]; then
254 if [ -z "$FLAT_A1_EI" ]; then
255 ecs_api_a1_get_job_status 200 type1 job$i DISABLED
257 ecs_api_a1_get_job_status 200 job$i DISABLED 120
260 if [ $(($i%5)) -eq 1 ]; then
261 if [ -z "$FLAT_A1_EI" ]; then
262 ecs_api_a1_get_job_status 200 type2 job$i DISABLED
264 ecs_api_a1_get_job_status 200 job$i DISABLED 120
267 if [ $(($i%5)) -eq 2 ]; then
268 if [ -z "$FLAT_A1_EI" ]; then
269 ecs_api_a1_get_job_status 200 type3 job$i DISABLED
271 ecs_api_a1_get_job_status 200 job$i DISABLED 120
274 if [ $(($i%5)) -eq 3 ]; then
275 if [ -z "$FLAT_A1_EI" ]; then
276 ecs_api_a1_get_job_status 200 type4 job$i DISABLED
278 ecs_api_a1_get_job_status 200 job$i DISABLED 120
281 if [ $(($i%5)) -eq 4 ]; then
282 if [ -z "$FLAT_A1_EI" ]; then
283 ecs_api_a1_get_job_status 200 type5 job$i DISABLED
285 ecs_api_a1_get_job_status 200 job$i DISABLED 120
290 if [ $ECS_VERSION == "V1-1" ]; then
292 ecs_api_edp_put_producer 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ecs/ei-type-1.json
294 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
296 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
298 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
301 ecs_api_edp_put_producer_2 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
303 ecs_api_edp_put_producer_2 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type1 type2
305 ecs_api_edp_put_producer_2 201 prod-c $CB_JOB/prod-c $CB_SV/prod-c type1 type2 type3
307 ecs_api_edp_put_producer_2 201 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4 type5
311 ecs_equal json:ei-producer/v1/eiproducers 4
313 ecs_api_edp_get_producer_status 200 prod-a ENABLED
314 ecs_api_edp_get_producer_status 200 prod-b ENABLED
315 ecs_api_edp_get_producer_status 200 prod-c ENABLED
316 ecs_api_edp_get_producer_status 200 prod-d ENABLED
318 for ((i=1; i<=$NUM_JOBS; i++))
320 if [ $(($i%5)) -eq 0 ]; then
321 if [ -z "$FLAT_A1_EI" ]; then
322 ecs_api_a1_get_job_status 200 type1 job$i ENABLED
324 ecs_api_a1_get_job_status 200 job$i ENABLED 120
327 if [ $(($i%5)) -eq 1 ]; then
328 if [ -z "$FLAT_A1_EI" ]; then
329 ecs_api_a1_get_job_status 200 type2 job$i ENABLED
331 ecs_api_a1_get_job_status 200 job$i ENABLED 120
334 if [ $(($i%5)) -eq 2 ]; then
335 if [ -z "$FLAT_A1_EI" ]; then
336 ecs_api_a1_get_job_status 200 type3 job$i ENABLED
338 ecs_api_a1_get_job_status 200 job$i ENABLED 120
341 if [ $(($i%5)) -eq 3 ]; then
342 if [ -z "$FLAT_A1_EI" ]; then
343 ecs_api_a1_get_job_status 200 type4 job$i ENABLED
345 ecs_api_a1_get_job_status 200 job$i ENABLED 120
348 if [ $(($i%5)) -eq 4 ]; then
349 if [ -z "$FLAT_A1_EI" ]; then
350 ecs_api_a1_get_job_status 200 type5 job$i ENABLED
352 ecs_api_a1_get_job_status 200 job$i ENABLED 120
358 if [ -z "$FLAT_A1_EI" ]; then
359 ecs_equal json:A1-EI/v1/eitypes/type1/eijobs $(($NUM_JOBS/5))
360 ecs_equal json:A1-EI/v1/eitypes/type2/eijobs $(($NUM_JOBS/5))
361 ecs_equal json:A1-EI/v1/eitypes/type3/eijobs $(($NUM_JOBS/5))
362 ecs_equal json:A1-EI/v1/eitypes/type4/eijobs $(($NUM_JOBS/5))
363 ecs_equal json:A1-EI/v1/eitypes/type5/eijobs $(($NUM_JOBS/5))
365 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
366 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
367 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
368 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
369 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
372 for ((i=1; i<=$NUM_JOBS; i++))
374 if [ $(($i%5)) -eq 0 ]; then
375 if [ $ECS_VERSION == "V1-1" ]; then
376 prodstub_check_jobdata 200 prod-a job$i type1 $TARGET ric1 testdata/ecs/job-template.json
377 prodstub_check_jobdata 200 prod-b job$i type1 $TARGET ric1 testdata/ecs/job-template.json
378 prodstub_check_jobdata 200 prod-c job$i type1 $TARGET ric1 testdata/ecs/job-template.json
380 prodstub_check_jobdata_2 200 prod-a job$i type1 $TARGET ric1 testdata/ecs/job-template.json
381 prodstub_check_jobdata_2 200 prod-b job$i type1 $TARGET ric1 testdata/ecs/job-template.json
382 prodstub_check_jobdata_2 200 prod-c job$i type1 $TARGET ric1 testdata/ecs/job-template.json
386 if [ $(($i%5)) -eq 1 ]; then
387 if [ $ECS_VERSION == "V1-1" ]; then
388 prodstub_check_jobdata 200 prod-b job$i type2 $TARGET ric1 testdata/ecs/job-template.json
389 prodstub_check_jobdata 200 prod-c job$i type2 $TARGET ric1 testdata/ecs/job-template.json
391 prodstub_check_jobdata_2 200 prod-b job$i type2 $TARGET ric1 testdata/ecs/job-template.json
392 prodstub_check_jobdata_2 200 prod-c job$i type2 $TARGET ric1 testdata/ecs/job-template.json
395 if [ $(($i%5)) -eq 2 ]; then
396 if [ $ECS_VERSION == "V1-1" ]; then
397 prodstub_check_jobdata 200 prod-c job$i type3 $TARGET ric1 testdata/ecs/job-template.json
399 prodstub_check_jobdata_2 200 prod-c job$i type3 $TARGET ric1 testdata/ecs/job-template.json
402 if [ $(($i%5)) -eq 3 ]; then
403 if [ $ECS_VERSION == "V1-1" ]; then
404 prodstub_check_jobdata 200 prod-d job$i type4 $TARGET ric1 testdata/ecs/job-template.json
406 prodstub_check_jobdata_2 200 prod-d job$i type4 $TARGET ric1 testdata/ecs/job-template.json
409 if [ $(($i%5)) -eq 4 ]; then
410 if [ $ECS_VERSION == "V1-1" ]; then
411 prodstub_check_jobdata 200 prod-d job$i type5 $TARGET ric1 testdata/ecs/job-template.json
413 prodstub_check_jobdata_2 200 prod-d job$i type5 $TARGET ric1 testdata/ecs/job-template.json
419 for ((i=1; i<=$NUM_JOBS; i++))
421 if [ $(($i%5)) -eq 0 ]; then
422 ecs_api_a1_delete_job 204 job$i
424 if [ $(($i%5)) -eq 1 ]; then
425 ecs_api_a1_delete_job 204 job$i
427 if [ $(($i%5)) -eq 2 ]; then
428 ecs_api_a1_delete_job 204 job$i
430 if [ $(($i%5)) -eq 3 ]; then
431 ecs_api_a1_delete_job 204 job$i
433 if [ $(($i%5)) -eq 4 ]; then
434 ecs_api_a1_delete_job 204 job$i
438 ecs_equal json:ei-producer/v1/eiproducers 4
440 ecs_api_edp_get_producer_status 200 prod-a ENABLED
441 ecs_api_edp_get_producer_status 200 prod-b ENABLED
442 ecs_api_edp_get_producer_status 200 prod-c ENABLED
443 ecs_api_edp_get_producer_status 200 prod-d ENABLED
445 if [ -z "$FLAT_A1_EI" ]; then
446 ecs_equal json:A1-EI/v1/eitypes/type1/eijobs 0
447 ecs_equal json:A1-EI/v1/eitypes/type2/eijobs 0
448 ecs_equal json:A1-EI/v1/eitypes/type3/eijobs 0
449 ecs_equal json:A1-EI/v1/eitypes/type4/eijobs 0
450 ecs_equal json:A1-EI/v1/eitypes/type5/eijobs 0
452 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
453 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
454 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
455 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
456 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
463 #### TEST COMPLETE ####
468 auto_clean_environment