3 # ============LICENSE_START===============================================
4 # Copyright (C) 2020 Nordix Foundation. All rights reserved.
5 # ========================================================================
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
10 # http://www.apache.org/licenses/LICENSE-2.0
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 # ============LICENSE_END=================================================
20 TC_ONELINE_DESCR="App test DMAAP Meditor and DMAAP Adapter"
22 #App names to include in the test when running docker, space separated list
23 DOCKER_INCLUDED_IMAGES="ICS DMAAPMED DMAAPADP KUBEPROXY MR DMAAPMR CR KAFKAPC"
25 #App names to include in the test when running kubernetes, space separated list
26 KUBE_INCLUDED_IMAGES=" ICS DMAAPMED DMAAPADP KUBEPROXY MR DMAAPMR CR KAFKAPC"
28 #Pre-started app (not started by script) to include in the test when running kubernetes, space separated list
29 KUBE_PRESTARTED_IMAGES=""
31 #Ignore image in DOCKER_INCLUDED_IMAGES, KUBE_INCLUDED_IMAGES if
32 #the image is not configured in the supplied env_file
33 #Used for images not applicable to all supported profile
34 CONDITIONALLY_IGNORED_IMAGES=""
36 #Supported test environment profiles
37 SUPPORTED_PROFILES="ORAN-F-RELEASE ORAN-G-RELEASE ORAN-H-RELEASE"
39 SUPPORTED_RUNMODES="DOCKER KUBE"
41 . ../common/testcase_common.sh $@
47 #Local vars in test script
48 ##########################
50 NUM_CR=10 # Number of callback receivers, divide all callbacks to this number of servers - for load sharing
51 ## 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
52 NUM_JOBS=200 # Mediator and adapter gets same number of jobs for every type
53 if [ $NUM_JOBS -lt $NUM_CR ]; then
54 __log_conf_fail_general "Number of jobs: $NUM_JOBS must be greater then the number of CRs: $NUM_CR"
70 start_ics NOPROXY $SIM_GROUP/$ICS_COMPOSE_DIR/$ICS_CONFIG_FILE
74 start_mr "unauthenticated.dmaapmed.json" "/events" "dmaapmediatorproducer/STD_Fault_Messages" \
75 "unauthenticated.dmaapadp.json" "/events" "dmaapadapterproducer/msgs"
79 kafkapc_api_create_topic 201 "unauthenticated.dmaapadp_kafka.text" "text/plain"
81 kafkapc_api_start_sending 200 "unauthenticated.dmaapadp_kafka.text"
83 start_dmaapadp NOPROXY $SIM_GROUP/$DMAAP_ADP_COMPOSE_DIR/$DMAAP_ADP_CONFIG_FILE_TEMPLATE $SIM_GROUP/$DMAAP_ADP_COMPOSE_DIR/$DMAAP_ADP_DATA_FILE
87 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
88 kafkapc_api_create_topic 201 "unauthenticated.dmaapmed_kafka.text" "text/plain"
90 kafkapc_api_start_sending 200 "unauthenticated.dmaapmed_kafka.text"
93 start_dmaapmed NOPROXY $SIM_GROUP/$DMAAP_MED_COMPOSE_DIR/$DMAAP_MED_HOST_DATA_FILE
95 ics_equal json:data-producer/v1/info-producers 2 60
98 ics_api_idc_get_job_ids 200 NOTYPE NOWNER EMPTY
99 if [[ "$DMAAP_ADP_FEATURE_LEVEL" == *"GENERATED_PROD_NAME"* ]]; then
100 if [ $RUNMODE == "KUBE" ]; then
101 __NAME="https:__$DMAAP_ADP_APP_NAME.$KUBE_NONRTRIC_NAMESPACE:$DMAAP_ADP_EXTERNAL_SECURE_PORT"
103 __NAME="https:__$DMAAP_ADP_APP_NAME:$DMAAP_ADP_INTERNAL_SECURE_PORT"
105 ics_api_edp_get_producer_ids_2 200 NOTYPE $__NAME DMaaP_Mediator_Producer
107 ics_api_edp_get_producer_ids_2 200 NOTYPE DmaapGenericInfoProducer DMaaP_Mediator_Producer
110 if [[ "$DMAAP_MED_FEATURE_LEVEL" != *"KAFKATYPES"* ]]; then
111 ics_api_idc_get_type_ids 200 ExampleInformationType STD_Fault_Messages ExampleInformationTypeKafka
113 ics_api_idc_get_type_ids 200 ExampleInformationType STD_Fault_Messages ExampleInformationTypeKafka Kafka_TestTopic
117 # Create jobs for adapter - CR stores data as MD5 hash
118 start_timer "Create adapter jobs: $NUM_JOBS"
119 for ((i=1; i<=$NUM_JOBS; i++))
121 cr_index=$(($i%$NUM_CR))
122 service_mr="CR_SERVICE_MR_PATH_"$cr_index
123 service_app="CR_SERVICE_APP_PATH_"$cr_index
124 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"FILTERSCHEMA"* ]]; then
125 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
127 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
133 # Create jobs for adapter kafka - CR stores data as MD5 hash
134 start_timer "Create adapter (kafka) jobs: $NUM_JOBS"
135 for ((i=1; i<=$NUM_JOBS; i++))
137 cr_index=$(($i%$NUM_CR))
138 service_text="CR_SERVICE_TEXT_PATH_"$cr_index
139 service_app="CR_SERVICE_APP_PATH_"$cr_index
140 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"FILTERSCHEMA"* ]]; then
141 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
143 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
148 # Create jobs for mediator - CR stores data as MD5 hash
149 start_timer "Create mediator jobs: $NUM_JOBS"
150 for ((i=1; i<=$NUM_JOBS; i++))
152 cr_index=$(($i%$NUM_CR))
153 service_mr="CR_SERVICE_MR_PATH_"$cr_index
154 service_app="CR_SERVICE_APP_PATH_"$cr_index
155 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
159 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
160 # Create jobs for mediator kafka - CR stores data as MD5 hash
161 start_timer "Create mediator (kafka) jobs: $NUM_JOBS"
162 for ((i=1; i<=$NUM_JOBS; i++))
164 cr_index=$(($i%$NUM_CR))
165 service_text="CR_SERVICE_TEXT_PATH_"$cr_index
166 service_app="CR_SERVICE_APP_PATH_"$cr_index
167 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"FILTERSCHEMA"* ]]; then
168 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
170 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
177 for ((i=1; i<=$NUM_JOBS; i++))
179 ics_api_a1_get_job_status 200 job-med-$i ENABLED 30
180 ics_api_a1_get_job_status 200 job-adp-$i ENABLED 30
181 ics_api_a1_get_job_status 200 job-adp-kafka-$i ENABLED 30
182 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
183 ics_api_a1_get_job_status 200 job-med-kafka-$i ENABLED 30
188 EXPECTED_DATA_DELIV=0 #Total delivered msg per CR
189 EXPECTED_BATCHES_DELIV=0 #Total delivered batches per CR
190 DATA_DELIV_JOBS=0 #Total delivered msg per job per CR
192 mr_api_generate_json_payload_file 1 ./tmp/data_for_dmaap_test.json
193 kafkapc_api_generate_text_payload_file 1 ./tmp/data_for_dmaap_test.txt
195 ## Send json file via message-router to adapter
196 DATA_DELIV_JOBS=5 #Each job will eventuall get 2 msgs
197 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
198 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
199 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
200 for ((i=0; i<$NUM_CR; i++))
202 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
203 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
206 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
207 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
208 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
209 for ((i=0; i<$NUM_CR; i++))
211 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
212 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
215 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
216 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
217 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
218 for ((i=0; i<$NUM_CR; i++))
220 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
221 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
224 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
225 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
226 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
227 for ((i=0; i<$NUM_CR; i++))
229 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
230 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
233 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
234 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
235 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
236 for ((i=0; i<$NUM_CR; i++))
238 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
239 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
242 # Check received data callbacks from adapter
243 for ((i=1; i<=$NUM_JOBS; i++))
245 cr_index=$(($i%$NUM_CR))
246 cr_api_check_single_generic_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
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
254 ## Send text file via message-router to adapter kafka
256 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
257 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
258 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
259 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 1 30
260 for ((i=0; i<$NUM_CR; i++))
262 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
263 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
266 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
267 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
268 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
269 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 2 30
270 for ((i=0; i<$NUM_CR; i++))
272 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
273 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
276 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
277 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
278 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
279 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 3 30
280 for ((i=0; i<$NUM_CR; i++))
282 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
283 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
286 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
287 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
288 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
289 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 4 30
290 for ((i=0; i<$NUM_CR; i++))
292 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
293 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
296 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
297 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
298 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
299 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 5 30
300 for ((i=0; i<$NUM_CR; i++))
302 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
303 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
306 # Check received data callbacks from adapter kafka
307 for ((i=1; i<=$NUM_JOBS; i++))
309 cr_index=$(($i%$NUM_CR))
310 cr_api_check_single_generic_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
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
317 ## Send json file via message-router to mediator
319 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
320 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
321 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
322 for ((i=0; i<$NUM_CR; i++))
324 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
325 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
328 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
329 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
330 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
331 for ((i=0; i<$NUM_CR; i++))
333 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
334 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
337 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
338 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
339 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
340 for ((i=0; i<$NUM_CR; i++))
342 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
343 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
346 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
347 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
348 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
349 for ((i=0; i<$NUM_CR; i++))
351 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
352 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
355 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
356 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
357 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
358 for ((i=0; i<$NUM_CR; i++))
360 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
361 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
364 # Check received data callbacks from mediator
365 for ((i=1; i<=$NUM_JOBS; i++))
367 cr_index=$(($i%$NUM_CR))
368 cr_api_check_single_generic_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
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
375 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
376 ## Send text file via message-router to mediator kafka
378 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
379 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
380 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
381 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 1 30
382 for ((i=0; i<$NUM_CR; i++))
384 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
385 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
388 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
389 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
390 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
391 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 2 30
392 for ((i=0; i<$NUM_CR; i++))
394 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
395 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
398 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
399 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
400 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
401 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 3 30
402 for ((i=0; i<$NUM_CR; i++))
404 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
405 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
408 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
409 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
410 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
411 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 4 30
412 for ((i=0; i<$NUM_CR; i++))
414 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
415 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
418 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
419 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
420 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
421 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 5 30
422 for ((i=0; i<$NUM_CR; i++))
424 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
425 cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
428 # Check received data callbacks from adapter kafka
429 for ((i=1; i<=$NUM_JOBS; i++))
431 cr_index=$(($i%$NUM_CR))
432 cr_api_check_single_generic_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
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
440 # Send small json via message-router to adapter
441 mr_api_send_json "/events/unauthenticated.dmaapadp.json" '{"msg":"msg-1"}'
442 mr_api_send_json "/events/unauthenticated.dmaapadp.json" '{"msg":"msg-3"}'
444 #########################################################
445 #Checking number of message batches is not reliable when
446 #sending several messages at the same time
447 #Two messages may be send separately or to together
449 #########################################################
451 DATA_DELIV_JOBS=7 #Each job will eventually get 5+2 msgs
453 # Wait for data reception, adapter
454 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
455 start_timer "Data delivery adapter, 2 json per job"
456 for ((i=0; i<$NUM_CR; i++))
458 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
462 # Send small text via message-router to adapter
463 kafkapc_api_post_msg 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" 'Message-------1'
464 kafkapc_api_post_msg 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" 'Message-------3'
465 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 7 30
467 # Wait for data reception, adapter kafka
468 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
469 start_timer "Data delivery adapter kafka, 2 strings per job"
470 for ((i=0; i<$NUM_CR; i++))
472 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
476 # Send small json via message-router to mediator
477 mr_api_send_json "/events/unauthenticated.dmaapmed.json" '{"msg":"msg-0"}'
478 mr_api_send_json "/events/unauthenticated.dmaapmed.json" '{"msg":"msg-2"}'
480 # Wait for data reception, mediator
481 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
482 start_timer "Data delivery mediator, 2 json per job"
483 for ((i=0; i<$NUM_CR; i++))
485 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
489 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
490 # Send small text via message-router to mediator
491 kafkapc_api_post_msg 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" 'Message-------0'
492 kafkapc_api_post_msg 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" 'Message-------2'
493 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 7 30
495 # Wait for data reception, adapter kafka
496 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
497 start_timer "Data delivery mediator kafka, 2 strings per job"
498 for ((i=0; i<$NUM_CR; i++))
500 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
505 # Check received number of messages for mediator and adapter callbacks
506 for ((i=1; i<=$NUM_JOBS; i++))
508 cr_index=$(($i%$NUM_CR))
509 cr_equal $cr_index received_callbacks?id=job-med-data$i $DATA_DELIV_JOBS
510 cr_equal $cr_index received_callbacks?id=job-adp-data$i $DATA_DELIV_JOBS
511 cr_equal $cr_index received_callbacks?id=job-adp-kafka-data$i $DATA_DELIV_JOBS
512 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
513 cr_equal $cr_index received_callbacks?id=job-med-kafka-data$i $DATA_DELIV_JOBS
517 # Check received data and order for mediator and adapter callbacks
518 for ((i=1; i<=$NUM_JOBS; i++))
520 cr_index=$(($i%$NUM_CR))
521 cr_api_check_single_generic_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-0"}'
522 cr_api_check_single_generic_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-2"}'
523 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-1"}'
524 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-3"}'
525 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------1'
526 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------3'
527 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
528 cr_api_check_single_generic_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------0'
529 cr_api_check_single_generic_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------2'
533 # Set delay in the callback receiver to slow down callbacks
535 for ((i=0; i<$NUM_CR; i++))
537 cr_delay_callback 200 $i $SEC_DELAY
540 # Send small json via message-router to adapter
541 mr_api_send_json "/events/unauthenticated.dmaapadp.json" '{"msg":"msg-5"}'
542 mr_api_send_json "/events/unauthenticated.dmaapadp.json" '{"msg":"msg-7"}'
544 # Wait for data reception, adapter
545 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
546 start_timer "Data delivery adapter with $SEC_DELAY seconds delay in consumer, 2 json per job"
547 for ((i=0; i<$NUM_CR; i++))
549 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
554 # Send small text via message-router to adapter kafka
555 kafkapc_api_post_msg 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" 'Message-------5'
556 kafkapc_api_post_msg 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" 'Message-------7'
557 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 9 30
559 # Wait for data reception, adapter kafka
560 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
561 start_timer "Data delivery adapter kafka with $SEC_DELAY seconds delay in consumer, 2 strings per job"
562 for ((i=0; i<$NUM_CR; i++))
564 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
569 # Send small json via message-router to mediator
570 mr_api_send_json "/events/unauthenticated.dmaapmed.json" '{"msg":"msg-4"}'
571 mr_api_send_json "/events/unauthenticated.dmaapmed.json" '{"msg":"msg-6"}'
573 # Wait for data reception, mediator
574 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
575 start_timer "Data delivery mediator with $SEC_DELAY seconds delay in consumer, 2 json per job"
576 for ((i=0; i<$NUM_CR; i++))
578 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
582 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
583 # Send small text via message-router to mediator kafka
584 kafkapc_api_post_msg 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" 'Message-------4'
585 kafkapc_api_post_msg 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" 'Message-------6'
586 kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 9 30
588 # Wait for data reception, mediator kafka
589 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
590 start_timer "Data delivery mediator kafka with $SEC_DELAY seconds delay in consumer, 2 strings per job"
591 for ((i=0; i<$NUM_CR; i++))
593 cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
598 # Check received number of messages for mediator and adapter callbacks
599 for ((i=1; i<=$NUM_JOBS; i++))
601 cr_index=$(($i%$NUM_CR))
602 cr_equal $cr_index received_callbacks?id=job-med-data$i 9
603 cr_equal $cr_index received_callbacks?id=job-adp-data$i 9
604 cr_equal $cr_index received_callbacks?id=job-adp-kafka-data$i 9
605 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
606 cr_equal $cr_index received_callbacks?id=job-med-kafka-data$i 9
610 # Check received data and order for mediator and adapter callbacks
611 for ((i=1; i<=$NUM_JOBS; i++))
613 cr_index=$(($i%$NUM_CR))
614 cr_api_check_single_generic_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-4"}'
615 cr_api_check_single_generic_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-6"}'
616 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-5"}'
617 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-7"}'
618 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------5'
619 cr_api_check_single_generic_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------7'
620 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
621 cr_api_check_single_generic_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------4'
622 cr_api_check_single_generic_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------6'
626 #### TEST COMPLETE ####
632 auto_clean_environment