3 # ============LICENSE_START===============================================
4 # Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
5 # Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved.
6 # ========================================================================
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
11 # http://www.apache.org/licenses/LICENSE-2.0
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 # ============LICENSE_END=================================================
21 TC_ONELINE_DESCR="App test DMAAP Meditor and DMAAP Adapter"
23 #App names to include in the test when running docker, space separated list
24 DOCKER_INCLUDED_IMAGES="ICS DMAAPMED DMAAPADP KUBEPROXY MR DMAAPMR CR KAFKAPC"
26 #App names to include in the test when running kubernetes, space separated list
27 KUBE_INCLUDED_IMAGES=" ICS DMAAPMED DMAAPADP KUBEPROXY MR DMAAPMR CR KAFKAPC"
29 #Pre-started app (not started by script) to include in the test when running kubernetes, space separated list
30 KUBE_PRESTARTED_IMAGES=""
32 #Ignore image in DOCKER_INCLUDED_IMAGES, KUBE_INCLUDED_IMAGES if
33 #the image is not configured in the supplied env_file
34 #Used for images not applicable to all supported profile
35 CONDITIONALLY_IGNORED_IMAGES=""
37 #Supported test environment profiles
38 SUPPORTED_PROFILES="ORAN-G-RELEASE ORAN-H-RELEASE ORAN-I-RELEASE"
40 SUPPORTED_RUNMODES="DOCKER KUBE"
42 . ../common/testcase_common.sh $@
48 #Local vars in test script
49 ##########################
51 NUM_CR=10 # Number of callback receivers, divide all callbacks to this number of servers - for load sharing
52 ## Note: The number jobs must be a multiple of the number of CRs in order to calculate the number of expected event in each CR
53 NUM_JOBS=200 # Mediator and adapter gets same number of jobs for every type
54 if [ $NUM_JOBS -lt $NUM_CR ]; then
55 __log_conf_fail_general "Number of jobs: $NUM_JOBS must be greater then the number of CRs: $NUM_CR"
71 start_ics NOPROXY $SIM_GROUP/$ICS_COMPOSE_DIR/$ICS_CONFIG_FILE
75 start_mr "unauthenticated.dmaapmed.json" "/events" "dmaapmediatorproducer/STD_Fault_Messages" \
76 "unauthenticated.dmaapadp.json" "/events" "dmaapadapterproducer/msgs"
80 kafkapc_api_create_topic 201 "unauthenticated.dmaapadp_kafka.text" "text/plain"
82 kafkapc_api_start_sending 200 "unauthenticated.dmaapadp_kafka.text"
84 start_dmaapadp NOPROXY $SIM_GROUP/$DMAAP_ADP_COMPOSE_DIR/$DMAAP_ADP_CONFIG_FILE_TEMPLATE $SIM_GROUP/$DMAAP_ADP_COMPOSE_DIR/$DMAAP_ADP_DATA_FILE
88 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
89 kafkapc_api_create_topic 201 "unauthenticated.dmaapmed_kafka.text" "text/plain"
91 kafkapc_api_start_sending 200 "unauthenticated.dmaapmed_kafka.text"
94 start_dmaapmed NOPROXY $SIM_GROUP/$DMAAP_MED_COMPOSE_DIR/$DMAAP_MED_HOST_DATA_FILE
96 ics_equal json:data-producer/v1/info-producers 2 60
99 ics_api_idc_get_job_ids 200 NOTYPE NOWNER EMPTY
100 if [[ "$DMAAP_ADP_FEATURE_LEVEL" == *"GENERATED_PROD_NAME"* ]]; then
101 if [ $RUNMODE == "KUBE" ]; then
102 __NAME="https:__$DMAAP_ADP_APP_NAME.$KUBE_NONRTRIC_NAMESPACE:$DMAAP_ADP_EXTERNAL_SECURE_PORT"
104 __NAME="https:__$DMAAP_ADP_APP_NAME:$DMAAP_ADP_INTERNAL_SECURE_PORT"
106 ics_api_edp_get_producer_ids_2 200 NOTYPE $__NAME DMaaP_Mediator_Producer
108 ics_api_edp_get_producer_ids_2 200 NOTYPE DmaapGenericInfoProducer DMaaP_Mediator_Producer
111 if [[ "$DMAAP_MED_FEATURE_LEVEL" != *"KAFKATYPES"* ]]; then
112 ics_api_idc_get_type_ids 200 ExampleInformationType STD_Fault_Messages ExampleInformationTypeKafka
114 ics_api_idc_get_type_ids 200 ExampleInformationType STD_Fault_Messages ExampleInformationTypeKafka Kafka_TestTopic
118 # Create jobs for adapter - CR stores data as MD5 hash
119 start_timer "Create adapter jobs: $NUM_JOBS"
120 for ((i=1; i<=$NUM_JOBS; i++))
122 cr_index=$(($i%$NUM_CR))
123 service_mr="CR_SERVICE_MR_PATH_"$cr_index
124 service_app="CR_SERVICE_APP_PATH_"$cr_index
125 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"FILTERSCHEMA"* ]]; then
126 ics_api_idc_put_job 201 job-adp-$i ExampleInformationType ${!service_mr}/job-adp-data$i"?storeas=md5" info-owner-adp-$i ${!service_app}/job_status_info-owner-adp-$i testdata/dmaap-adapter/job-template1.1.json
128 ics_api_idc_put_job 201 job-adp-$i ExampleInformationType ${!service_mr}/job-adp-data$i"?storeas=md5" info-owner-adp-$i ${!service_app}/job_status_info-owner-adp-$i testdata/dmaap-adapter/job-template1.json
134 # Create jobs for adapter kafka - CR stores data as MD5 hash
135 start_timer "Create adapter (kafka) jobs: $NUM_JOBS"
136 for ((i=1; i<=$NUM_JOBS; i++))
138 cr_index=$(($i%$NUM_CR))
139 service_text="CR_SERVICE_TEXT_PATH_"$cr_index
140 service_app="CR_SERVICE_APP_PATH_"$cr_index
141 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"FILTERSCHEMA"* ]]; then
142 ics_api_idc_put_job 201 job-adp-kafka-$i ExampleInformationTypeKafka ${!service_text}/job-adp-kafka-data$i"?storeas=md5" info-owner-adp-kafka-$i ${!service_app}/job_status_info-owner-adp-kafka-$i testdata/dmaap-adapter/job-template-1.1-kafka.json
144 ics_api_idc_put_job 201 job-adp-kafka-$i ExampleInformationTypeKafka ${!service_text}/job-adp-kafka-data$i"?storeas=md5" info-owner-adp-kafka-$i ${!service_app}/job_status_info-owner-adp-kafka-$i testdata/dmaap-adapter/job-template-1-kafka.json
149 # Create jobs for mediator - CR stores data as MD5 hash
150 start_timer "Create mediator jobs: $NUM_JOBS"
151 for ((i=1; i<=$NUM_JOBS; i++))
153 cr_index=$(($i%$NUM_CR))
154 service_mr="CR_SERVICE_MR_PATH_"$cr_index
155 service_app="CR_SERVICE_APP_PATH_"$cr_index
156 ics_api_idc_put_job 201 job-med-$i STD_Fault_Messages ${!service_mr}/job-med-data$i"?storeas=md5" info-owner-med-$i ${!service_app}/job_status_info-owner-med-$i testdata/dmaap-mediator/job-template.json
160 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
161 # Create jobs for mediator kafka - CR stores data as MD5 hash
162 start_timer "Create mediator (kafka) jobs: $NUM_JOBS"
163 for ((i=1; i<=$NUM_JOBS; i++))
165 cr_index=$(($i%$NUM_CR))
166 service_text="CR_SERVICE_TEXT_PATH_"$cr_index
167 service_app="CR_SERVICE_APP_PATH_"$cr_index
168 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"FILTERSCHEMA"* ]]; then
169 ics_api_idc_put_job 201 job-med-kafka-$i Kafka_TestTopic ${!service_text}/job-med-kafka-data$i"?storeas=md5" info-owner-med-kafka-$i ${!service_app}/job_status_info-owner-med-kafka-$i testdata/dmaap-mediator/job-template-1.1-kafka.json
171 ics_api_idc_put_job 201 job-med-kafka-$i Kafka_TestTopic ${!service_text}/job-med-kafka-data$i"?storeas=md5" info-owner-med-kafka-$i ${!service_app}/job_status_info-owner-med-kafka-$i testdata/dmaap-mediator/job-template-1-kafka.json
178 for ((i=1; i<=$NUM_JOBS; i++))
180 ics_api_a1_get_job_status 200 job-med-$i ENABLED 30
181 ics_api_a1_get_job_status 200 job-adp-$i ENABLED 30
182 ics_api_a1_get_job_status 200 job-adp-kafka-$i ENABLED 30
183 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
184 ics_api_a1_get_job_status 200 job-med-kafka-$i ENABLED 30
189 EXPECTED_DATA_DELIV=0 #Total delivered msg per CR
190 EXPECTED_BATCHES_DELIV=0 #Total delivered batches per CR
191 DATA_DELIV_JOBS=0 #Total delivered msg per job per CR
193 mr_api_generate_json_payload_file 1 ./tmp/data_for_dmaap_test.json
194 kafkapc_api_generate_text_payload_file 1 ./tmp/data_for_dmaap_test.txt
196 ## Send json file via message-router to adapter
197 DATA_DELIV_JOBS=5 #Each job will eventuall get 2 msgs
198 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
199 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
200 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
201 for ((i=0; i<$NUM_CR; i++))
203 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
204 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
207 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
208 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
209 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
210 for ((i=0; i<$NUM_CR; i++))
212 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
213 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
216 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
217 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
218 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
219 for ((i=0; i<$NUM_CR; i++))
221 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
222 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
225 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
226 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
227 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
228 for ((i=0; i<$NUM_CR; i++))
230 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
231 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
234 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
235 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
236 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
237 for ((i=0; i<$NUM_CR; i++))
239 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
240 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
243 # Check received data callbacks from adapter
244 for ((i=1; i<=$NUM_JOBS; i++))
246 cr_index=$(($i%$NUM_CR))
247 cr_api_check_single_generic_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
248 cr_api_check_single_generic_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
249 cr_api_check_single_generic_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
250 cr_api_check_single_generic_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
251 cr_api_check_single_generic_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
255 ## Send text file via message-router to adapter kafka
257 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
258 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
259 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
260 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 1 30
261 for ((i=0; i<$NUM_CR; i++))
263 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
264 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
267 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
268 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
269 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
270 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 2 30
271 for ((i=0; i<$NUM_CR; i++))
273 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
274 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
277 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
278 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
279 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
280 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 3 30
281 for ((i=0; i<$NUM_CR; i++))
283 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
284 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
287 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
288 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
289 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
290 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 4 30
291 for ((i=0; i<$NUM_CR; i++))
293 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
294 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
297 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
298 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
299 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
300 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 5 30
301 for ((i=0; i<$NUM_CR; i++))
303 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
304 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
307 # Check received data callbacks from adapter kafka
308 for ((i=1; i<=$NUM_JOBS; i++))
310 cr_index=$(($i%$NUM_CR))
311 cr_api_check_single_generic_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
312 cr_api_check_single_generic_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
313 cr_api_check_single_generic_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
314 cr_api_check_single_generic_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
315 cr_api_check_single_generic_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
318 ## Send json file via message-router to mediator
320 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
321 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
322 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
323 for ((i=0; i<$NUM_CR; i++))
325 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
326 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
329 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
330 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
331 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
332 for ((i=0; i<$NUM_CR; i++))
334 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
335 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
338 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
339 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
340 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
341 for ((i=0; i<$NUM_CR; i++))
343 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
344 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
347 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
348 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
349 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
350 for ((i=0; i<$NUM_CR; i++))
352 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
353 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
356 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
357 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
358 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
359 for ((i=0; i<$NUM_CR; i++))
361 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
362 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
365 # Check received data callbacks from mediator
366 for ((i=1; i<=$NUM_JOBS; i++))
368 cr_index=$(($i%$NUM_CR))
369 cr_api_check_single_generic_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
370 cr_api_check_single_generic_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
371 cr_api_check_single_generic_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
372 cr_api_check_single_generic_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
373 cr_api_check_single_generic_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
376 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
377 ## Send text file via message-router to mediator kafka
379 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
380 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
381 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
382 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 1 30
383 for ((i=0; i<$NUM_CR; i++))
385 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
386 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
389 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
390 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
391 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
392 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 2 30
393 for ((i=0; i<$NUM_CR; i++))
395 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
396 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
399 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
400 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
401 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
402 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 3 30
403 for ((i=0; i<$NUM_CR; i++))
405 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
406 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
409 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
410 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
411 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
412 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 4 30
413 for ((i=0; i<$NUM_CR; i++))
415 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
416 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
419 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
420 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
421 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
422 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 5 30
423 for ((i=0; i<$NUM_CR; i++))
425 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
426 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
429 # Check received data callbacks from adapter kafka
430 for ((i=1; i<=$NUM_JOBS; i++))
432 cr_index=$(($i%$NUM_CR))
433 cr_api_check_single_generic_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
434 cr_api_check_single_generic_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
435 cr_api_check_single_generic_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
436 cr_api_check_single_generic_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
437 cr_api_check_single_generic_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
441 # Send small json via message-router to adapter
442 mr_api_send_json "/events/unauthenticated.dmaapadp.json" '{"msg":"msg-1"}'
443 mr_api_send_json "/events/unauthenticated.dmaapadp.json" '{"msg":"msg-3"}'
445 #########################################################
446 #Checking number of message batches is not reliable when
447 #sending several messages at the same time
448 #Two messages may be send separately or to together
450 #########################################################
452 DATA_DELIV_JOBS=7 #Each job will eventually get 5+2 msgs
454 # Wait for data reception, adapter
455 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
456 start_timer "Data delivery adapter, 2 json per job"
457 for ((i=0; i<$NUM_CR; i++))
459 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
463 # Send small text via message-router to adapter
464 kafkapc_api_post_msg 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" 'Message-------1'
465 kafkapc_api_post_msg 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" 'Message-------3'
466 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 7 30
468 # Wait for data reception, adapter kafka
469 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
470 start_timer "Data delivery adapter kafka, 2 strings per job"
471 for ((i=0; i<$NUM_CR; i++))
473 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
477 # Send small json via message-router to mediator
478 mr_api_send_json "/events/unauthenticated.dmaapmed.json" '{"msg":"msg-0"}'
479 mr_api_send_json "/events/unauthenticated.dmaapmed.json" '{"msg":"msg-2"}'
481 # Wait for data reception, mediator
482 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
483 start_timer "Data delivery mediator, 2 json per job"
484 for ((i=0; i<$NUM_CR; i++))
486 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
490 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
491 # Send small text via message-router to mediator
492 kafkapc_api_post_msg 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" 'Message-------0'
493 kafkapc_api_post_msg 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" 'Message-------2'
494 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 7 30
496 # Wait for data reception, adapter kafka
497 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
498 start_timer "Data delivery mediator kafka, 2 strings per job"
499 for ((i=0; i<$NUM_CR; i++))
501 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
506 # Check received number of messages for mediator and adapter callbacks
507 for ((i=1; i<=$NUM_JOBS; i++))
509 cr_index=$(($i%$NUM_CR))
510 cr_equal $cr_index received_callbacks?id=job-med-data$i $DATA_DELIV_JOBS
511 cr_equal $cr_index received_callbacks?id=job-adp-data$i $DATA_DELIV_JOBS
512 cr_equal $cr_index received_callbacks?id=job-adp-kafka-data$i $DATA_DELIV_JOBS
513 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
514 cr_equal $cr_index received_callbacks?id=job-med-kafka-data$i $DATA_DELIV_JOBS
518 # Check received data and order for mediator and adapter callbacks
519 for ((i=1; i<=$NUM_JOBS; i++))
521 cr_index=$(($i%$NUM_CR))
522 cr_api_check_single_generic_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-0"}'
523 cr_api_check_single_generic_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-2"}'
524 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-1"}'
525 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-3"}'
526 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------1'
527 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------3'
528 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
529 cr_api_check_single_generic_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------0'
530 cr_api_check_single_generic_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------2'
534 # Set delay in the callback receiver to slow down callbacks
536 for ((i=0; i<$NUM_CR; i++))
538 cr_delay_callback 200 $i $SEC_DELAY
541 # Send small json via message-router to adapter
542 mr_api_send_json "/events/unauthenticated.dmaapadp.json" '{"msg":"msg-5"}'
543 mr_api_send_json "/events/unauthenticated.dmaapadp.json" '{"msg":"msg-7"}'
545 # Wait for data reception, adapter
546 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
547 start_timer "Data delivery adapter with $SEC_DELAY seconds delay in consumer, 2 json per job"
548 for ((i=0; i<$NUM_CR; i++))
550 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
555 # Send small text via message-router to adapter kafka
556 kafkapc_api_post_msg 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" 'Message-------5'
557 kafkapc_api_post_msg 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" 'Message-------7'
558 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 9 30
560 # Wait for data reception, adapter kafka
561 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
562 start_timer "Data delivery adapter kafka with $SEC_DELAY seconds delay in consumer, 2 strings per job"
563 for ((i=0; i<$NUM_CR; i++))
565 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
570 # Send small json via message-router to mediator
571 mr_api_send_json "/events/unauthenticated.dmaapmed.json" '{"msg":"msg-4"}'
572 mr_api_send_json "/events/unauthenticated.dmaapmed.json" '{"msg":"msg-6"}'
574 # Wait for data reception, mediator
575 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
576 start_timer "Data delivery mediator with $SEC_DELAY seconds delay in consumer, 2 json per job"
577 for ((i=0; i<$NUM_CR; i++))
579 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
583 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
584 # Send small text via message-router to mediator kafka
585 kafkapc_api_post_msg 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" 'Message-------4'
586 kafkapc_api_post_msg 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" 'Message-------6'
587 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 9 30
589 # Wait for data reception, mediator kafka
590 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
591 start_timer "Data delivery mediator kafka with $SEC_DELAY seconds delay in consumer, 2 strings per job"
592 for ((i=0; i<$NUM_CR; i++))
594 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
599 # Check received number of messages for mediator and adapter callbacks
600 for ((i=1; i<=$NUM_JOBS; i++))
602 cr_index=$(($i%$NUM_CR))
603 cr_equal $cr_index received_callbacks?id=job-med-data$i 9
604 cr_equal $cr_index received_callbacks?id=job-adp-data$i 9
605 cr_equal $cr_index received_callbacks?id=job-adp-kafka-data$i 9
606 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
607 cr_equal $cr_index received_callbacks?id=job-med-kafka-data$i 9
611 # Check received data and order for mediator and adapter callbacks
612 for ((i=1; i<=$NUM_JOBS; i++))
614 cr_index=$(($i%$NUM_CR))
615 cr_api_check_single_generic_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-4"}'
616 cr_api_check_single_generic_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-6"}'
617 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-5"}'
618 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-7"}'
619 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------5'
620 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------7'
621 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
622 cr_api_check_single_generic_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------4'
623 cr_api_check_single_generic_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------6'
627 #### TEST COMPLETE ####
633 auto_clean_environment