ICS tests with istio and JWTs
[nonrtric.git] / test / auto-test / FTC1100.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="ICS full interfaces walkthrough - with or without istio enabled"
22
23 USE_ISTIO=1
24
25 #App names to include in the test when running docker, space separated list
26 DOCKER_INCLUDED_IMAGES="ICS PRODSTUB CR RICSIM CP HTTPPROXY NGW KUBEPROXY"
27
28 #App names to include in the test when running kubernetes, space separated list
29 if [ $USE_ISTIO -eq 0 ]; then
30     KUBE_INCLUDED_IMAGES="PRODSTUB CR ICS RICSIM CP HTTPPROXY KUBEPROXY NGW"
31 else
32     KUBE_INCLUDED_IMAGES="PRODSTUB CR ICS RICSIM CP HTTPPROXY KUBEPROXY NGW KEYCLOAK ISTIO AUTHSIDECAR"
33 fi
34 #Prestarted app (not started by script) to include in the test when running kubernetes, space separated list
35 KUBE_PRESTARTED_IMAGES=""
36
37 #Ignore image in DOCKER_INCLUDED_IMAGES, KUBE_INCLUDED_IMAGES if
38 #the image is not configured in the supplied env_file
39 #Used for images not applicable to all supported profile
40 CONDITIONALLY_IGNORED_IMAGES="NGW"
41
42 #Supported test environment profiles
43 SUPPORTED_PROFILES="ONAP-HONOLULU ONAP-ISTANBUL ONAP-JAKARTA ORAN-CHERRY ORAN-D-RELEASE ORAN-E-RELEASE ORAN-F-RELEASE"
44 #Supported run modes
45 SUPPORTED_RUNMODES="DOCKER KUBE"
46
47 . ../common/testcase_common.sh $@
48
49 setup_testenvironment
50
51 #### TEST BEGIN ####
52
53 FLAT_A1_EI="1"
54
55 clean_environment
56
57 if [ $USE_ISTIO -eq 1 ]; then
58     echo -e $RED"#########################################"$ERED
59     echo -e $RED"# Work around istio jwks cache"$ERED
60     echo -e $RED"# Cycle istiod down and up to clear cache"$ERED
61     echo ""
62     __kube_scale deployment istiod istio-system 0
63     __kube_scale deployment istiod istio-system 1
64     echo -e $RED"# Cycle istiod done"
65     echo -e $RED"#########################################"$ERED
66
67     istio_enable_istio_namespace $KUBE_SIM_NAMESPACE
68     istio_enable_istio_namespace $KUBE_NONRTRIC_NAMESPACE
69 fi
70
71 start_kube_proxy
72 set_kubeproxy_debug
73
74 if [ $USE_ISTIO -eq 1 ]; then
75     use_ics_rest_http
76
77     use_prod_stub_http
78
79     use_simulator_http
80
81     use_cr_http
82 else
83     use_ics_rest_https
84
85     use_prod_stub_https
86
87     use_simulator_https
88
89     use_cr_https
90 fi
91
92 start_http_proxy
93
94 if [ $USE_ISTIO -eq 1 ]; then
95     start_keycloak
96
97     keycloak_api_obtain_admin_token
98
99     keycloak_api_create_realm                   nrtrealm   true   60
100     keycloak_api_create_confidential_client     nrtrealm   icsc
101     keycloak_api_generate_client_secret         nrtrealm   icsc
102     keycloak_api_get_client_secret              nrtrealm   icsc
103
104     keycloak_api_get_client_token               nrtrealm   icsc
105
106     CLIENT_TOKEN=$(keycloak_api_read_client_token nrtrealm   icsc)
107     echo "CLIENT_TOKEN: "$CLIENT_TOKEN
108
109     ICS_SEC=$(keycloak_api_read_client_secret nrtrealm   icsc)
110     echo "ICS_SEC: "$ICS_SEC
111
112     istio_req_auth_by_jwks              $PROD_STUB_APP_NAME $KUBE_SIM_NAMESPACE KUBEPROXY "$KUBE_PROXY_ISTIO_JWKS_KEYS"
113     istio_auth_policy_by_issuer         $PROD_STUB_APP_NAME $KUBE_SIM_NAMESPACE KUBEPROXY
114
115     istio_req_auth_by_jwksuri           $PROD_STUB_APP_NAME $KUBE_SIM_NAMESPACE nrtrealm
116     istio_auth_policy_by_realm          $PROD_STUB_APP_NAME $KUBE_SIM_NAMESPACE nrtrealm
117
118     istio_req_auth_by_jwks              $CR_APP_NAME $KUBE_SIM_NAMESPACE KUBEPROXY "$KUBE_PROXY_ISTIO_JWKS_KEYS"
119     istio_auth_policy_by_issuer         $CR_APP_NAME $KUBE_SIM_NAMESPACE KUBEPROXY
120
121     istio_req_auth_by_jwksuri           $CR_APP_NAME $KUBE_SIM_NAMESPACE nrtrealm
122     istio_auth_policy_by_realm          $CR_APP_NAME $KUBE_SIM_NAMESPACE nrtrealm
123
124     ics_configure_sec nrtrealm icsc $ICS_SEC
125
126 fi
127
128 start_ics NOPROXY $SIM_GROUP/$ICS_COMPOSE_DIR/$ICS_CONFIG_FILE  #Change NOPROXY to PROXY to run with http proxy
129
130 if [ $RUNMODE == "KUBE" ]; then
131     ics_api_admin_reset
132 fi
133
134 start_prod_stub
135
136 set_ics_debug
137
138 start_control_panel $SIM_GROUP/$CONTROL_PANEL_COMPOSE_DIR/$CONTROL_PANEL_CONFIG_FILE
139
140 if [ ! -z "$NRT_GATEWAY_APP_NAME" ]; then
141     start_gateway $SIM_GROUP/$NRT_GATEWAY_COMPOSE_DIR/$NRT_GATEWAY_CONFIG_FILE
142 fi
143
144 if [ "$A1PMS_VERSION" == "V2" ]; then
145     start_ric_simulators ricsim_g3 4  STD_2.0.0
146 fi
147
148 start_cr 1
149
150 CB_JOB="$PROD_STUB_SERVICE_PATH$PROD_STUB_JOB_CALLBACK"
151 CB_SV="$PROD_STUB_SERVICE_PATH$PROD_STUB_SUPERVISION_CALLBACK"
152 #Targets for ei jobs
153 if [ $RUNMODE == "KUBE" ]; then
154     TARGET1="$RIC_SIM_HTTPX://ricsim-g3-1.ricsim-g3.$KUBE_A1SIM_NAMESPACE:$RIC_SIM_PORT/datadelivery"
155     TARGET2="$RIC_SIM_HTTPX://ricsim-g3-2.ricsim-g3.$KUBE_A1SIM_NAMESPACE:$RIC_SIM_PORT/datadelivery"
156     TARGET3="$RIC_SIM_HTTPX://ricsim-g3-3.ricsim-g3.$KUBE_A1SIM_NAMESPACE:$RIC_SIM_PORT/datadelivery"
157     TARGET8="$RIC_SIM_HTTPX://ricsim-g3-4.ricsim-g3.$KUBE_A1SIM_NAMESPACE:$RIC_SIM_PORT/datadelivery"
158     TARGET10="$RIC_SIM_HTTPX://ricsim-g3-4.ricsim-g3.$KUBE_A1SIM_NAMESPACE:$RIC_SIM_PORT/datadelivery"
159 else
160     TARGET1="$RIC_SIM_HTTPX://ricsim_g3_1:$RIC_SIM_PORT/datadelivery"
161     TARGET2="$RIC_SIM_HTTPX://ricsim_g3_2:$RIC_SIM_PORT/datadelivery"
162     TARGET3="$RIC_SIM_HTTPX://ricsim_g3_3:$RIC_SIM_PORT/datadelivery"
163     TARGET8="$RIC_SIM_HTTPX://ricsim_g3_4:$RIC_SIM_PORT/datadelivery"
164     TARGET10="$RIC_SIM_HTTPX://ricsim_g3_4:$RIC_SIM_PORT/datadelivery"
165 fi
166
167 #Targets for info jobs
168 TARGET101="http://localhost:80/target"  # Dummy target, no target for info data in this env...
169 TARGET102="http://localhost:80/target"  # Dummy target, no target for info data in this env...
170 TARGET103="http://localhost:80/target"  # Dummy target, no target for info data in this env...
171 TARGET108="http://localhost:80/target"  # Dummy target, no target for info data in this env...
172 TARGET110="http://localhost:80/target"  # Dummy target, no target for info data in this env...
173 TARGET150="http://localhost:80/target"  # Dummy target, no target for info data in this env...
174 TARGET160="http://localhost:80/target"  # Dummy target, no target for info data in this env...
175
176 #Status callbacks for eijobs
177 STATUS1="$CR_SERVICE_APP_PATH_0/job1-status"
178 STATUS2="$CR_SERVICE_APP_PATH_0/job2-status"
179 STATUS3="$CR_SERVICE_APP_PATH_0/job3-status"
180 STATUS8="$CR_SERVICE_APP_PATH_0/job8-status"
181 STATUS10="$CR_SERVICE_APP_PATH_0/job10-status"
182
183 #Status callbacks for infojobs
184 INFOSTATUS101="$CR_SERVICE_APP_PATH_0/info-job101-status"
185 INFOSTATUS102="$CR_SERVICE_APP_PATH_0/info-job102-status"
186 INFOSTATUS103="$CR_SERVICE_APP_PATH_0/info-job103-status"
187 INFOSTATUS108="$CR_SERVICE_APP_PATH_0/info-job108-status"
188 INFOSTATUS110="$CR_SERVICE_APP_PATH_0/info-job110-status"
189 INFOSTATUS150="$CR_SERVICE_APP_PATH_0/info-job150-status"
190 INFOSTATUS160="$CR_SERVICE_APP_PATH_0/info-job160-status"
191
192 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
193     #Type registration status callbacks
194     TYPESTATUS1="$CR_SERVICE_APP_PATH_0/type-status1"
195     TYPESTATUS2="$CR_SERVICE_APP_PATH_0/type-status2"
196
197     ics_api_idc_put_subscription 201 subscription-id-1 owner1 $TYPESTATUS1
198
199     ics_api_idc_get_subscription_ids 200 NOOWNER subscription-id-1
200
201     ics_api_idc_get_subscription_ids 200 owner1 subscription-id-1
202
203     ics_api_idc_get_subscription_ids 200 test EMPTY
204
205     ics_api_idc_get_subscription 200 subscription-id-1 owner1 $TYPESTATUS1
206
207     ics_api_idc_get_subscription 404 test
208
209     ics_api_idc_put_subscription 200 subscription-id-1 owner1 $TYPESTATUS1
210
211     ics_api_idc_put_subscription 200 subscription-id-1 owner1 $TYPESTATUS1
212
213     ics_api_idc_put_subscription 201 subscription-id-2 owner2 $TYPESTATUS2
214
215     ics_api_idc_get_subscription_ids 200 NOOWNER subscription-id-1 subscription-id-2
216
217     ics_api_idc_get_subscription_ids 200 owner1 subscription-id-1
218
219     ics_api_idc_get_subscription_ids 200 owner2 subscription-id-2
220
221     ics_api_idc_get_subscription 200 subscription-id-1 owner1 $TYPESTATUS1
222     ics_api_idc_get_subscription 200 subscription-id-2 owner2 $TYPESTATUS2
223
224     ics_api_idc_delete_subscription 204 subscription-id-2
225
226     ics_api_idc_get_subscription_ids 200 NOOWNER subscription-id-1
227
228     ics_api_edp_put_type_2 201 type1 testdata/ics/ei-type-1.json
229
230     cr_equal 0 received_callbacks 1 30
231     cr_equal 0 received_callbacks?id=type-status1 1
232     cr_api_check_all_ics_subscription_events 200 0 type-status1 type1 testdata/ics/ei-type-1.json REGISTERED
233
234     ics_api_edp_delete_type_2 204 type1
235
236     cr_equal 0 received_callbacks 2 30
237     cr_equal 0 received_callbacks?id=type-status1 2
238     cr_api_check_all_ics_subscription_events 200 0 type-status1 type1 testdata/ics/ei-type-1.json DEREGISTERED
239
240     ics_api_idc_put_subscription 201 subscription-id-2 owner2 $TYPESTATUS2
241     ics_api_idc_get_subscription_ids 200 NOOWNER subscription-id-1 subscription-id-2
242
243     ics_api_edp_put_type_2 201 type1 testdata/ics/ei-type-1.json
244
245     cr_equal 0 received_callbacks 4 30
246     cr_equal 0 received_callbacks?id=type-status1 3
247     cr_equal 0 received_callbacks?id=type-status2 1
248     cr_api_check_all_ics_subscription_events 200 0 type-status1 type1 testdata/ics/ei-type-1.json REGISTERED
249
250     ics_api_idc_delete_subscription 204 subscription-id-2
251
252     ics_api_edp_delete_type_2 204 type1
253
254     cr_equal 0 received_callbacks 5 30
255     cr_equal 0 received_callbacks?id=type-status1 4
256     cr_equal 0 received_callbacks?id=type-status2 1
257     cr_api_check_all_ics_subscription_events 200 0 type-status1 type1 testdata/ics/ei-type-1.json DEREGISTERED
258
259     cr_api_reset 0
260 fi
261
262 ### Setup prodstub sim to accept calls for producers, types and jobs
263 ## prod-a type1
264 ## prod-b type1 and type2
265 ## prod-c no-type
266 ## prod-d type4
267 ## prod-e type6
268 ## prod-f type6
269
270 ## job1 -> prod-a
271 ## job2 -> prod-a
272 ## job3 -> prod-b
273 ## job4 -> prod-a
274 ## job6 -> prod-b
275 ## job8 -> prod-d
276 ## job10 -> prod-e and prod-f
277
278 prodstub_arm_producer 200 prod-a
279 prodstub_arm_producer 200 prod-b
280 prodstub_arm_producer 200 prod-c
281 prodstub_arm_producer 200 prod-d
282 prodstub_arm_producer 200 prod-e
283 prodstub_arm_producer 200 prod-f
284
285 prodstub_arm_type 200 prod-a type1
286 prodstub_arm_type 200 prod-b type2
287 prodstub_arm_type 200 prod-b type3
288 prodstub_arm_type 200 prod-d type4
289 prodstub_arm_type 200 prod-e type6
290 prodstub_arm_type 200 prod-f type6
291
292 prodstub_disarm_type 200 prod-b type3
293 prodstub_arm_type 200 prod-b type1
294 prodstub_disarm_type 200 prod-b type1
295
296
297 prodstub_arm_job_create 200 prod-a job1
298 prodstub_arm_job_create 200 prod-a job2
299 prodstub_arm_job_create 200 prod-b job3
300
301 prodstub_arm_job_delete 200 prod-a job1
302 prodstub_arm_job_delete 200 prod-a job2
303 prodstub_arm_job_delete 200 prod-b job3
304
305 prodstub_arm_job_create 200 prod-b job4
306 prodstub_arm_job_create 200 prod-a job4
307
308 prodstub_arm_job_create 200 prod-b job6
309
310 prodstub_arm_job_create 200 prod-d job8
311
312 prodstub_arm_job_create 200 prod-e job10
313 prodstub_arm_job_create 200 prod-f job10
314
315 ### ics status
316 ics_api_service_status 200
317
318 cr_equal 0 received_callbacks 0
319
320 ### Initial tests - no config made
321 ### GET: type ids, types, producer ids, producers, job ids, jobs
322 ### DELETE: jobs
323 ics_api_a1_get_type_ids 200 EMPTY
324 ics_api_a1_get_type 404 test-type
325
326 ics_api_edp_get_type_ids 200 EMPTY
327 if [ $ICS_VERSION == "V1-1" ]; then
328     ics_api_edp_get_type 404 test-type
329 else
330     ics_api_edp_get_type_2 404 test-type
331 fi
332
333 if [ $ICS_VERSION == "V1-1" ]; then
334     ics_api_edp_get_producer_ids 200 EMPTY
335     ics_api_edp_get_producer 404 test-prod
336 else
337     ics_api_edp_get_producer_ids_2 200 NOTYPE EMPTY
338     ics_api_edp_get_producer_2 404 test-prod
339 fi
340 ics_api_edp_get_producer_status 404 test-prod
341
342 ics_api_edp_delete_producer 404 test-prod
343
344 if [  -z "$FLAT_A1_EI" ]; then
345     ics_api_a1_get_job_ids 404 test-type NOWNER
346     ics_api_a1_get_job_ids 404 test-type test-owner
347
348     ics_api_a1_get_job 404 test-type test-job
349
350     ics_api_a1_get_job_status 404 test-type test-job
351 else
352     ics_api_a1_get_job_ids 200 test-type NOWNER EMPTY
353     ics_api_a1_get_job_ids 200 test-type test-owner EMPTY
354
355     ics_api_a1_get_job 404 test-job
356
357     ics_api_a1_get_job_status 404 test-job
358 fi
359
360 if [  -z "$FLAT_A1_EI" ]; then
361     ics_api_a1_delete_job 404 test-type test-job
362 else
363     ics_api_a1_delete_job 404 test-job
364 fi
365
366 if [ $ICS_VERSION == "V1-1" ]; then
367     ics_api_edp_get_producer_jobs 404 test-prod
368 else
369     ics_api_edp_get_producer_jobs_2 404 test-prod
370 fi
371
372 if [ $ICS_VERSION == "V1-2" ]; then
373     ics_api_edp_get_type_2 404 test-type
374     ics_api_edp_delete_type_2 404 test-type
375 fi
376
377 ### Setup of producer/job and testing apis ###
378
379 ## Setup prod-a
380 if [ $ICS_VERSION == "V1-1" ]; then
381     ics_api_edp_put_producer 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ics/ei-type-1.json
382     ics_api_edp_put_producer 200 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ics/ei-type-1.json
383 else
384     #V1-2
385     ics_api_edp_get_type_ids 200 EMPTY
386     ics_api_edp_get_type_2 404 type1
387     ics_api_edp_put_producer_2 404 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
388
389     # Create type, delete and create again
390     ics_api_edp_put_type_2 201 type1 testdata/ics/ei-type-1.json
391     ics_api_edp_get_type_2 200 type1
392     ics_api_edp_get_type_ids 200 type1
393     ics_api_edp_delete_type_2 204 type1
394     ics_api_edp_get_type_2 404 type1
395     ics_api_edp_get_type_ids 200 EMPTY
396     if [[ "$ICS_FEATURE_LEVEL" == *"INFO-TYPE-INFO"* ]]; then
397         ics_api_edp_put_type_2 201 type1 testdata/ics/ei-type-1.json testdata/ics/info-type-info.json
398     else
399         ics_api_edp_put_type_2 201 type1 testdata/ics/ei-type-1.json
400     fi
401     ics_api_edp_get_type_ids 200 type1
402     if [[ "$ICS_FEATURE_LEVEL" == *"INFO-TYPE-INFO"* ]]; then
403         ics_api_edp_get_type_2 200 type1 testdata/ics/ei-type-1.json testdata/ics/info-type-info.json
404     else
405         ics_api_edp_get_type_2 200 type1 testdata/ics/ei-type-1.json
406     fi
407
408     ics_api_edp_put_producer_2 201 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
409     ics_api_edp_put_producer_2 200 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
410
411     if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
412         cr_equal 0 received_callbacks 3 30
413         cr_equal 0 received_callbacks?id=type-status1 3
414         cr_api_check_all_ics_subscription_events 200 0 type-status1 type1 testdata/ics/ei-type-1.json REGISTERED type1 testdata/ics/ei-type-1.json DEREGISTERED type1 testdata/ics/ei-type-1.json REGISTERED
415     else
416         cr_equal 0 received_callbacks 0
417     fi
418 fi
419
420
421 ics_api_a1_get_type_ids 200 type1
422 if [  -z "$FLAT_A1_EI" ]; then
423     ics_api_a1_get_type 200 type1 testdata/ics/ei-type-1.json
424 else
425     ics_api_a1_get_type 200 type1 testdata/ics/empty-type.json
426 fi
427
428 ics_api_edp_get_type_ids 200 type1
429 if [ $ICS_VERSION == "V1-1" ]; then
430     ics_api_edp_get_type 200 type1 testdata/ics/ei-type-1.json prod-a
431 else
432     if [[ "$ICS_FEATURE_LEVEL" == *"INFO-TYPE-INFO"* ]]; then
433         ics_api_edp_get_type_2 200 type1 testdata/ics/ei-type-1.json testdata/ics/info-type-info.json
434     else
435         ics_api_edp_get_type_2 200 type1 testdata/ics/ei-type-1.json
436     fi
437 fi
438
439 if [ $ICS_VERSION == "V1-1" ]; then
440     ics_api_edp_get_producer_ids 200 prod-a
441 else
442     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-a
443     ics_api_edp_get_producer_ids_2 200 type1 prod-a
444     ics_api_edp_get_producer_ids_2 200 type2 EMPTY
445 fi
446
447 if [ $ICS_VERSION == "V1-1" ]; then
448     ics_api_edp_get_producer 200 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ics/ei-type-1.json
449 else
450     ics_api_edp_get_producer_2 200 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
451 fi
452
453 ics_api_edp_get_producer_status 200 prod-a ENABLED
454
455 ics_api_a1_get_job_ids 200 type1 NOWNER EMPTY
456 ics_api_a1_get_job_ids 200 type1 test-owner EMPTY
457
458 if [  -z "$FLAT_A1_EI" ]; then
459     ics_api_a1_get_job 404 type1 test-job
460
461     ics_api_a1_get_job_status 404 type1 test-job
462 else
463     ics_api_a1_get_job 404 test-job
464
465     ics_api_a1_get_job_status 404 test-job
466 fi
467 if [ $ICS_VERSION == "V1-1" ]; then
468     ics_api_edp_get_producer_jobs 200 prod-a EMPTY
469 else
470     ics_api_edp_get_producer_jobs_2 200 prod-a EMPTY
471 fi
472
473 ## Create a job for prod-a
474 ## job1 - prod-a
475 if [  -z "$FLAT_A1_EI" ]; then
476     ics_api_a1_put_job 201 type1 job1 $TARGET1 ricsim_g3_1 testdata/ics/job-template.json
477 else
478     ics_api_a1_put_job 201 job1 type1 $TARGET1 ricsim_g3_1 $STATUS1 testdata/ics/job-template.json
479 fi
480
481 # Check the job data in the producer
482 if [ $ICS_VERSION == "V1-1" ]; then
483     prodstub_check_jobdata 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ics/job-template.json
484 else
485     if [[ "$ICS_FEATURE_LEVEL" != *"INFO-TYPES"* ]]; then
486         prodstub_check_jobdata_2 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ics/job-template.json
487     else
488         prodstub_check_jobdata_3 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ics/job-template.json
489     fi
490 fi
491
492 ics_api_a1_get_job_ids 200 type1 NOWNER job1
493 ics_api_a1_get_job_ids 200 type1 ricsim_g3_1 job1
494
495 if [ ! -z "$FLAT_A1_EI" ]; then
496     ics_api_a1_get_job_ids 200 NOTYPE NOWNER job1
497 fi
498
499 if [  -z "$FLAT_A1_EI" ]; then
500     ics_api_a1_get_job 200 type1 job1 $TARGET1 ricsim_g3_1 testdata/ics/job-template.json
501
502     ics_api_a1_get_job_status 200 type1 job1 ENABLED
503 else
504     ics_api_a1_get_job 200 job1 type1 $TARGET1 ricsim_g3_1 $STATUS1 testdata/ics/job-template.json
505
506     ics_api_a1_get_job_status 200 job1 ENABLED
507 fi
508
509 prodstub_equal create/prod-a/job1 1
510
511 if [ $ICS_VERSION == "V1-1" ]; then
512     ics_api_edp_get_producer_jobs 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ics/job-template.json
513 else
514     ics_api_edp_get_producer_jobs_2 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ics/job-template.json
515 fi
516
517 ## Create a second job for prod-a
518 ## job2 - prod-a
519 if [  -z "$FLAT_A1_EI" ]; then
520     ics_api_a1_put_job 201 type1 job2 $TARGET2 ricsim_g3_2 testdata/ics/job-template.json
521 else
522     ics_api_a1_put_job 201 job2 type1 $TARGET2 ricsim_g3_2 $STATUS2 testdata/ics/job-template.json
523 fi
524
525 # Check the job data in the producer
526 if [ $ICS_VERSION == "V1-1" ]; then
527     prodstub_check_jobdata 200 prod-a job2 type1 $TARGET2 ricsim_g3_2 testdata/ics/job-template.json
528 else
529     if [[ "$ICS_FEATURE_LEVEL" != *"INFO-TYPES"* ]]; then
530         prodstub_check_jobdata_2 200 prod-a job2 type1 $TARGET2 ricsim_g3_2 testdata/ics/job-template.json
531     else
532         prodstub_check_jobdata_3 200 prod-a job2 type1 $TARGET2 ricsim_g3_2 testdata/ics/job-template.json
533     fi
534 fi
535 ics_api_a1_get_job_ids 200 type1 NOWNER job1 job2
536 ics_api_a1_get_job_ids 200 type1 ricsim_g3_1 job1
537 ics_api_a1_get_job_ids 200 type1 ricsim_g3_2 job2
538 if [ ! -z "$FLAT_A1_EI" ]; then
539     ics_api_a1_get_job_ids 200 NOTYPE NOWNER job1 job2
540 fi
541
542 if [  -z "$FLAT_A1_EI" ]; then
543     ics_api_a1_get_job 200 type1 job2 $TARGET2 ricsim_g3_2 testdata/ics/job-template.json
544
545     ics_api_a1_get_job_status 200 type1 job2 ENABLED
546 else
547     ics_api_a1_get_job 200 job2 type1 $TARGET2 ricsim_g3_2 $STATUS2 testdata/ics/job-template.json
548
549     ics_api_a1_get_job_status 200 job2 ENABLED
550 fi
551
552 prodstub_equal create/prod-a/job2 1
553
554 if [ $ICS_VERSION == "V1-1" ]; then
555     ics_api_edp_get_producer_jobs 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ics/job-template.json job2 type1 $TARGET2 ricsim_g3_2 testdata/ics/job-template.json
556 else
557     ics_api_edp_get_producer_jobs_2 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ics/job-template.json job2 type1 $TARGET2 ricsim_g3_2 testdata/ics/job-template.json
558 fi
559
560 ## Setup prod-b
561 if [ $ICS_VERSION == "V1-1" ]; then
562     ics_api_edp_put_producer 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type2 testdata/ics/ei-type-2.json
563 else
564     ics_api_edp_put_type_2 201 type2 testdata/ics/ei-type-2.json
565     ics_api_edp_put_producer_2 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type2
566     if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
567         cr_equal 0 received_callbacks 4 30
568         cr_equal 0 received_callbacks?id=type-status1 4
569         cr_api_check_all_ics_subscription_events 200 0 type-status1 type2 testdata/ics/ei-type-2.json REGISTERED
570     else
571         cr_equal 0 received_callbacks 0
572     fi
573 fi
574
575
576 ics_api_a1_get_type_ids 200 type1 type2
577 if [  -z "$FLAT_A1_EI" ]; then
578     ics_api_a1_get_type 200 type1 testdata/ics/ei-type-1.json
579     ics_api_a1_get_type 200 type2 testdata/ics/ei-type-2.json
580 else
581     ics_api_a1_get_type 200 type1 testdata/ics/empty-type.json
582     ics_api_a1_get_type 200 type2 testdata/ics/empty-type.json
583 fi
584
585 ics_api_edp_get_type_ids 200 type1 type2
586 if [ $ICS_VERSION == "V1-1" ]; then
587     ics_api_edp_get_type 200 type1 testdata/ics/ei-type-1.json prod-a
588     ics_api_edp_get_type 200 type2 testdata/ics/ei-type-2.json prod-b
589 else
590     if [[ "$ICS_FEATURE_LEVEL" == *"INFO-TYPE-INFO"* ]]; then
591         ics_api_edp_get_type_2 200 type1 testdata/ics/ei-type-1.json testdata/ics/info-type-info.json
592     else
593         ics_api_edp_get_type_2 200 type1 testdata/ics/ei-type-1.json
594     fi
595     ics_api_edp_get_type_2 200 type2 testdata/ics/ei-type-2.json
596 fi
597
598 if [ $ICS_VERSION == "V1-1" ]; then
599     ics_api_edp_get_producer_ids 200 prod-a prod-b
600 else
601     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-a prod-b
602 fi
603
604 if [ $ICS_VERSION == "V1-1" ]; then
605     ics_api_edp_get_producer 200 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ics/ei-type-1.json
606     ics_api_edp_get_producer 200 prod-b $CB_JOB/prod-b $CB_SV/prod-b type2 testdata/ics/ei-type-2.json
607 else
608     ics_api_edp_get_producer_2 200 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
609     ics_api_edp_get_producer_2 200 prod-b $CB_JOB/prod-b $CB_SV/prod-b type2
610 fi
611
612 ics_api_edp_get_producer_status 200 prod-b ENABLED
613
614 ## Create job for prod-b
615 ##  job3 - prod-b
616 if [  -z "$FLAT_A1_EI" ]; then
617     ics_api_a1_put_job 201 type2 job3 $TARGET3 ricsim_g3_3 testdata/ics/job-template.json
618 else
619     ics_api_a1_put_job 201 job3 type2 $TARGET3 ricsim_g3_3 $STATUS3 testdata/ics/job-template.json
620 fi
621
622 prodstub_equal create/prod-b/job3 1
623
624 # Check the job data in the producer
625 if [ $ICS_VERSION == "V1-1" ]; then
626     prodstub_check_jobdata 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ics/job-template.json
627 else
628     if [[ "$ICS_FEATURE_LEVEL" != *"INFO-TYPES"* ]]; then
629         prodstub_check_jobdata_2 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ics/job-template.json
630     else
631         prodstub_check_jobdata_3 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ics/job-template.json
632     fi
633 fi
634
635 ics_api_a1_get_job_ids 200 type1 NOWNER job1 job2
636 ics_api_a1_get_job_ids 200 type2 NOWNER job3
637 ics_api_a1_get_job_ids 200 type1 ricsim_g3_1 job1
638 ics_api_a1_get_job_ids 200 type1 ricsim_g3_2 job2
639 ics_api_a1_get_job_ids 200 type2 ricsim_g3_3 job3
640
641 if [  -z "$FLAT_A1_EI" ]; then
642     ics_api_a1_get_job 200 type2 job3 $TARGET3 ricsim_g3_3 testdata/ics/job-template.json
643
644     ics_api_a1_get_job_status 200 type2 job3 ENABLED
645 else
646     ics_api_a1_get_job 200 job3 type2 $TARGET3 ricsim_g3_3 $STATUS3 testdata/ics/job-template.json
647
648     ics_api_a1_get_job_status 200 job3 ENABLED
649 fi
650
651 if [ $ICS_VERSION == "V1-1" ]; then
652     ics_api_edp_get_producer_jobs 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ics/job-template.json job2 type1 $TARGET2 ricsim_g3_2 testdata/ics/job-template.json
653     ics_api_edp_get_producer_jobs 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ics/job-template.json
654 else
655     ics_api_edp_get_producer_jobs_2 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ics/job-template.json job2 type1 $TARGET2 ricsim_g3_2 testdata/ics/job-template.json
656     ics_api_edp_get_producer_jobs_2 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ics/job-template.json
657 fi
658
659 ## Setup prod-c (no types)
660 if [ $ICS_VERSION == "V1-1" ]; then
661     ics_api_edp_put_producer 201 prod-c $CB_JOB/prod-c $CB_SV/prod-c NOTYPE
662 else
663     ics_api_edp_put_producer_2 201 prod-c $CB_JOB/prod-c $CB_SV/prod-c NOTYPE
664 fi
665
666 if [ $ICS_VERSION == "V1-1" ]; then
667     ics_api_edp_get_producer_ids 200 prod-a prod-b prod-c
668 else
669     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-a prod-b prod-c
670 fi
671
672 if [ $ICS_VERSION == "V1-1" ]; then
673     ics_api_edp_get_producer 200 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1 testdata/ics/ei-type-1.json
674     ics_api_edp_get_producer 200 prod-b $CB_JOB/prod-b $CB_SV/prod-b type2 testdata/ics/ei-type-2.json
675     ics_api_edp_get_producer 200 prod-c $CB_JOB/prod-c $CB_SV/prod-c EMPTY
676 else
677     ics_api_edp_get_producer_2 200 prod-a $CB_JOB/prod-a $CB_SV/prod-a type1
678     ics_api_edp_get_producer_2 200 prod-b $CB_JOB/prod-b $CB_SV/prod-b type2
679     ics_api_edp_get_producer_2 200 prod-c $CB_JOB/prod-c $CB_SV/prod-c EMPTY
680 fi
681
682 ics_api_edp_get_producer_status 200 prod-c ENABLED
683
684
685 ## Delete job3 and prod-b and re-create if different order
686
687 # Delete job then producer
688 ics_api_a1_get_job_ids 200 NOTYPE NOWNER job1 job2 job3
689 if [ $ICS_VERSION == "V1-1" ]; then
690     ics_api_edp_get_producer_ids 200 prod-a prod-b prod-c
691 else
692     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-a prod-b prod-c
693 fi
694
695 if [  -z "$FLAT_A1_EI" ]; then
696     ics_api_a1_delete_job 204 type2 job3
697 else
698     ics_api_a1_delete_job 204 job3
699 fi
700
701 ics_api_a1_get_job_ids 200 NOTYPE NOWNER job1 job2
702 if [ $ICS_VERSION == "V1-1" ]; then
703     ics_api_edp_get_producer_ids 200 prod-a prod-b prod-c
704 else
705     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-a prod-b prod-c
706 fi
707
708 ics_api_edp_delete_producer 204 prod-b
709
710 ics_api_edp_get_producer_status 404 prod-b
711
712 ics_api_a1_get_job_ids 200 NOTYPE NOWNER job1 job2
713 if [ $ICS_VERSION == "V1-1" ]; then
714     ics_api_edp_get_producer_ids 200 prod-a prod-c
715 else
716     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-a prod-c
717 fi
718
719 prodstub_equal delete/prod-b/job3 1
720
721 if [  -z "$FLAT_A1_EI" ]; then
722     ics_api_a1_put_job 404 type2 job3 $TARGET3 ricsim_g3_3 testdata/ics/job-template.json
723 else
724     if [ $ICS_VERSION == "V1-1" ]; then
725         ics_api_a1_put_job 404 job3 type2 $TARGET3 ricsim_g3_3 $STATUS3 testdata/ics/job-template.json
726     else
727         ics_api_a1_put_job 201 job3 type2 $TARGET3 ricsim_g3_3 $STATUS3 testdata/ics/job-template.json
728         ics_api_a1_get_job_status 200 job3 DISABLED
729     fi
730 fi
731
732 # Put producer then job
733 if [ $ICS_VERSION == "V1-1" ]; then
734     ics_api_edp_put_producer 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type2 testdata/ics/ei-type-2.json
735 else
736     ics_api_edp_put_producer_2 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type2
737 fi
738
739 ics_api_edp_get_producer_status 200 prod-b ENABLED
740
741 if [  -z "$FLAT_A1_EI" ]; then
742     ics_api_a1_put_job 201 type2 job3 $TARGET3 ricsim_g3_3 testdata/ics/job-template2.json
743     ics_api_a1_get_job_status 200 type2 job3 ENABLED
744 else
745     if [ $ICS_VERSION == "V1-1" ]; then
746         ics_api_a1_put_job 201 job3 type2 $TARGET3 ricsim_g3_3 $STATUS3 testdata/ics/job-template2.json
747     else
748         ics_api_a1_put_job 200 job3 type2 $TARGET3 ricsim_g3_3 $STATUS3 testdata/ics/job-template2.json
749     fi
750     ics_api_a1_get_job_status 200 job3 ENABLED
751 fi
752
753 if [ $ICS_VERSION == "V1-1" ]; then
754     prodstub_check_jobdata 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ics/job-template2.json
755 else
756     if [[ "$ICS_FEATURE_LEVEL" != *"INFO-TYPES"* ]]; then
757         prodstub_check_jobdata_2 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ics/job-template2.json
758     else
759         prodstub_check_jobdata_3 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ics/job-template2.json
760     fi
761 fi
762
763 ics_api_a1_get_job_ids 200 NOTYPE NOWNER job1 job2 job3
764 if [ $ICS_VERSION == "V1-1" ]; then
765     ics_api_edp_get_producer_ids 200 prod-a prod-b prod-c
766 else
767     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-a prod-b prod-c
768 fi
769
770 if [ $ICS_VERSION == "V1-1" ]; then
771     prodstub_equal create/prod-b/job3 2
772 else
773     prodstub_equal create/prod-b/job3 3
774 fi
775 prodstub_equal delete/prod-b/job3 1
776
777 # Delete only the producer
778 ics_api_edp_delete_producer 204 prod-b
779
780 ics_api_edp_get_producer_status 404 prod-b
781
782 ics_api_a1_get_job_ids 200 NOTYPE NOWNER job1 job2 job3
783 if [ $ICS_VERSION == "V1-1" ]; then
784     ics_api_edp_get_producer_ids 200 prod-a prod-c
785 else
786     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-a prod-c
787 fi
788
789 if [  -z "$FLAT_A1_EI" ]; then
790     ics_api_a1_get_job_status 200 type2 job3 DISABLED
791 else
792     ics_api_a1_get_job_status 200 job3 DISABLED
793 fi
794
795 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
796     cr_equal 0 received_callbacks 5 30
797     cr_equal 0 received_callbacks?id=type-status1 4
798     cr_equal 0 received_callbacks?id=job3-status 1
799     cr_api_check_all_ics_events 200 0 job3-status DISABLED
800 else
801     cr_equal 0 received_callbacks 1 30
802     cr_equal 0 received_callbacks?id=job3-status 1
803     cr_api_check_all_ics_events 200 0 job3-status DISABLED
804 fi
805
806 # Re-create the producer
807 if [ $ICS_VERSION == "V1-1" ]; then
808     ics_api_edp_put_producer 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type2 testdata/ics/ei-type-2.json
809 else
810     ics_api_edp_put_producer_2 201 prod-b $CB_JOB/prod-b $CB_SV/prod-b type2
811 fi
812
813 ics_api_edp_get_producer_status 200 prod-b ENABLED
814
815 if [  -z "$FLAT_A1_EI" ]; then
816     ics_api_a1_get_job_status 200 type2 job3 ENABLED
817 else
818     ics_api_a1_get_job_status 200 job3 ENABLED
819 fi
820
821 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
822     cr_equal 0 received_callbacks 6 30
823     cr_equal 0 received_callbacks?id=type-status1 4
824     cr_equal 0 received_callbacks?id=job3-status 2
825     cr_api_check_all_ics_events 200 0 job3-status ENABLED
826 else
827     cr_equal 0 received_callbacks 2 30
828     cr_equal 0 received_callbacks?id=job3-status 2
829     cr_api_check_all_ics_events 200 0 job3-status ENABLED
830 fi
831
832 if [ $ICS_VERSION == "V1-1" ]; then
833     prodstub_check_jobdata 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ics/job-template2.json
834 else
835     if [[ "$ICS_FEATURE_LEVEL" != *"INFO-TYPES"* ]]; then
836         prodstub_check_jobdata_2 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ics/job-template2.json
837     else
838         prodstub_check_jobdata_3 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ics/job-template2.json
839     fi
840 fi
841
842 ## Setup prod-d
843 if [ $ICS_VERSION == "V1-1" ]; then
844     ics_api_edp_put_producer 201 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4 testdata/ics/ei-type-4.json
845 else
846     ics_api_edp_put_type_2 201 type4 testdata/ics/ei-type-4.json
847     ics_api_edp_put_producer_2 201 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4
848 fi
849
850 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
851     cr_equal 0 received_callbacks 7 30
852     cr_equal 0 received_callbacks?id=type-status1 5
853     cr_api_check_all_ics_subscription_events 200 0 type-status1 type4 testdata/ics/ei-type-4.json REGISTERED
854 fi
855
856 ics_api_a1_get_job_ids 200 type4 NOWNER EMPTY
857
858 if [  -z "$FLAT_A1_EI" ]; then
859     ics_api_a1_put_job 201 type4 job8 $TARGET8 ricsim_g3_4 testdata/ics/job-template.json
860 else
861     ics_api_a1_put_job 201 job8 type4 $TARGET8 ricsim_g3_4 $STATUS8 testdata/ics/job-template.json
862 fi
863
864 if [ $ICS_VERSION == "V1-1" ]; then
865     prodstub_check_jobdata 200 prod-d job8 type4 $TARGET8 ricsim_g3_4 testdata/ics/job-template.json
866 else
867     if [[ "$ICS_FEATURE_LEVEL" != *"INFO-TYPES"* ]]; then
868         prodstub_check_jobdata_2 200 prod-d job8 type4 $TARGET8 ricsim_g3_4 testdata/ics/job-template.json
869     else
870         prodstub_check_jobdata_3 200 prod-d job8 type4 $TARGET8 ricsim_g3_4 testdata/ics/job-template.json
871     fi
872 fi
873
874 prodstub_equal create/prod-d/job8 1
875 prodstub_equal delete/prod-d/job8 0
876
877 ics_api_a1_get_job_ids 200 type4 NOWNER job8
878
879 if [  -z "$FLAT_A1_EI" ]; then
880     ics_api_a1_get_job_status 200 type4 job8 ENABLED
881 else
882     ics_api_a1_get_job_status 200 job8 ENABLED
883 fi
884
885 # Re-PUT the producer with zero types
886 if [ $ICS_VERSION == "V1-1" ]; then
887     ics_api_edp_put_producer 200 prod-d $CB_JOB/prod-d $CB_SV/prod-d NOTYPE
888 else
889     ics_api_edp_put_producer_2 200 prod-d $CB_JOB/prod-d $CB_SV/prod-d NOTYPE
890 fi
891
892 if [  -z "$FLAT_A1_EI" ]; then
893     ics_api_a1_get_job_ids 404 type4 NOWNER
894 else
895     ics_api_a1_get_job_ids 200 type4 NOWNER job8
896     ics_api_a1_get_job_ids 200 NOTYPE NOWNER job1 job2 job3 job8
897 fi
898
899 if [  -z "$FLAT_A1_EI" ]; then
900     ics_api_a1_get_job_status 200 type4 job8 DISABLED
901 else
902     ics_api_a1_get_job_status 200 job8 DISABLED
903 fi
904
905 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
906     cr_equal 0 received_callbacks 8 30
907     cr_equal 0 received_callbacks?id=type-status1 5
908     cr_equal 0 received_callbacks?id=job8-status 1
909     cr_api_check_all_ics_events 200 0 job8-status DISABLED
910 else
911     cr_equal 0 received_callbacks 3 30
912     cr_equal 0 received_callbacks?id=job8-status 1
913     cr_api_check_all_ics_events 200 0 job8-status DISABLED
914 fi
915
916 prodstub_equal create/prod-d/job8 1
917 prodstub_equal delete/prod-d/job8 0
918
919 ## Re-setup prod-d
920 if [ $ICS_VERSION == "V1-1" ]; then
921     ics_api_edp_put_producer 200 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4 testdata/ics/ei-type-4.json
922 else
923     ics_api_edp_put_type_2 200 type4 testdata/ics/ei-type-4.json
924     ics_api_edp_put_producer_2 200 prod-d $CB_JOB/prod-d $CB_SV/prod-d type4
925 fi
926
927 if [  -z "$FLAT_A1_EI" ]; then
928     ics_api_a1_get_job_ids 404 type4 NOWNER
929 else
930     ics_api_a1_get_job_ids 200 type4 NOWNER job8
931     ics_api_a1_get_job_ids 200 NOTYPE NOWNER job1 job2 job3 job8
932 fi
933
934 if [  -z "$FLAT_A1_EI" ]; then
935     ics_api_a1_get_job_status 200 type4 job8 ENABLED
936 else
937     ics_api_a1_get_job_status 200 job8 ENABLED
938 fi
939
940 ics_api_edp_get_producer_status 200 prod-a ENABLED
941 ics_api_edp_get_producer_status 200 prod-b ENABLED
942 ics_api_edp_get_producer_status 200 prod-c ENABLED
943 ics_api_edp_get_producer_status 200 prod-d ENABLED
944
945 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
946     cr_equal 0 received_callbacks 10 30
947     cr_equal 0 received_callbacks?id=type-status1 6
948     cr_api_check_all_ics_subscription_events 200 0 type-status1 type4 testdata/ics/ei-type-4.json REGISTERED
949
950     cr_equal 0 received_callbacks?id=job8-status 2
951     cr_api_check_all_ics_events 200 0 job8-status ENABLED
952 else
953     cr_equal 0 received_callbacks 4 30
954     cr_equal 0 received_callbacks?id=job8-status 2
955     cr_api_check_all_ics_events 200 0 job8-status ENABLED
956 fi
957
958 prodstub_equal create/prod-d/job8 2
959 prodstub_equal delete/prod-d/job8 0
960
961 ## Setup prod-e
962 if [ $ICS_VERSION == "V1-1" ]; then
963     ics_api_edp_put_producer 201 prod-e $CB_JOB/prod-e $CB_SV/prod-e type6 testdata/ics/ei-type-6.json
964 else
965     ics_api_edp_put_type_2 201 type6 testdata/ics/ei-type-6.json
966     ics_api_edp_put_producer_2 201 prod-e $CB_JOB/prod-e $CB_SV/prod-e type6
967 fi
968
969 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
970     cr_equal 0 received_callbacks 11 30
971     cr_equal 0 received_callbacks?id=type-status1 7
972     cr_api_check_all_ics_subscription_events 200 0 type-status1 type6 testdata/ics/ei-type-6.json REGISTERED
973 fi
974
975 ics_api_a1_get_job_ids 200 type6 NOWNER EMPTY
976
977 if [  -z "$FLAT_A1_EI" ]; then
978     ics_api_a1_put_job 201 type6 job10 $TARGET10 ricsim_g3_4 testdata/ics/job-template.json
979 else
980     ics_api_a1_put_job 201 job10 type6 $TARGET10 ricsim_g3_4 $STATUS10 testdata/ics/job-template.json
981 fi
982
983 if [ $ICS_VERSION == "V1-1" ]; then
984     prodstub_check_jobdata 200 prod-e job10 type6 $TARGET10 ricsim_g3_4 testdata/ics/job-template.json
985 else
986     if [[ "$ICS_FEATURE_LEVEL" != *"INFO-TYPES"* ]]; then
987         prodstub_check_jobdata_2 200 prod-e job10 type6 $TARGET10 ricsim_g3_4 testdata/ics/job-template.json
988     else
989         prodstub_check_jobdata_3 200 prod-e job10 type6 $TARGET10 ricsim_g3_4 testdata/ics/job-template.json
990     fi
991 fi
992
993 prodstub_equal create/prod-e/job10 1
994 prodstub_equal delete/prod-e/job10 0
995
996 ics_api_a1_get_job_ids 200 type6 NOWNER job10
997
998 if [  -z "$FLAT_A1_EI" ]; then
999     ics_api_a1_get_job_status 200 type6 job10 ENABLED
1000 else
1001     ics_api_a1_get_job_status 200 job10 ENABLED
1002 fi
1003
1004 ## Setup prod-f
1005 if [ $ICS_VERSION == "V1-1" ]; then
1006     ics_api_edp_put_producer 201 prod-f $CB_JOB/prod-f $CB_SV/prod-f type6 testdata/ics/ei-type-6.json
1007 else
1008     ics_api_edp_put_type_2 200 type6 testdata/ics/ei-type-6.json
1009     ics_api_edp_put_producer_2 201 prod-f $CB_JOB/prod-f $CB_SV/prod-f type6
1010 fi
1011
1012 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1013     cr_equal 0 received_callbacks 12 30
1014     cr_equal 0 received_callbacks?id=type-status1 8
1015     cr_api_check_all_ics_subscription_events 200 0 type-status1 type6 testdata/ics/ei-type-6.json REGISTERED
1016 fi
1017
1018 ics_api_a1_get_job_ids 200 type6 NOWNER job10
1019
1020 if [ $ICS_VERSION == "V1-1" ]; then
1021     prodstub_check_jobdata 200 prod-f job10 type6 $TARGET10 ricsim_g3_4 testdata/ics/job-template.json
1022 else
1023     if [[ "$ICS_FEATURE_LEVEL" != *"INFO-TYPES"* ]]; then
1024         prodstub_check_jobdata_2 200 prod-f job10 type6 $TARGET10 ricsim_g3_4 testdata/ics/job-template.json
1025     else
1026         prodstub_check_jobdata_3 200 prod-f job10 type6 $TARGET10 ricsim_g3_4 testdata/ics/job-template.json
1027     fi
1028 fi
1029
1030 prodstub_equal create/prod-f/job10 1
1031 prodstub_equal delete/prod-f/job10 0
1032
1033 ics_api_a1_get_job_ids 200 type6 NOWNER job10
1034
1035 if [  -z "$FLAT_A1_EI" ]; then
1036     ics_api_a1_get_job_status 200 type6 job10 ENABLED
1037 else
1038     ics_api_a1_get_job_status 200 job10 ENABLED
1039 fi
1040
1041 ## Status updates prod-a and jobs
1042
1043 if [ $ICS_VERSION == "V1-1" ]; then
1044     ics_api_edp_get_producer_ids 200 prod-a prod-b prod-c prod-d prod-e prod-f
1045 else
1046     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-a prod-b prod-c prod-d prod-e prod-f
1047 fi
1048
1049 ics_api_edp_get_producer_status 200 prod-a ENABLED
1050 ics_api_edp_get_producer_status 200 prod-b ENABLED
1051 ics_api_edp_get_producer_status 200 prod-c ENABLED
1052 ics_api_edp_get_producer_status 200 prod-d ENABLED
1053 ics_api_edp_get_producer_status 200 prod-e ENABLED
1054 ics_api_edp_get_producer_status 200 prod-f ENABLED
1055
1056 # Arm producer prod-a for supervision failure
1057 prodstub_arm_producer 200 prod-a 400
1058
1059 # Wait for producer prod-a to go disabled
1060 ics_api_edp_get_producer_status 200 prod-a DISABLED 360
1061
1062 if [ $ICS_VERSION == "V1-1" ]; then
1063     ics_api_edp_get_producer_ids 200 prod-a prod-b prod-c prod-d  prod-e prod-f
1064 else
1065     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-a prod-b prod-c prod-d  prod-e prod-f
1066 fi
1067
1068 ics_api_edp_get_producer_status 200 prod-a DISABLED
1069 ics_api_edp_get_producer_status 200 prod-b ENABLED
1070 ics_api_edp_get_producer_status 200 prod-c ENABLED
1071 ics_api_edp_get_producer_status 200 prod-d ENABLED
1072 ics_api_edp_get_producer_status 200 prod-e ENABLED
1073 ics_api_edp_get_producer_status 200 prod-f ENABLED
1074
1075
1076 if [  -z "$FLAT_A1_EI" ]; then
1077     ics_api_a1_get_job_status 200 type1 job1 ENABLED
1078     ics_api_a1_get_job_status 200 type1 job2 ENABLED
1079     ics_api_a1_get_job_status 200 type2 job3 ENABLED
1080     ics_api_a1_get_job_status 200 type4 job8 ENABLED
1081     ics_api_a1_get_job_status 200 type6 job10 ENABLED
1082 else
1083     ics_api_a1_get_job_status 200 job1 ENABLED
1084     ics_api_a1_get_job_status 200 job2 ENABLED
1085     ics_api_a1_get_job_status 200 job3 ENABLED
1086     ics_api_a1_get_job_status 200 job8 ENABLED
1087     ics_api_a1_get_job_status 200 job10 ENABLED
1088 fi
1089
1090 # Arm producer prod-a for supervision
1091 prodstub_arm_producer 200 prod-a 200
1092
1093 # Wait for producer prod-a to go enabled
1094 ics_api_edp_get_producer_status 200 prod-a ENABLED 360
1095
1096 if [ $ICS_VERSION == "V1-1" ]; then
1097     ics_api_edp_get_producer_ids 200 prod-a prod-b prod-c prod-d prod-e prod-f
1098 else
1099     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-a prod-b prod-c prod-d prod-e prod-f
1100 fi
1101
1102 ics_api_edp_get_producer_status 200 prod-a ENABLED
1103 ics_api_edp_get_producer_status 200 prod-b ENABLED
1104 ics_api_edp_get_producer_status 200 prod-c ENABLED
1105 ics_api_edp_get_producer_status 200 prod-d ENABLED
1106 ics_api_edp_get_producer_status 200 prod-e ENABLED
1107 ics_api_edp_get_producer_status 200 prod-f ENABLED
1108
1109 if [  -z "$FLAT_A1_EI" ]; then
1110     ics_api_a1_get_job_status 200 type1 job1 ENABLED
1111     ics_api_a1_get_job_status 200 type1 job2 ENABLED
1112     ics_api_a1_get_job_status 200 type2 job3 ENABLED
1113     ics_api_a1_get_job_status 200 type4 job8 ENABLED
1114     ics_api_a1_get_job_status 200 type6 job10 ENABLED
1115 else
1116     ics_api_a1_get_job_status 200 job1 ENABLED
1117     ics_api_a1_get_job_status 200 job2 ENABLED
1118     ics_api_a1_get_job_status 200 job3 ENABLED
1119     ics_api_a1_get_job_status 200 job8 ENABLED
1120     ics_api_a1_get_job_status 200 job10 ENABLED
1121 fi
1122
1123 # Arm producer prod-a for supervision failure
1124 prodstub_arm_producer 200 prod-a 400
1125
1126 # Wait for producer prod-a to go disabled
1127 ics_api_edp_get_producer_status 200 prod-a DISABLED 360
1128
1129 if [ $ICS_VERSION == "V1-1" ]; then
1130     ics_api_edp_get_producer_ids 200 prod-a prod-b prod-c prod-d prod-e prod-f
1131 else
1132     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-a prod-b prod-c prod-d prod-e prod-f
1133 fi
1134
1135 ics_api_edp_get_producer_status 200 prod-a DISABLED
1136 ics_api_edp_get_producer_status 200 prod-b ENABLED
1137 ics_api_edp_get_producer_status 200 prod-c ENABLED
1138 ics_api_edp_get_producer_status 200 prod-d ENABLED
1139 ics_api_edp_get_producer_status 200 prod-e ENABLED
1140 ics_api_edp_get_producer_status 200 prod-f ENABLED
1141
1142 if [  -z "$FLAT_A1_EI" ]; then
1143     ics_api_a1_get_job_status 200 type1 job1 ENABLED
1144     ics_api_a1_get_job_status 200 type1 job2 ENABLED
1145     ics_api_a1_get_job_status 200 type2 job3 ENABLED
1146     ics_api_a1_get_job_status 200 type4 job8 ENABLED
1147     ics_api_a1_get_job_status 200 type6 job10 ENABLED
1148 else
1149     ics_api_a1_get_job_status 200 job1 ENABLED
1150     ics_api_a1_get_job_status 200 job2 ENABLED
1151     ics_api_a1_get_job_status 200 job3 ENABLED
1152     ics_api_a1_get_job_status 200 job8 ENABLED
1153     ics_api_a1_get_job_status 200 job10 ENABLED
1154 fi
1155
1156 # Wait for producer prod-a to be removed
1157 if [[ "$ICS_FEATURE_LEVEL" == *"INFO-TYPES"* ]]; then
1158     ics_equal json:data-producer/v1/info-producers 5 1000
1159 else
1160     ics_equal json:ei-producer/v1/eiproducers 5 1000
1161 fi
1162
1163 if [ $ICS_VERSION == "V1-1" ]; then
1164     ics_api_edp_get_producer_ids 200 prod-b prod-c prod-d prod-e prod-f
1165 else
1166     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-b prod-c prod-d prod-e prod-f
1167 fi
1168
1169
1170 ics_api_edp_get_producer_status 404 prod-a
1171 ics_api_edp_get_producer_status 200 prod-b ENABLED
1172 ics_api_edp_get_producer_status 200 prod-c ENABLED
1173 ics_api_edp_get_producer_status 200 prod-d ENABLED
1174 ics_api_edp_get_producer_status 200 prod-e ENABLED
1175 ics_api_edp_get_producer_status 200 prod-f ENABLED
1176
1177 if [  -z "$FLAT_A1_EI" ]; then
1178     ics_api_a1_get_job_status 200 type1 job1 DISABLED
1179     ics_api_a1_get_job_status 200 type1 job2 DISABLED
1180     ics_api_a1_get_job_status 200 type2 job3 ENABLED
1181     ics_api_a1_get_job_status 200 type4 job8 ENABLED
1182     ics_api_a1_get_job_status 200 type6 job10 ENABLED
1183 else
1184     ics_api_a1_get_job_status 200 job1 DISABLED
1185     ics_api_a1_get_job_status 200 job2 DISABLED
1186     ics_api_a1_get_job_status 200 job3 ENABLED
1187     ics_api_a1_get_job_status 200 job8 ENABLED
1188     ics_api_a1_get_job_status 200 job10 ENABLED
1189 fi
1190
1191 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1192     cr_equal 0 received_callbacks 14 30
1193 else
1194     cr_equal 0 received_callbacks 6 30
1195 fi
1196
1197 cr_equal 0 received_callbacks?id=job1-status 1
1198 cr_equal 0 received_callbacks?id=job2-status 1
1199
1200 cr_api_check_all_ics_events 200 0 job1-status DISABLED
1201 cr_api_check_all_ics_events 200 0 job2-status DISABLED
1202
1203
1204 # Arm producer prod-e for supervision failure
1205 prodstub_arm_producer 200 prod-e 400
1206
1207 ics_api_edp_get_producer_status 200 prod-e DISABLED 1000
1208
1209 if [ $ICS_VERSION == "V1-1" ]; then
1210     ics_api_edp_get_producer_ids 200 prod-b prod-c prod-d prod-e prod-f
1211 else
1212     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-b prod-c prod-d prod-e prod-f
1213 fi
1214
1215 ics_api_edp_get_producer_status 404 prod-a
1216 ics_api_edp_get_producer_status 200 prod-b ENABLED
1217 ics_api_edp_get_producer_status 200 prod-c ENABLED
1218 ics_api_edp_get_producer_status 200 prod-d ENABLED
1219 ics_api_edp_get_producer_status 200 prod-e DISABLED
1220 ics_api_edp_get_producer_status 200 prod-f ENABLED
1221
1222 if [  -z "$FLAT_A1_EI" ]; then
1223     ics_api_a1_get_job_status 200 type1 job1 DISABLED
1224     ics_api_a1_get_job_status 200 type1 job2 DISABLED
1225     ics_api_a1_get_job_status 200 type2 job3 ENABLED
1226     ics_api_a1_get_job_status 200 type4 job8 ENABLED
1227     ics_api_a1_get_job_status 200 type6 job10 ENABLED
1228 else
1229     ics_api_a1_get_job_status 200 job1 DISABLED
1230     ics_api_a1_get_job_status 200 job2 DISABLED
1231     ics_api_a1_get_job_status 200 job3 ENABLED
1232     ics_api_a1_get_job_status 200 job8 ENABLED
1233     ics_api_a1_get_job_status 200 job10 ENABLED
1234 fi
1235
1236 #Disable create for job10 in prod-e
1237 prodstub_arm_job_create 200 prod-e job10 400
1238
1239 #Update tjob 10 - only prod-f will be updated
1240 if [  -z "$FLAT_A1_EI" ]; then
1241     ics_api_a1_put_job 200 type6 job10 $TARGET10 ricsim_g3_4 testdata/ics/job-template2.json
1242 else
1243     ics_api_a1_put_job 200 job10 type6 $TARGET10 ricsim_g3_4 $STATUS10 testdata/ics/job-template2.json
1244 fi
1245 #Reset producer and job responses
1246 prodstub_arm_producer 200 prod-e 200
1247 prodstub_arm_job_create 200 prod-e job10 200
1248
1249 ics_api_edp_get_producer_status 200 prod-e ENABLED 360
1250
1251 if [ $ICS_VERSION == "V1-1" ]; then
1252     ics_api_edp_get_producer_ids 200 prod-b prod-c prod-d prod-e prod-f
1253 else
1254     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-b prod-c prod-d prod-e prod-f
1255 fi
1256
1257 #Wait for job to be updated
1258 sleep_wait 120
1259
1260 if [ $ICS_VERSION == "V1-1" ]; then
1261     prodstub_check_jobdata 200 prod-f job10 type6 $TARGET10 ricsim_g3_4 testdata/ics/job-template2.json
1262 else
1263     if [[ "$ICS_FEATURE_LEVEL" != *"INFO-TYPES"* ]]; then
1264         prodstub_check_jobdata_2 200 prod-f job10 type6 $TARGET10 ricsim_g3_4 testdata/ics/job-template2.json
1265     else
1266         prodstub_check_jobdata_3 200 prod-f job10 type6 $TARGET10 ricsim_g3_4 testdata/ics/job-template2.json
1267     fi
1268 fi
1269
1270 prodstub_arm_producer 200 prod-f 400
1271
1272 ics_api_edp_get_producer_status 200 prod-f DISABLED 360
1273
1274 if [[ "$ICS_FEATURE_LEVEL" == *"INFO-TYPES"* ]]; then
1275     ics_equal json:data-producer/v1/info-producers 4 1000
1276 else
1277     ics_equal json:ei-producer/v1/eiproducers 4 1000
1278 fi
1279
1280 if [ $ICS_VERSION == "V1-1" ]; then
1281     ics_api_edp_get_producer_ids 200 prod-b prod-c prod-d prod-e
1282 else
1283     ics_api_edp_get_producer_ids_2 200 NOTYPE prod-b prod-c prod-d prod-e
1284 fi
1285
1286 ics_api_edp_get_producer_status 404 prod-a
1287 ics_api_edp_get_producer_status 200 prod-b ENABLED
1288 ics_api_edp_get_producer_status 200 prod-c ENABLED
1289 ics_api_edp_get_producer_status 200 prod-d ENABLED
1290 ics_api_edp_get_producer_status 200 prod-e ENABLED
1291 ics_api_edp_get_producer_status 404 prod-f
1292
1293 if [  -z "$FLAT_A1_EI" ]; then
1294     ics_api_a1_get_job_status 200 type1 job1 DISABLED
1295     ics_api_a1_get_job_status 200 type1 job2 DISABLED
1296     ics_api_a1_get_job_status 200 type2 job3 ENABLED
1297     ics_api_a1_get_job_status 200 type4 job8 ENABLED
1298     ics_api_a1_get_job_status 200 type6 job10 ENABLED
1299 else
1300     ics_api_a1_get_job_status 200 job1 DISABLED
1301     ics_api_a1_get_job_status 200 job2 DISABLED
1302     ics_api_a1_get_job_status 200 job3 ENABLED
1303     ics_api_a1_get_job_status 200 job8 ENABLED
1304     ics_api_a1_get_job_status 200 job10 ENABLED
1305 fi
1306
1307 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1308     cr_equal 0 received_callbacks 14 30
1309 else
1310     cr_equal 0 received_callbacks 6 30
1311 fi
1312
1313
1314 if [[ "$ICS_FEATURE_LEVEL" != *"INFO-TYPES"* ]]; then
1315
1316     # End test if info types is not impl in tested version
1317     check_ics_logs
1318
1319     store_logs END
1320
1321     #### TEST COMPLETE ####
1322
1323     print_result
1324
1325     auto_clean_environment
1326 fi
1327
1328
1329 ############################################
1330 # Test of info types
1331 ############################################
1332
1333 ### Setup prodstub sim to accept calls for producers, info types and jobs
1334 ## prod-ia type101
1335 ## prod-ib type101 and type102
1336 ## prod-ic no-type
1337 ## prod-id type104
1338 ## prod-ie type106
1339 ## prod-if type106
1340 ## prod-ig type150  (configured later)
1341 ## prod-ig type160  (configured later)
1342
1343 ## job101 -> prod-ia
1344 ## job102 -> prod-ia
1345 ## job103 -> prod-ib
1346 ## job104 -> prod-ia
1347 ## job106 -> prod-ib
1348 ## job108 -> prod-id
1349 ## job110 -> prod-ie and prod-if
1350 ## job150 -> prod-ig  (configured later)
1351
1352 prodstub_arm_producer 200 prod-ia
1353 prodstub_arm_producer 200 prod-ib
1354 prodstub_arm_producer 200 prod-ic
1355 prodstub_arm_producer 200 prod-id
1356 prodstub_arm_producer 200 prod-ie
1357 prodstub_arm_producer 200 prod-if
1358
1359 prodstub_arm_type 200 prod-ia type101
1360 prodstub_arm_type 200 prod-ib type102
1361 prodstub_arm_type 200 prod-ib type103
1362 prodstub_arm_type 200 prod-id type104
1363 prodstub_arm_type 200 prod-ie type106
1364 prodstub_arm_type 200 prod-if type106
1365
1366 prodstub_disarm_type 200 prod-ib type103
1367 prodstub_arm_type 200 prod-ib type101
1368 prodstub_disarm_type 200 prod-ib type101
1369
1370
1371 prodstub_arm_job_create 200 prod-ia job101
1372 prodstub_arm_job_create 200 prod-ia job102
1373 prodstub_arm_job_create 200 prod-ib job103
1374
1375 prodstub_arm_job_delete 200 prod-ia job101
1376 prodstub_arm_job_delete 200 prod-ia job102
1377 prodstub_arm_job_delete 200 prod-ib job103
1378
1379 prodstub_arm_job_create 200 prod-ib job104
1380 prodstub_arm_job_create 200 prod-ia job104
1381
1382 prodstub_arm_job_create 200 prod-ib job106
1383
1384 prodstub_arm_job_create 200 prod-id job108
1385
1386 prodstub_arm_job_create 200 prod-ie job110
1387 prodstub_arm_job_create 200 prod-if job110
1388
1389
1390 # NOTE: types, jobs and producers are still present related to eitypes
1391
1392
1393 ### Initial tests - no config made
1394 ### GET: type ids, types, producer ids, producers, job ids, jobs
1395 ### DELETE: jobs
1396 ics_api_idc_get_type_ids 200 type1 type2 type4 type6
1397 ics_api_idc_get_type 404 test-type
1398
1399 ics_api_edp_get_type_ids 200 type1 type2 type4 type6
1400 ics_api_edp_get_type_2 404 test-type
1401
1402 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-b prod-c prod-d prod-e
1403 ics_api_edp_get_producer_2 404 test-prod
1404 ics_api_edp_get_producer_status 404 test-prod
1405
1406 ics_api_edp_delete_producer 404 test-prod
1407
1408 ics_api_idc_get_job_ids 200 test-type NOWNER EMPTY
1409 ics_api_idc_get_job_ids 200 test-type test-owner EMPTY
1410
1411 ics_api_idc_get_job 404 test-job
1412
1413 ics_api_idc_get_job_status2 404 test-job
1414
1415 ics_api_idc_delete_job 404 test-job
1416
1417 ics_api_edp_get_producer_jobs_2 404 test-prod
1418
1419 ics_api_edp_get_type_2 404 test-type
1420 ics_api_edp_delete_type_2 404 test-type
1421
1422 ### Setup of producer/job and testing apis ###
1423
1424 ## Setup prod-ia
1425 ics_api_edp_get_type_ids 200 type1 type2 type4 type6
1426 ics_api_edp_get_type_2 404 type101
1427 ics_api_edp_put_producer_2 404 prod-ia $CB_JOB/prod-ia $CB_SV/prod-ia type101
1428
1429 # Create type, delete and create again
1430 ics_api_edp_put_type_2 201 type101 testdata/ics/info-type-1.json
1431 ics_api_edp_get_type_2 200 type101
1432 ics_api_edp_get_type_ids 200 type101 type1 type2 type4 type6
1433 ics_api_edp_delete_type_2 204 type101
1434 ics_api_edp_get_type_2 404 type101
1435 ics_api_edp_get_type_ids 200 type1 type2 type4 type6
1436 ics_api_edp_put_type_2 201 type101 testdata/ics/info-type-1.json
1437 ics_api_edp_get_type_ids 200 type101 type1 type2 type4 type6
1438 ics_api_edp_get_type_2 200 type101 testdata/ics/info-type-1.json
1439
1440 ics_api_edp_put_producer_2 201 prod-ia $CB_JOB/prod-ia $CB_SV/prod-ia type101
1441 ics_api_edp_put_producer_2 200 prod-ia $CB_JOB/prod-ia $CB_SV/prod-ia type101
1442
1443 if [[ "$ICS_FEATURE_LEVEL" == *"RESP_CODE_CHANGE_1" ]]; then
1444     ics_api_edp_delete_type_2 409 type101
1445 else
1446     ics_api_edp_delete_type_2 406 type101
1447 fi
1448
1449 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1450     cr_equal 0 received_callbacks 17 30
1451     cr_equal 0 received_callbacks?id=type-status1 11
1452     cr_api_check_all_ics_subscription_events 200 0 type-status1 type101 testdata/ics/info-type-1.json REGISTERED type101 testdata/ics/info-type-1.json DEREGISTERED type101 testdata/ics/info-type-1.json REGISTERED
1453 else
1454     cr_equal 0 received_callbacks 6
1455 fi
1456
1457 ics_api_edp_get_type_ids 200 type101 type1 type2 type4 type6
1458 ics_api_edp_get_type_2 200 type101 testdata/ics/info-type-1.json
1459
1460 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-b prod-c prod-d prod-e
1461 ics_api_edp_get_producer_ids_2 200 type101 prod-ia
1462 ics_api_edp_get_producer_ids_2 200 type102 EMPTY
1463
1464 ics_api_edp_get_producer_2 200 prod-ia $CB_JOB/prod-ia $CB_SV/prod-ia type101
1465
1466 ics_api_edp_get_producer_status 200 prod-ia ENABLED
1467
1468 ics_api_idc_get_job_ids 200 type101 NOWNER EMPTY
1469 ics_api_idc_get_job_ids 200 type101 test-owner EMPTY
1470
1471 ics_api_idc_get_job 404 test-job
1472
1473 ics_api_idc_get_job_status2 404 test-job
1474 ics_api_edp_get_producer_jobs_2 200 prod-ia EMPTY
1475
1476 ## Create a job for prod-ia
1477 ## job101 - prod-ia
1478 ics_api_idc_put_job 201 job101 type101 $TARGET101 info-owner-1 $INFOSTATUS101 testdata/ics/job-template.json VALIDATE
1479
1480 # Check the job data in the producer
1481 prodstub_check_jobdata_3 200 prod-ia job101 type101 $TARGET101 info-owner-1 testdata/ics/job-template.json
1482
1483 ics_api_idc_get_job_ids 200 type101 NOWNER job101
1484 ics_api_idc_get_job_ids 200 type101 info-owner-1 job101
1485
1486 ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job1 job2 job3 job8 job10
1487
1488 ics_api_idc_get_job 200 job101 type101 $TARGET101 info-owner-1 $INFOSTATUS101 testdata/ics/job-template.json
1489
1490 ics_api_idc_get_job_status2 200 job101 ENABLED  1 prod-ia
1491
1492 prodstub_equal create/prod-ia/job101 1
1493
1494 ics_api_edp_get_producer_jobs_2 200 prod-ia job101 type101 $TARGET101 info-owner-1 testdata/ics/job-template.json
1495
1496 ## Create a second job for prod-ia
1497 ## job102 - prod-ia
1498 ics_api_idc_put_job 201 job102 type101 $TARGET102 info-owner-2 $INFOSTATUS102 testdata/ics/job-template.json  VALIDATE
1499
1500 # Check the job data in the producer
1501 prodstub_check_jobdata_3 200 prod-ia job102 type101 $TARGET102 info-owner-2 testdata/ics/job-template.json
1502 ics_api_idc_get_job_ids 200 type101 NOWNER job101 job102
1503 ics_api_idc_get_job_ids 200 type101 info-owner-1 job101
1504 ics_api_idc_get_job_ids 200 type101 info-owner-2 job102
1505 ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job1 job2 job3 job8 job10
1506
1507 ics_api_idc_get_job 200 job102 type101 $TARGET102 info-owner-2 $INFOSTATUS102 testdata/ics/job-template.json
1508
1509 ics_api_idc_get_job_status2 200 job102 ENABLED 1 prod-ia
1510
1511 prodstub_equal create/prod-ia/job102 1
1512
1513 ics_api_edp_get_producer_jobs_2 200 prod-ia job101 type101 $TARGET101 info-owner-1 testdata/ics/job-template.json job102 type101 $TARGET102 info-owner-2 testdata/ics/job-template.json
1514
1515
1516 ## Setup prod-ib
1517 ics_api_edp_put_type_2 201 type102 testdata/ics/info-type-2.json
1518 ics_api_edp_put_producer_2 201 prod-ib $CB_JOB/prod-ib $CB_SV/prod-ib type102
1519
1520 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1521     cr_equal 0 received_callbacks 18 30
1522     cr_equal 0 received_callbacks?id=type-status1 12
1523     cr_api_check_all_ics_subscription_events 200 0 type-status1 type102 testdata/ics/info-type-2.json REGISTERED
1524 else
1525     cr_equal 0 received_callbacks 6
1526 fi
1527
1528 ics_api_idc_get_type_ids 200 type101 type102 type1 type2 type4 type6
1529
1530 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1531     ics_api_idc_get_type 200 type101 testdata/ics/info-type-1.json ENABLED 1
1532
1533     ics_api_idc_get_type 200 type102 testdata/ics/info-type-2.json ENABLED 1
1534 else
1535     ics_api_idc_get_type 200 type101 testdata/ics/info-type-1.json
1536
1537     ics_api_idc_get_type 200 type102 testdata/ics/info-type-2.json
1538 fi
1539
1540 ics_api_edp_get_type_ids 200 type101 type102 type1 type2 type4 type6
1541 ics_api_edp_get_type_2 200 type101 testdata/ics/info-type-1.json
1542 ics_api_edp_get_type_2 200 type102 testdata/ics/info-type-2.json
1543
1544 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-b prod-c prod-d prod-e
1545
1546 ics_api_edp_get_producer_2 200 prod-ia $CB_JOB/prod-ia $CB_SV/prod-ia type101
1547 ics_api_edp_get_producer_2 200 prod-ib $CB_JOB/prod-ib $CB_SV/prod-ib type102
1548
1549 ics_api_edp_get_producer_status 200 prod-ib ENABLED
1550
1551 ## Create job for prod-ib
1552 ##  job103 - prod-ib
1553 ics_api_idc_put_job 201 job103 type102 $TARGET103 info-owner-3 $INFOSTATUS103 testdata/ics/job-template.json  VALIDATE
1554
1555 prodstub_equal create/prod-ib/job103 1
1556
1557 # Check the job data in the producer
1558 prodstub_check_jobdata_3 200 prod-ib job103 type102 $TARGET103 info-owner-3 testdata/ics/job-template.json
1559
1560 ics_api_idc_get_job_ids 200 type101 NOWNER job101 job102
1561 ics_api_idc_get_job_ids 200 type102 NOWNER job103
1562 ics_api_idc_get_job_ids 200 type101 info-owner-1 job101
1563 ics_api_idc_get_job_ids 200 type101 info-owner-2 job102
1564 ics_api_idc_get_job_ids 200 type102 info-owner-3 job103
1565
1566 ics_api_idc_get_job 200 job103 type102 $TARGET103 info-owner-3 $INFOSTATUS103 testdata/ics/job-template.json
1567
1568 ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
1569
1570 ics_api_edp_get_producer_jobs_2 200 prod-ia job101 type101 $TARGET101 info-owner-1 testdata/ics/job-template.json job102 type101 $TARGET102 info-owner-2 testdata/ics/job-template.json
1571 ics_api_edp_get_producer_jobs_2 200 prod-ib job103 type102 $TARGET103 info-owner-3 testdata/ics/job-template.json
1572
1573 ## Setup prod-ic (no types)
1574 ics_api_edp_put_producer_2 201 prod-ic $CB_JOB/prod-ic $CB_SV/prod-ic NOTYPE
1575
1576 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-b prod-c prod-d prod-e
1577
1578 ics_api_edp_get_producer_2 200 prod-ia $CB_JOB/prod-ia $CB_SV/prod-ia type101
1579 ics_api_edp_get_producer_2 200 prod-ib $CB_JOB/prod-ib $CB_SV/prod-ib type102
1580 ics_api_edp_get_producer_2 200 prod-ic $CB_JOB/prod-ic $CB_SV/prod-ic EMPTY
1581
1582 ics_api_edp_get_producer_status 200 prod-ic ENABLED
1583
1584
1585 ## Delete job103 and prod-ib and re-create if different order
1586
1587 # Delete job then producer
1588 ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job103 job1 job2 job3 job8 job10
1589 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-b prod-c prod-d prod-e
1590
1591 ics_api_idc_delete_job 204 job103
1592
1593 ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job1 job2 job3 job8 job10
1594 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-b prod-c prod-d prod-e
1595
1596 ics_api_edp_delete_producer 204 prod-ib
1597
1598 ics_api_edp_get_producer_status 404 prod-ib
1599
1600 ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job1 job2 job3 job8 job10
1601 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ic prod-b prod-c prod-d prod-e
1602
1603 prodstub_equal delete/prod-ib/job103 1
1604
1605 ics_api_idc_put_job 201 job103 type102 $TARGET103 info-owner-3 $INFOSTATUS103 testdata/ics/job-template.json VALIDATE
1606 ics_api_idc_get_job_status2 200 job103 DISABLED EMPTYPROD
1607
1608 # Put producer then job
1609 ics_api_edp_put_producer_2 201 prod-ib $CB_JOB/prod-ib $CB_SV/prod-ib type102
1610
1611 ics_api_edp_get_producer_status 200 prod-ib ENABLED
1612
1613 ics_api_idc_put_job 200 job103 type102 $TARGET103 info-owner-3 $INFOSTATUS103 testdata/ics/job-template2.json  VALIDATE
1614 ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
1615
1616 prodstub_check_jobdata_3 200 prod-ib job103 type102 $TARGET103 info-owner-3 testdata/ics/job-template2.json
1617
1618 ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job103 job1 job2 job3 job8 job10
1619 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-b prod-c prod-d prod-e
1620
1621 prodstub_equal create/prod-ib/job103 3
1622 prodstub_equal delete/prod-ib/job103 1
1623
1624 # Delete only the producer
1625 ics_api_edp_delete_producer 204 prod-ib
1626
1627 ics_api_edp_get_producer_status 404 prod-ib
1628
1629 ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job103  job1 job2 job3 job8 job10
1630 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ic prod-b prod-c prod-d prod-e
1631
1632 ics_api_idc_get_job_status2 200 job103 DISABLED EMPTYPROD
1633
1634 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1635     cr_equal 0 received_callbacks 19 30
1636
1637     cr_equal 0 received_callbacks?id=info-job103-status 1
1638     cr_api_check_all_ics_events 200 0 info-job103-status DISABLED
1639 else
1640     cr_equal 0 received_callbacks 7 30
1641     cr_equal 0 received_callbacks?id=info-job103-status 1
1642     cr_api_check_all_ics_events 200 0 info-job103-status DISABLED
1643 fi
1644
1645 # Re-create the producer
1646 ics_api_edp_put_producer_2 201 prod-ib $CB_JOB/prod-ib $CB_SV/prod-ib type102
1647
1648 ics_api_edp_get_producer_status 200 prod-ib ENABLED
1649
1650 ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
1651
1652 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1653     cr_equal 0 received_callbacks 20 30
1654     cr_equal 0 received_callbacks?id=info-job103-status 2
1655     cr_api_check_all_ics_events 200 0 info-job103-status ENABLED
1656 else
1657     cr_equal 0 received_callbacks 8 30
1658     cr_equal 0 received_callbacks?id=info-job103-status 2
1659     cr_api_check_all_ics_events 200 0 info-job103-status ENABLED
1660 fi
1661
1662 prodstub_check_jobdata_3 200 prod-ib job103 type102 $TARGET103 info-owner-3 testdata/ics/job-template2.json
1663
1664 ## Setup prod-id
1665 ics_api_edp_put_type_2 201 type104 testdata/ics/info-type-4.json
1666 ics_api_edp_put_producer_2 201 prod-id $CB_JOB/prod-id $CB_SV/prod-id type104
1667
1668 ics_api_idc_get_job_ids 200 type104 NOWNER EMPTY
1669
1670 ics_api_idc_put_job 201 job108 type104 $TARGET108 info-owner-4 $INFOSTATUS108 testdata/ics/job-template.json  VALIDATE
1671
1672 prodstub_check_jobdata_3 200 prod-id job108 type104 $TARGET108 info-owner-4 testdata/ics/job-template.json
1673
1674 prodstub_equal create/prod-id/job108 1
1675 prodstub_equal delete/prod-id/job108 0
1676
1677 ics_api_idc_get_job_ids 200 type104 NOWNER job108
1678
1679 ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
1680
1681 # Re-PUT the producer with zero types
1682 ics_api_edp_put_producer_2 200 prod-id $CB_JOB/prod-id $CB_SV/prod-id NOTYPE
1683
1684 ics_api_idc_get_job_ids 200 type104 NOWNER job108
1685 ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job103 job108  job1 job2 job3 job8 job10
1686
1687 ics_api_idc_get_job_status2 200 job108 DISABLED EMPTYPROD
1688
1689 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1690     cr_equal 0 received_callbacks 22 30
1691     cr_equal 0 received_callbacks?id=type-status1 13
1692     cr_api_check_all_ics_subscription_events 200 0 type-status1 type104 testdata/ics/info-type-4.json REGISTERED
1693
1694     cr_equal 0 received_callbacks?id=info-job108-status 1
1695     cr_api_check_all_ics_events 200 0 info-job108-status DISABLED
1696 else
1697     cr_equal 0 received_callbacks 9 30
1698     cr_equal 0 received_callbacks?id=info-job108-status 1
1699     cr_api_check_all_ics_events 200 0 info-job108-status DISABLED
1700 fi
1701
1702 prodstub_equal create/prod-id/job108 1
1703 prodstub_equal delete/prod-id/job108 0
1704
1705 ## Re-setup prod-id
1706 ics_api_edp_put_type_2 200 type104 testdata/ics/info-type-4.json
1707 ics_api_edp_put_producer_2 200 prod-id $CB_JOB/prod-id $CB_SV/prod-id type104
1708
1709
1710 ics_api_idc_get_job_ids 200 type104 NOWNER job108
1711 ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job103 job108 job1 job2 job3 job8 job10
1712
1713 ics_api_idc_get_job_status2 200 job108 ENABLED  1 prod-id
1714
1715 ics_api_edp_get_producer_status 200 prod-ia ENABLED
1716 ics_api_edp_get_producer_status 200 prod-ib ENABLED
1717 ics_api_edp_get_producer_status 200 prod-ic ENABLED
1718 ics_api_edp_get_producer_status 200 prod-id ENABLED
1719
1720 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1721     cr_equal 0 received_callbacks 24 30
1722
1723     cr_equal 0 received_callbacks?id=type-status1 14
1724     cr_api_check_all_ics_subscription_events 200 0 type-status1 type104 testdata/ics/info-type-4.json REGISTERED
1725
1726     cr_equal 0 received_callbacks?id=info-job108-status 2
1727     cr_api_check_all_ics_events 200 0 info-job108-status ENABLED
1728 else
1729     cr_equal 0 received_callbacks 10 30
1730     cr_equal 0 received_callbacks?id=info-job108-status 2
1731     cr_api_check_all_ics_events 200 0 info-job108-status ENABLED
1732 fi
1733
1734 prodstub_equal create/prod-id/job108 2
1735 prodstub_equal delete/prod-id/job108 0
1736
1737
1738 ## Setup prod-ie
1739 ics_api_edp_put_type_2 201 type106 testdata/ics/info-type-6.json
1740 ics_api_edp_put_producer_2 201 prod-ie $CB_JOB/prod-ie $CB_SV/prod-ie type106
1741
1742 ics_api_idc_get_job_ids 200 type106 NOWNER EMPTY
1743
1744 ics_api_idc_put_job 201 job110 type106 $TARGET110 info-owner-4 $INFOSTATUS110 testdata/ics/job-template.json  VALIDATE
1745
1746 prodstub_check_jobdata_3 200 prod-ie job110 type106 $TARGET110 info-owner-4 testdata/ics/job-template.json
1747
1748 prodstub_equal create/prod-ie/job110 1
1749 prodstub_equal delete/prod-ie/job110 0
1750
1751 ics_api_idc_get_job_ids 200 type106 NOWNER job110
1752
1753 ics_api_idc_get_job_status2 200 job110 ENABLED 1 prod-ie
1754
1755 ## Setup prod-if
1756 ics_api_edp_put_type_2 200 type106 testdata/ics/info-type-6.json
1757 ics_api_edp_put_producer_2 201 prod-if $CB_JOB/prod-if $CB_SV/prod-if type106
1758
1759 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1760     cr_equal 0 received_callbacks 26 30
1761
1762     cr_equal 0 received_callbacks?id=type-status1 16
1763     cr_api_check_all_ics_subscription_events 200 0 type-status1 type106 testdata/ics/info-type-6.json REGISTERED type106 testdata/ics/info-type-6.json REGISTERED
1764 fi
1765
1766
1767 ics_api_idc_get_job_ids 200 type106 NOWNER job110
1768
1769 prodstub_check_jobdata_3 200 prod-if job110 type106 $TARGET110 info-owner-4 testdata/ics/job-template.json
1770
1771 prodstub_equal create/prod-if/job110 1
1772 prodstub_equal delete/prod-if/job110 0
1773
1774 ics_api_idc_get_job_ids 200 type106 NOWNER job110
1775
1776 ics_api_idc_get_job_status2 200 job110 ENABLED  2 prod-ie prod-if
1777
1778 ## Status updates prod-ia and jobs
1779
1780 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-id prod-ie prod-if  prod-b prod-c prod-d prod-e
1781
1782 ics_api_edp_get_producer_status 200 prod-ia ENABLED
1783 ics_api_edp_get_producer_status 200 prod-ib ENABLED
1784 ics_api_edp_get_producer_status 200 prod-ic ENABLED
1785 ics_api_edp_get_producer_status 200 prod-id ENABLED
1786 ics_api_edp_get_producer_status 200 prod-ie ENABLED
1787 ics_api_edp_get_producer_status 200 prod-if ENABLED
1788
1789 # Arm producer prod-ia for supervision failure
1790 prodstub_arm_producer 200 prod-ia 400
1791
1792 # Wait for producer prod-ia to go disabled
1793 ics_api_edp_get_producer_status 200 prod-ia DISABLED 360
1794
1795 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-id  prod-ie prod-if prod-b prod-c prod-d prod-e
1796
1797 ics_api_edp_get_producer_status 200 prod-ia DISABLED
1798 ics_api_edp_get_producer_status 200 prod-ib ENABLED
1799 ics_api_edp_get_producer_status 200 prod-ic ENABLED
1800 ics_api_edp_get_producer_status 200 prod-id ENABLED
1801 ics_api_edp_get_producer_status 200 prod-ie ENABLED
1802 ics_api_edp_get_producer_status 200 prod-if ENABLED
1803
1804
1805 ics_api_idc_get_job_status2 200 job101 ENABLED 1 prod-ia
1806 ics_api_idc_get_job_status2 200 job102 ENABLED 1 prod-ia
1807 ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
1808 ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
1809 ics_api_idc_get_job_status2 200 job110 ENABLED 2 prod-ie prod-if
1810
1811 # Arm producer prod-ia for supervision
1812 prodstub_arm_producer 200 prod-ia 200
1813
1814 # Wait for producer prod-ia to go enabled
1815 ics_api_edp_get_producer_status 200 prod-ia ENABLED 360
1816
1817 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-id prod-ie prod-if prod-b prod-c prod-d prod-e
1818
1819 ics_api_edp_get_producer_status 200 prod-ia ENABLED
1820 ics_api_edp_get_producer_status 200 prod-ib ENABLED
1821 ics_api_edp_get_producer_status 200 prod-ic ENABLED
1822 ics_api_edp_get_producer_status 200 prod-id ENABLED
1823 ics_api_edp_get_producer_status 200 prod-ie ENABLED
1824 ics_api_edp_get_producer_status 200 prod-if ENABLED
1825
1826 ics_api_idc_get_job_status2 200 job101 ENABLED 1 prod-ia
1827 ics_api_idc_get_job_status2 200 job102 ENABLED 1 prod-ia
1828 ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
1829 ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
1830 ics_api_idc_get_job_status2 200 job110 ENABLED 2 prod-ie prod-if
1831
1832 # Arm producer prod-ia for supervision failure
1833 prodstub_arm_producer 200 prod-ia 400
1834
1835 # Wait for producer prod-ia to go disabled
1836 ics_api_edp_get_producer_status 200 prod-ia DISABLED 360
1837
1838 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-id prod-ie prod-if prod-b prod-c prod-d prod-e
1839
1840 ics_api_edp_get_producer_status 200 prod-ia DISABLED
1841 ics_api_edp_get_producer_status 200 prod-ib ENABLED
1842 ics_api_edp_get_producer_status 200 prod-ic ENABLED
1843 ics_api_edp_get_producer_status 200 prod-id ENABLED
1844 ics_api_edp_get_producer_status 200 prod-ie ENABLED
1845 ics_api_edp_get_producer_status 200 prod-if ENABLED
1846
1847 ics_api_idc_get_job_status2 200 job101 ENABLED 1 prod-ia
1848 ics_api_idc_get_job_status2 200 job102 ENABLED 1 prod-ia
1849 ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
1850 ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
1851 ics_api_idc_get_job_status2 200 job110 ENABLED 2 prod-ie prod-if
1852
1853 # Wait for producer prod-ia to be removed
1854 if [[ "$ICS_FEATURE_LEVEL" == *"INFO-TYPES"* ]]; then
1855     ics_equal json:data-producer/v1/info-producers 9 1000
1856 else
1857     ics_equal json:ei-producer/v1/eiproducers 9 1000
1858 fi
1859
1860 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ib prod-ic prod-id prod-ie prod-if  prod-b prod-c prod-d prod-e
1861
1862
1863 ics_api_edp_get_producer_status 404 prod-ia
1864 ics_api_edp_get_producer_status 200 prod-ib ENABLED
1865 ics_api_edp_get_producer_status 200 prod-ic ENABLED
1866 ics_api_edp_get_producer_status 200 prod-id ENABLED
1867 ics_api_edp_get_producer_status 200 prod-ie ENABLED
1868 ics_api_edp_get_producer_status 200 prod-if ENABLED
1869
1870 ics_api_idc_get_job_status2 200 job101 DISABLED EMPTYPROD
1871 ics_api_idc_get_job_status2 200 job102 DISABLED EMPTYPROD
1872 ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
1873 ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
1874 ics_api_idc_get_job_status2 200 job110 ENABLED 2 prod-ie prod-if
1875
1876
1877 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1878     cr_equal 0 received_callbacks 28 30
1879
1880     cr_equal 0 received_callbacks?id=info-job101-status 1
1881     cr_equal 0 received_callbacks?id=info-job102-status 1
1882     cr_api_check_all_ics_events 200 0 info-job101-status DISABLED
1883     cr_api_check_all_ics_events 200 0 info-job102-status DISABLED
1884 else
1885     cr_equal 0 received_callbacks 12 30
1886
1887     cr_equal 0 received_callbacks?id=info-job101-status 1
1888     cr_equal 0 received_callbacks?id=info-job102-status 1
1889     cr_api_check_all_ics_events 200 0 info-job101-status DISABLED
1890     cr_api_check_all_ics_events 200 0 info-job102-status DISABLED
1891 fi
1892
1893
1894 # Arm producer prod-ie for supervision failure
1895 prodstub_arm_producer 200 prod-ie 400
1896
1897 ics_api_edp_get_producer_status 200 prod-ie DISABLED 1000
1898
1899 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ib prod-ic prod-id prod-ie prod-if prod-b prod-c prod-d prod-e
1900
1901 ics_api_edp_get_producer_status 404 prod-ia
1902 ics_api_edp_get_producer_status 200 prod-ib ENABLED
1903 ics_api_edp_get_producer_status 200 prod-ic ENABLED
1904 ics_api_edp_get_producer_status 200 prod-id ENABLED
1905 ics_api_edp_get_producer_status 200 prod-ie DISABLED
1906 ics_api_edp_get_producer_status 200 prod-if ENABLED
1907
1908 ics_api_idc_get_job_status2 200 job101 DISABLED EMPTYPROD
1909 ics_api_idc_get_job_status2 200 job102 DISABLED EMPTYPROD
1910 ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
1911 ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
1912 ics_api_idc_get_job_status2 200 job110 ENABLED 2 prod-ie prod-if
1913
1914 #Disable create for job110 in prod-ie
1915 prodstub_arm_job_create 200 prod-ie job110 400
1916
1917 #Update tjob 10 - only prod-if will be updated
1918 ics_api_idc_put_job 200 job110 type106 $TARGET110 info-owner-4 $INFOSTATUS110 testdata/ics/job-template2.json  VALIDATE
1919 #Reset producer and job responses
1920 prodstub_arm_producer 200 prod-ie 200
1921 prodstub_arm_job_create 200 prod-ie job110 200
1922
1923 ics_api_edp_get_producer_status 200 prod-ie ENABLED 360
1924
1925 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ib prod-ic prod-id prod-ie prod-if  prod-b prod-c prod-d prod-e
1926
1927 #Wait for job to be updated
1928 sleep_wait 120
1929
1930 prodstub_check_jobdata_3 200 prod-if job110 type106 $TARGET110 info-owner-4 testdata/ics/job-template2.json
1931
1932 prodstub_arm_producer 200 prod-if 400
1933
1934 ics_api_edp_get_producer_status 200 prod-if DISABLED 360
1935
1936 if [[ "$ICS_FEATURE_LEVEL" == *"INFO-TYPES"* ]]; then
1937     ics_equal json:data-producer/v1/info-producers 8 1000
1938 else
1939     ics_equal json:ei-producer/v1/eiproducers 8 1000
1940 fi
1941
1942 ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ib prod-ic prod-id prod-ie prod-b prod-c prod-d prod-e
1943
1944 ics_api_edp_get_producer_status 404 prod-ia
1945 ics_api_edp_get_producer_status 200 prod-ib ENABLED
1946 ics_api_edp_get_producer_status 200 prod-ic ENABLED
1947 ics_api_edp_get_producer_status 200 prod-id ENABLED
1948 ics_api_edp_get_producer_status 200 prod-ie ENABLED
1949 ics_api_edp_get_producer_status 404 prod-if
1950
1951 ics_api_idc_get_job_status2 200 job101 DISABLED EMPTYPROD
1952 ics_api_idc_get_job_status2 200 job102 DISABLED EMPTYPROD
1953 ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
1954 ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
1955 ics_api_idc_get_job_status2 200 job110 ENABLED 1 prod-ie
1956
1957 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
1958     cr_equal 0 received_callbacks 28
1959 else
1960     cr_equal 0 received_callbacks 12
1961 fi
1962 ### Test of pre and post validation
1963
1964 ics_api_idc_get_type_ids 200 type1 type2 type4 type6 type101 type102 type104 type106
1965 ics_api_idc_put_job 404 job150 type150 $TARGET150 info-owner-1 $INFOSTATUS150 testdata/ics/job-template.json VALIDATE
1966 ics_api_idc_put_job 201 job160 type160 $TARGET160 info-owner-1 $INFOSTATUS160 testdata/ics/job-template.json
1967
1968 ics_api_idc_get_job_status2 404 job150
1969 ics_api_idc_get_job_status2 200 job160 DISABLED EMPTYPROD 60
1970
1971 prodstub_arm_producer 200 prod-ig
1972 prodstub_arm_job_create 200 prod-ig job150
1973 prodstub_arm_job_create 200 prod-ig job160
1974
1975 ics_api_edp_put_producer_2 201 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig NOTYPE
1976 ics_api_edp_get_producer_status 200 prod-ig ENABLED 360
1977
1978 ics_api_edp_get_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig EMPTY
1979
1980 ics_api_idc_get_job_status2 404 job150
1981 ics_api_idc_get_job_status2 200 job160 DISABLED EMPTYPROD 60
1982
1983 prodstub_arm_type 200 prod-ig type160
1984
1985 ics_api_edp_put_type_2 201 type160 testdata/ics/info-type-60.json
1986 ics_api_idc_get_type_ids 200 type1 type2 type4 type6 type101 type102 type104 type106 type160
1987
1988 ics_api_edp_put_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig type160
1989 ics_api_edp_get_producer_status 200 prod-ig ENABLED 360
1990 ics_api_edp_get_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig type160
1991
1992 ics_api_idc_put_job 404 job150 type150 $TARGET150 info-owner-1 $INFOSTATUS150 testdata/ics/job-template.json VALIDATE
1993
1994 ics_api_idc_get_job_status2 404 job150
1995 ics_api_idc_get_job_status2 200 job160 ENABLED 1 prod-ig 60
1996
1997 prodstub_check_jobdata_3 200 prod-ig job160 type160 $TARGET160 info-owner-1 testdata/ics/job-template.json
1998
1999 prodstub_equal create/prod-ig/job160 1
2000 prodstub_equal delete/prod-ig/job160 0
2001
2002 prodstub_arm_type 200 prod-ig type150
2003
2004 ics_api_edp_put_type_2 201 type150 testdata/ics/info-type-50.json
2005 ics_api_idc_get_type_ids 200 type1 type2 type4 type6 type101 type102 type104 type106 type160 type150
2006
2007 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
2008     cr_equal 0 received_callbacks 30 30
2009     cr_equal 0 received_callbacks?id=type-status1 18
2010     cr_api_check_all_ics_subscription_events 200 0 type-status1 type160 testdata/ics/info-type-60.json REGISTERED type150 testdata/ics/info-type-50.json REGISTERED
2011 else
2012     cr_equal 0 received_callbacks 12
2013 fi
2014
2015 ics_api_edp_put_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig type160 type150
2016 ics_api_edp_get_producer_status 200 prod-ig ENABLED 360
2017
2018 ics_api_edp_get_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig type160 type150
2019
2020 ics_api_idc_get_job_status2 404 job150
2021 ics_api_idc_get_job_status2 200 job160 ENABLED  1 prod-ig
2022
2023 ics_api_idc_put_job 201 job150 type150 $TARGET150 info-owner-1 $INFOSTATUS150 testdata/ics/job-template.json VALIDATE
2024
2025 ics_api_idc_get_job_status2 200 job150 ENABLED  1 prod-ig 60
2026 ics_api_idc_get_job_status2 200 job160 ENABLED  1 prod-ig
2027
2028 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
2029     cr_equal 0 received_callbacks 30 30
2030     cr_equal 0 received_callbacks?id=type-status1 18
2031 else
2032     cr_equal 0 received_callbacks 12
2033 fi
2034
2035 # Test job deletion at type delete
2036
2037 if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
2038
2039     if [[ "$ICS_FEATURE_LEVEL" == *"RESP_CODE_CHANGE_1" ]]; then
2040         ics_api_edp_delete_type_2 409 type104
2041     else
2042         ics_api_edp_delete_type_2 406 type104
2043     fi
2044
2045     ics_api_edp_delete_producer 204 prod-id
2046
2047     ics_api_edp_delete_type_2 204 type104
2048
2049     cr_equal 0 received_callbacks 32 30
2050     cr_equal 0 received_callbacks?id=info-job108-status 3
2051     cr_equal 0 received_callbacks?id=type-status1 19
2052     cr_api_check_all_ics_subscription_events 200 0 type-status1 type104 testdata/ics/info-type-4.json DEREGISTERED
2053     cr_api_check_all_ics_events 200 0 info-job108-status DISABLED
2054
2055     ics_api_edp_get_producer 404 prod-id
2056
2057     ics_api_idc_get_job 404 job-108
2058
2059 else
2060     cr_equal 0 received_callbacks 12
2061 fi
2062
2063 check_ics_logs
2064
2065 store_logs END
2066
2067 #### TEST COMPLETE ####
2068
2069 print_result
2070
2071 auto_clean_environment