9f2a6095a4cfc107c1a4e95b4151401b41bd4d25
[nonrtric.git] / test / auto-test / FTC3000.sh
1 #!/usr/bin/env 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 TC_ONELINE_DESCR="App test DMAAP Meditor and DMAAP Adapter"
21
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"
24
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"
27
28 #Prestarted app (not started by script) to include in the test when running kubernetes, space separated list
29 KUBE_PRESTARTED_IMAGES=""
30
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=""
35
36 #Supported test environment profiles
37 SUPPORTED_PROFILES="ORAN-E-RELEASE ORAN-F-RELEASE ORAN-G-RELEASE ORAN-H-RELEASE"
38 #Supported run modes
39 SUPPORTED_RUNMODES="DOCKER KUBE"
40
41 . ../common/testcase_common.sh $@
42
43 setup_testenvironment
44
45 #### TEST BEGIN ####
46
47 #Local vars in test script
48 ##########################
49 FLAT_A1_EI="1"
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"
55 fi
56
57 clean_environment
58
59 #use_cr_https
60 use_cr_http
61 use_ics_rest_https
62 use_mr_https
63 use_dmaapadp_https
64 use_dmaapmed_https
65
66 start_kube_proxy
67
68 start_cr $NUM_CR
69
70 start_ics NOPROXY $SIM_GROUP/$ICS_COMPOSE_DIR/$ICS_CONFIG_FILE
71
72 set_ics_trace
73
74 start_mr    "unauthenticated.dmaapmed.json" "/events" "dmaapmediatorproducer/STD_Fault_Messages" \
75             "unauthenticated.dmaapadp.json" "/events" "dmaapadapterproducer/msgs"
76
77 start_kafkapc
78
79 kafkapc_api_create_topic 201 "unauthenticated.dmaapadp_kafka.text" "text/plain"
80
81 kafkapc_api_start_sending 200 "unauthenticated.dmaapadp_kafka.text"
82
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
84
85 set_dmaapadp_trace
86
87 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
88     kafkapc_api_create_topic 201 "unauthenticated.dmaapmed_kafka.text" "text/plain"
89
90     kafkapc_api_start_sending 200 "unauthenticated.dmaapmed_kafka.text"
91 fi
92
93 start_dmaapmed NOPROXY $SIM_GROUP/$DMAAP_MED_COMPOSE_DIR/$DMAAP_MED_HOST_DATA_FILE
94
95 ics_equal json:data-producer/v1/info-producers 2 60
96
97 # Check producers
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"
102     else
103         __NAME="https:__$DMAAP_ADP_APP_NAME:$DMAAP_ADP_INTERNAL_SECURE_PORT"
104     fi
105     ics_api_edp_get_producer_ids_2 200 NOTYPE $__NAME DMaaP_Mediator_Producer
106 else
107     ics_api_edp_get_producer_ids_2 200 NOTYPE DmaapGenericInfoProducer DMaaP_Mediator_Producer
108 fi
109
110 if [[ "$DMAAP_MED_FEATURE_LEVEL" != *"KAFKATYPES"* ]]; then
111     ics_api_idc_get_type_ids 200 ExampleInformationType STD_Fault_Messages ExampleInformationTypeKafka
112 else
113     ics_api_idc_get_type_ids 200 ExampleInformationType STD_Fault_Messages ExampleInformationTypeKafka Kafka_TestTopic
114 fi
115
116
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++))
120 do
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
126     else
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
128     fi
129
130 done
131 print_timer
132
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++))
136 do
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
142     else
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
144     fi
145 done
146 print_timer
147
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++))
151 do
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
156 done
157 print_timer
158
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++))
163     do
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
169         else
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
171         fi
172     done
173     print_timer
174 fi
175
176 # Check job status
177 for ((i=1; i<=$NUM_JOBS; i++))
178 do
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
184     fi
185 done
186
187
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
191
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
194
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++))
201 do
202     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
203     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
204 done
205
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++))
210 do
211     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
212     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
213 done
214
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++))
219 do
220     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
221     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
222 done
223
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++))
228 do
229     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
230     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
231 done
232
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++))
237 do
238     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
239     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
240 done
241
242 # Check received data callbacks from adapter
243 for ((i=1; i<=$NUM_JOBS; i++))
244 do
245     cr_index=$(($i%$NUM_CR))
246     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
247     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
248     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
249     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
250     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
251 done
252
253
254 ## Send text file via message-router to adapter kafka
255
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++))
261 do
262     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
263     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
264 done
265
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++))
271 do
272     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
273     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
274 done
275
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++))
281 do
282     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
283     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
284 done
285
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++))
291 do
292     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
293     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
294 done
295
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++))
301 do
302     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
303     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
304 done
305
306 # Check received data callbacks from adapter kafka
307 for ((i=1; i<=$NUM_JOBS; i++))
308 do
309     cr_index=$(($i%$NUM_CR))
310     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
311     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
312     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
313     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
314     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
315 done
316
317 ## Send json file via message-router to mediator
318
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++))
323 do
324     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
325     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
326 done
327
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++))
332 do
333     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
334     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
335 done
336
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++))
341 do
342     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
343     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
344 done
345
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++))
350 do
351     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
352     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
353 done
354
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++))
359 do
360     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
361     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
362 done
363
364 # Check received data callbacks from mediator
365 for ((i=1; i<=$NUM_JOBS; i++))
366 do
367     cr_index=$(($i%$NUM_CR))
368     cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
369     cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
370     cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
371     cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
372     cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
373 done
374
375 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
376     ## Send text file via message-router to mediator kafka
377
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++))
383     do
384         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
385         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
386     done
387
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++))
393     do
394         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
395         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
396     done
397
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++))
403     do
404         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
405         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
406     done
407
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++))
413     do
414         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
415         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
416     done
417
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++))
423     do
424         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
425         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
426     done
427
428     # Check received data callbacks from adapter kafka
429     for ((i=1; i<=$NUM_JOBS; i++))
430     do
431         cr_index=$(($i%$NUM_CR))
432         cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
433         cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
434         cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
435         cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
436         cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
437     done
438 fi
439
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"}'
443
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
448 #in one batch
449 #########################################################
450
451 DATA_DELIV_JOBS=7 #Each job will eventuall get 5+2 msgs
452
453 # Wait for data recetption, 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++))
457 do
458     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
459 done
460 print_timer
461
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
466
467 # Wait for data recetption, 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++))
471 do
472     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
473 done
474 print_timer
475
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"}'
479
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++))
484 do
485     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
486 done
487 print_timer
488
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
494
495     # Wait for data recetption, 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++))
499     do
500         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
501     done
502     print_timer
503 fi
504
505 # Check received number of messages for mediator and adapter callbacks
506 for ((i=1; i<=$NUM_JOBS; i++))
507 do
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
514     fi
515 done
516
517 # Check received data and order for mediator and adapter callbacks
518 for ((i=1; i<=$NUM_JOBS; i++))
519 do
520     cr_index=$(($i%$NUM_CR))
521     cr_api_check_single_genric_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-0"}'
522     cr_api_check_single_genric_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-2"}'
523     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-1"}'
524     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-3"}'
525     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------1'
526     cr_api_check_single_genric_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_genric_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------0'
529         cr_api_check_single_genric_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------2'
530     fi
531 done
532
533 # Set delay in the callback receiver to slow down callbacks
534 SEC_DELAY=2
535 for ((i=0; i<$NUM_CR; i++))
536 do
537     cr_delay_callback 200 $i $SEC_DELAY
538 done
539
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"}'
543
544 # Wait for data recetption, 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++))
548 do
549     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
550 done
551 print_timer
552
553
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
558
559 # Wait for data recetption, 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++))
563 do
564     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
565 done
566 print_timer
567
568
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"}'
572
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++))
577 do
578     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
579 done
580 print_timer
581
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
587
588     # Wait for data recetption, 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++))
592     do
593         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
594     done
595     print_timer
596 fi
597
598 # Check received number of messages for mediator and adapter callbacks
599 for ((i=1; i<=$NUM_JOBS; i++))
600 do
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
607     fi
608 done
609
610 # Check received data and order for mediator and adapter callbacks
611 for ((i=1; i<=$NUM_JOBS; i++))
612 do
613     cr_index=$(($i%$NUM_CR))
614     cr_api_check_single_genric_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-4"}'
615     cr_api_check_single_genric_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-6"}'
616     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-5"}'
617     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-7"}'
618     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------5'
619     cr_api_check_single_genric_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_genric_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------4'
622         cr_api_check_single_genric_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------6'
623     fi
624 done
625
626 #### TEST COMPLETE ####
627
628 store_logs          END
629
630 print_result
631
632 auto_clean_environment