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
41 . ../common/cr_api_functions.sh
53 start_ecs $SIM_GROUP/$ECS_COMPOSE_DIR/application.yaml
59 start_control_panel $SIM_GROUP/$CONTROL_PANEL_COMPOSE_DIR/application.properties
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
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
75 prodstub_arm_type 200 prod-a type1
77 prodstub_arm_type 200 prod-b type1
78 prodstub_arm_type 200 prod-b type2
80 prodstub_arm_type 200 prod-c type1
81 prodstub_arm_type 200 prod-c type2
82 prodstub_arm_type 200 prod-c type3
84 prodstub_arm_type 200 prod-d type4
85 prodstub_arm_type 200 prod-d type5
87 for ((i=1; i<=$NUM_JOBS; i++))
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
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
98 if [ $(($i%5)) -eq 2 ]; then
99 prodstub_arm_job_create 200 prod-c job$i
101 if [ $(($i%5)) -eq 3 ]; then
102 prodstub_arm_job_create 200 prod-d job$i
104 if [ $(($i%5)) -eq 4 ]; then
105 prodstub_arm_job_create 200 prod-d job$i
109 if [ $ECS_VERSION == "V1-1" ]; then
111 ecs_api_edp_put_producer 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ecs/ei-type-1.json
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
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
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
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
127 ecs_api_edp_put_producer_2 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
129 ecs_api_edp_put_producer_2 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type1 type2
131 ecs_api_edp_put_producer_2 201 prod-c $CB_JOB/prod-c $CB_SV/prod-c type1 type2 type3
133 ecs_api_edp_put_producer_2 201 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4 type5
136 ecs_equal json:ei-producer/v1/eiproducers 4
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
143 for ((i=1; i<=$NUM_JOBS; i++))
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
150 ecs_api_a1_get_job_status 200 job$i ENABLED 120
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
158 ecs_api_a1_get_job_status 200 job$i ENABLED 120
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
166 ecs_api_a1_get_job_status 200 job$i ENABLED 120
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
174 ecs_api_a1_get_job_status 200 job$i ENABLED 120
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
182 ecs_api_a1_get_job_status 200 job$i ENABLED 120
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))
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))
205 for ((i=1; i<=$NUM_JOBS; i++))
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
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
216 if [ $(($i%5)) -eq 2 ]; then
217 prodstub_delete_jobdata 204 prod-c job$i
219 if [ $(($i%5)) -eq 3 ]; then
220 prodstub_delete_jobdata 204 prod-d job$i
222 if [ $(($i%5)) -eq 4 ]; then
223 prodstub_delete_jobdata 204 prod-d job$i
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
232 for ((i=1; i<=$NUM_JOBS; i++))
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
238 ecs_api_a1_get_job_status 200 job$i DISABLED 120
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
245 ecs_api_a1_get_job_status 200 job$i DISABLED 120
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
252 ecs_api_a1_get_job_status 200 job$i DISABLED 120
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
259 ecs_api_a1_get_job_status 200 job$i DISABLED 120
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
266 ecs_api_a1_get_job_status 200 job$i DISABLED 120
271 if [ $ECS_VERSION == "V1-1" ]; then
273 ecs_api_edp_put_producer 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ecs/ei-type-1.json
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
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
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
282 ecs_api_edp_put_producer_2 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
284 ecs_api_edp_put_producer_2 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type1 type2
286 ecs_api_edp_put_producer_2 201 prod-c $CB_JOB/prod-c $CB_SV/prod-c type1 type2 type3
288 ecs_api_edp_put_producer_2 201 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4 type5
292 ecs_equal json:ei-producer/v1/eiproducers 4
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
299 for ((i=1; i<=$NUM_JOBS; i++))
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
305 ecs_api_a1_get_job_status 200 job$i ENABLED 120
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
312 ecs_api_a1_get_job_status 200 job$i ENABLED 120
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
319 ecs_api_a1_get_job_status 200 job$i ENABLED 120
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
326 ecs_api_a1_get_job_status 200 job$i ENABLED 120
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
333 ecs_api_a1_get_job_status 200 job$i ENABLED 120
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))
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))
353 for ((i=1; i<=$NUM_JOBS; i++))
355 if [ $(($i%5)) -eq 0 ]; then
356 prodstub_check_jobdata 200 prod-a job$i type1 $TARGET ric1 testdata/ecs/job-template.json
357 prodstub_check_jobdata 200 prod-b job$i type1 $TARGET ric1 testdata/ecs/job-template.json
358 prodstub_check_jobdata 200 prod-c job$i type1 $TARGET ric1 testdata/ecs/job-template.json
360 if [ $(($i%5)) -eq 1 ]; then
361 prodstub_check_jobdata 200 prod-b job$i type2 $TARGET ric1 testdata/ecs/job-template.json
362 prodstub_check_jobdata 200 prod-c job$i type2 $TARGET ric1 testdata/ecs/job-template.json
364 if [ $(($i%5)) -eq 2 ]; then
365 prodstub_check_jobdata 200 prod-c job$i type3 $TARGET ric1 testdata/ecs/job-template.json
367 if [ $(($i%5)) -eq 3 ]; then
368 prodstub_check_jobdata 200 prod-d job$i type4 $TARGET ric1 testdata/ecs/job-template.json
370 if [ $(($i%5)) -eq 4 ]; then
371 prodstub_check_jobdata 200 prod-d job$i type5 $TARGET ric1 testdata/ecs/job-template.json
376 for ((i=1; i<=$NUM_JOBS; i++))
378 if [ $(($i%5)) -eq 0 ]; then
379 ecs_api_a1_delete_job 204 job$i
381 if [ $(($i%5)) -eq 1 ]; then
382 ecs_api_a1_delete_job 204 job$i
384 if [ $(($i%5)) -eq 2 ]; then
385 ecs_api_a1_delete_job 204 job$i
387 if [ $(($i%5)) -eq 3 ]; then
388 ecs_api_a1_delete_job 204 job$i
390 if [ $(($i%5)) -eq 4 ]; then
391 ecs_api_a1_delete_job 204 job$i
395 ecs_equal json:ei-producer/v1/eiproducers 4
397 ecs_api_edp_get_producer_status 200 prod-a ENABLED
398 ecs_api_edp_get_producer_status 200 prod-b ENABLED
399 ecs_api_edp_get_producer_status 200 prod-c ENABLED
400 ecs_api_edp_get_producer_status 200 prod-d ENABLED
402 if [ -z "$FLAT_A1_EI" ]; then
403 ecs_equal json:A1-EI/v1/eitypes/type1/eijobs 0
404 ecs_equal json:A1-EI/v1/eitypes/type2/eijobs 0
405 ecs_equal json:A1-EI/v1/eitypes/type3/eijobs 0
406 ecs_equal json:A1-EI/v1/eitypes/type4/eijobs 0
407 ecs_equal json:A1-EI/v1/eitypes/type5/eijobs 0
409 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
410 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
411 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
412 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
413 ecs_equal json:A1-EI/v1/eijobs?eiTypeId=type1 0
420 #### TEST COMPLETE ####
425 auto_clean_environment