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 ORAN-CHERRY ORAN-DAWN"
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))
222 for ((i=1; i<=$NUM_JOBS; i++))
224 if [ $(($i%5)) -eq 0 ]; then
225 prodstub_delete_jobdata 204 prod-a job$i
226 prodstub_delete_jobdata 204 prod-b job$i
227 prodstub_delete_jobdata 204 prod-c job$i
229 if [ $(($i%5)) -eq 1 ]; then
230 prodstub_delete_jobdata 204 prod-b job$i
231 prodstub_delete_jobdata 204 prod-c job$i
233 if [ $(($i%5)) -eq 2 ]; then
234 prodstub_delete_jobdata 204 prod-c job$i
236 if [ $(($i%5)) -eq 3 ]; then
237 prodstub_delete_jobdata 204 prod-d job$i
239 if [ $(($i%5)) -eq 4 ]; then
240 prodstub_delete_jobdata 204 prod-d job$i
244 ecs_api_edp_get_producer_status 404 prod-a
245 ecs_api_edp_get_producer_status 404 prod-b
246 ecs_api_edp_get_producer_status 404 prod-c
247 ecs_api_edp_get_producer_status 404 prod-d
249 for ((i=1; i<=$NUM_JOBS; i++))
251 if [ $(($i%5)) -eq 0 ]; then
252 if [ -z "$FLAT_A1_EI" ]; then
253 ecs_api_a1_get_job_status 200 type1 job$i DISABLED
255 ecs_api_a1_get_job_status 200 job$i DISABLED 120
258 if [ $(($i%5)) -eq 1 ]; then
259 if [ -z "$FLAT_A1_EI" ]; then
260 ecs_api_a1_get_job_status 200 type2 job$i DISABLED
262 ecs_api_a1_get_job_status 200 job$i DISABLED 120
265 if [ $(($i%5)) -eq 2 ]; then
266 if [ -z "$FLAT_A1_EI" ]; then
267 ecs_api_a1_get_job_status 200 type3 job$i DISABLED
269 ecs_api_a1_get_job_status 200 job$i DISABLED 120
272 if [ $(($i%5)) -eq 3 ]; then
273 if [ -z "$FLAT_A1_EI" ]; then
274 ecs_api_a1_get_job_status 200 type4 job$i DISABLED
276 ecs_api_a1_get_job_status 200 job$i DISABLED 120
279 if [ $(($i%5)) -eq 4 ]; then
280 if [ -z "$FLAT_A1_EI" ]; then
281 ecs_api_a1_get_job_status 200 type5 job$i DISABLED
283 ecs_api_a1_get_job_status 200 job$i DISABLED 120
288 if [ $ECS_VERSION == "V1-1" ]; then
290 ecs_api_edp_put_producer 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ecs/ei-type-1.json
292 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
294 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
296 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
299 ecs_api_edp_put_producer_2 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
301 ecs_api_edp_put_producer_2 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type1 type2
303 ecs_api_edp_put_producer_2 201 prod-c $CB_JOB/prod-c $CB_SV/prod-c type1 type2 type3
305 ecs_api_edp_put_producer_2 201 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4 type5
309 ecs_equal json:ei-producer/v1/eiproducers 4
311 ecs_api_edp_get_producer_status 200 prod-a ENABLED
312 ecs_api_edp_get_producer_status 200 prod-b ENABLED
313 ecs_api_edp_get_producer_status 200 prod-c ENABLED
314 ecs_api_edp_get_producer_status 200 prod-d ENABLED
316 for ((i=1; i<=$NUM_JOBS; i++))
318 if [ $(($i%5)) -eq 0 ]; then
319 if [ -z "$FLAT_A1_EI" ]; then
320 ecs_api_a1_get_job_status 200 type1 job$i ENABLED
322 ecs_api_a1_get_job_status 200 job$i ENABLED 120
325 if [ $(($i%5)) -eq 1 ]; then
326 if [ -z "$FLAT_A1_EI" ]; then
327 ecs_api_a1_get_job_status 200 type2 job$i ENABLED
329 ecs_api_a1_get_job_status 200 job$i ENABLED 120
332 if [ $(($i%5)) -eq 2 ]; then
333 if [ -z "$FLAT_A1_EI" ]; then
334 ecs_api_a1_get_job_status 200 type3 job$i ENABLED
336 ecs_api_a1_get_job_status 200 job$i ENABLED 120
339 if [ $(($i%5)) -eq 3 ]; then
340 if [ -z "$FLAT_A1_EI" ]; then
341 ecs_api_a1_get_job_status 200 type4 job$i ENABLED
343 ecs_api_a1_get_job_status 200 job$i ENABLED 120
346 if [ $(($i%5)) -eq 4 ]; then
347 if [ -z "$FLAT_A1_EI" ]; then
348 ecs_api_a1_get_job_status 200 type5 job$i ENABLED
350 ecs_api_a1_get_job_status 200 job$i ENABLED 120
356 if [ -z "$FLAT_A1_EI" ]; then
357 ecs_equal json:A1-EI/v1/eitypes/type1/eijobs $(($NUM_JOBS/5))
358 ecs_equal json:A1-EI/v1/eitypes/type2/eijobs $(($NUM_JOBS/5))
359 ecs_equal json:A1-EI/v1/eitypes/type3/eijobs $(($NUM_JOBS/5))
360 ecs_equal json:A1-EI/v1/eitypes/type4/eijobs $(($NUM_JOBS/5))
361 ecs_equal json:A1-EI/v1/eitypes/type5/eijobs $(($NUM_JOBS/5))
363 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($NUM_JOBS/5))
364 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 $(($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))
370 for ((i=1; i<=$NUM_JOBS; i++))
372 if [ $(($i%5)) -eq 0 ]; then
373 if [ $ECS_VERSION == "V1-1" ]; then
374 prodstub_check_jobdata 200 prod-a job$i type1 $TARGET ric1 testdata/ecs/job-template.json
375 prodstub_check_jobdata 200 prod-b job$i type1 $TARGET ric1 testdata/ecs/job-template.json
376 prodstub_check_jobdata 200 prod-c job$i type1 $TARGET ric1 testdata/ecs/job-template.json
378 prodstub_check_jobdata_2 200 prod-a job$i type1 $TARGET ric1 testdata/ecs/job-template.json
379 prodstub_check_jobdata_2 200 prod-b job$i type1 $TARGET ric1 testdata/ecs/job-template.json
380 prodstub_check_jobdata_2 200 prod-c job$i type1 $TARGET ric1 testdata/ecs/job-template.json
384 if [ $(($i%5)) -eq 1 ]; then
385 if [ $ECS_VERSION == "V1-1" ]; then
386 prodstub_check_jobdata 200 prod-b job$i type2 $TARGET ric1 testdata/ecs/job-template.json
387 prodstub_check_jobdata 200 prod-c job$i type2 $TARGET ric1 testdata/ecs/job-template.json
389 prodstub_check_jobdata_2 200 prod-b job$i type2 $TARGET ric1 testdata/ecs/job-template.json
390 prodstub_check_jobdata_2 200 prod-c job$i type2 $TARGET ric1 testdata/ecs/job-template.json
393 if [ $(($i%5)) -eq 2 ]; then
394 if [ $ECS_VERSION == "V1-1" ]; then
395 prodstub_check_jobdata 200 prod-c job$i type3 $TARGET ric1 testdata/ecs/job-template.json
397 prodstub_check_jobdata_2 200 prod-c job$i type3 $TARGET ric1 testdata/ecs/job-template.json
400 if [ $(($i%5)) -eq 3 ]; then
401 if [ $ECS_VERSION == "V1-1" ]; then
402 prodstub_check_jobdata 200 prod-d job$i type4 $TARGET ric1 testdata/ecs/job-template.json
404 prodstub_check_jobdata_2 200 prod-d job$i type4 $TARGET ric1 testdata/ecs/job-template.json
407 if [ $(($i%5)) -eq 4 ]; then
408 if [ $ECS_VERSION == "V1-1" ]; then
409 prodstub_check_jobdata 200 prod-d job$i type5 $TARGET ric1 testdata/ecs/job-template.json
411 prodstub_check_jobdata_2 200 prod-d job$i type5 $TARGET ric1 testdata/ecs/job-template.json
417 for ((i=1; i<=$NUM_JOBS; i++))
419 if [ $(($i%5)) -eq 0 ]; then
420 ecs_api_a1_delete_job 204 job$i
422 if [ $(($i%5)) -eq 1 ]; then
423 ecs_api_a1_delete_job 204 job$i
425 if [ $(($i%5)) -eq 2 ]; then
426 ecs_api_a1_delete_job 204 job$i
428 if [ $(($i%5)) -eq 3 ]; then
429 ecs_api_a1_delete_job 204 job$i
431 if [ $(($i%5)) -eq 4 ]; then
432 ecs_api_a1_delete_job 204 job$i
436 ecs_equal json:ei-producer/v1/eiproducers 4
438 ecs_api_edp_get_producer_status 200 prod-a ENABLED
439 ecs_api_edp_get_producer_status 200 prod-b ENABLED
440 ecs_api_edp_get_producer_status 200 prod-c ENABLED
441 ecs_api_edp_get_producer_status 200 prod-d ENABLED
443 if [ -z "$FLAT_A1_EI" ]; then
444 ecs_equal json:A1-EI/v1/eitypes/type1/eijobs 0
445 ecs_equal json:A1-EI/v1/eitypes/type2/eijobs 0
446 ecs_equal json:A1-EI/v1/eitypes/type3/eijobs 0
447 ecs_equal json:A1-EI/v1/eitypes/type4/eijobs 0
448 ecs_equal json:A1-EI/v1/eitypes/type5/eijobs 0
450 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
451 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 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
461 #### TEST COMPLETE ####
466 auto_clean_environment