New test profile
[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"
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     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
125
126 done
127 print_timer
128
129 # Create jobs for adapter kafka - CR stores data as MD5 hash
130 start_timer "Create adapter (kafka) jobs: $NUM_JOBS"
131 for ((i=1; i<=$NUM_JOBS; i++))
132 do
133     cr_index=$(($i%$NUM_CR))
134     service_text="CR_SERVICE_TEXT_PATH_"$cr_index
135     service_app="CR_SERVICE_APP_PATH_"$cr_index
136     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
137
138 done
139 print_timer
140
141 # Create jobs for mediator - CR stores data as MD5 hash
142 start_timer "Create mediator jobs: $NUM_JOBS"
143 for ((i=1; i<=$NUM_JOBS; i++))
144 do
145     cr_index=$(($i%$NUM_CR))
146     service_mr="CR_SERVICE_MR_PATH_"$cr_index
147     service_app="CR_SERVICE_APP_PATH_"$cr_index
148     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
149 done
150 print_timer
151
152 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
153     # Create jobs for mediator kafka - CR stores data as MD5 hash
154     start_timer "Create mediator (kafka) jobs: $NUM_JOBS"
155     for ((i=1; i<=$NUM_JOBS; i++))
156     do
157         cr_index=$(($i%$NUM_CR))
158         service_text="CR_SERVICE_TEXT_PATH_"$cr_index
159         service_app="CR_SERVICE_APP_PATH_"$cr_index
160         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
161     done
162     print_timer
163 fi
164
165 # Check job status
166 for ((i=1; i<=$NUM_JOBS; i++))
167 do
168     ics_api_a1_get_job_status 200 job-med-$i ENABLED 30
169     ics_api_a1_get_job_status 200 job-adp-$i ENABLED 30
170     ics_api_a1_get_job_status 200 job-adp-kafka-$i ENABLED 30
171     if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
172         ics_api_a1_get_job_status 200 job-med-kafka-$i ENABLED 30
173     fi
174 done
175
176
177 EXPECTED_DATA_DELIV=0 #Total delivered msg per CR
178 EXPECTED_BATCHES_DELIV=0 #Total delivered batches per CR
179 DATA_DELIV_JOBS=0 #Total delivered msg per job per CR
180
181 mr_api_generate_json_payload_file 1 ./tmp/data_for_dmaap_test.json
182 kafkapc_api_generate_text_payload_file 1 ./tmp/data_for_dmaap_test.txt
183
184 ## Send json file via message-router to adapter
185 DATA_DELIV_JOBS=5 #Each job will eventuall get 2 msgs
186 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
187 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
188 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
189 for ((i=0; i<$NUM_CR; i++))
190 do
191     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
192     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
193 done
194
195 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
196 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
197 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
198 for ((i=0; i<$NUM_CR; i++))
199 do
200     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
201     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
202 done
203
204 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
205 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
206 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
207 for ((i=0; i<$NUM_CR; i++))
208 do
209     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
210     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
211 done
212
213 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
214 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
215 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
216 for ((i=0; i<$NUM_CR; i++))
217 do
218     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
219     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
220 done
221
222 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
223 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
224 mr_api_send_json_file "/events/unauthenticated.dmaapadp.json" ./tmp/data_for_dmaap_test.json
225 for ((i=0; i<$NUM_CR; i++))
226 do
227     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
228     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
229 done
230
231 # Check received data callbacks from adapter
232 for ((i=1; i<=$NUM_JOBS; i++))
233 do
234     cr_index=$(($i%$NUM_CR))
235     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
236     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
237     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
238     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
239     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-data$i ./tmp/data_for_dmaap_test.json
240 done
241
242
243 ## Send text file via message-router to adapter kafka
244
245 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
246 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
247 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
248 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 1 30
249 for ((i=0; i<$NUM_CR; i++))
250 do
251     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
252     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
253 done
254
255 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
256 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
257 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
258 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 2 30
259 for ((i=0; i<$NUM_CR; i++))
260 do
261     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
262     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
263 done
264
265 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
266 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
267 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
268 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 3 30
269 for ((i=0; i<$NUM_CR; i++))
270 do
271     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
272     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
273 done
274
275 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
276 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
277 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
278 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 4 30
279 for ((i=0; i<$NUM_CR; i++))
280 do
281     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
282     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
283 done
284
285 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
286 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
287 kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
288 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 5 30
289 for ((i=0; i<$NUM_CR; i++))
290 do
291     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
292     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
293 done
294
295 # Check received data callbacks from adapter kafka
296 for ((i=1; i<=$NUM_JOBS; i++))
297 do
298     cr_index=$(($i%$NUM_CR))
299     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
300     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
301     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
302     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
303     cr_api_check_single_genric_event_md5_file 200 $cr_index job-adp-kafka-data$i ./tmp/data_for_dmaap_test.txt
304 done
305
306 ## Send json file via message-router to mediator
307
308 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
309 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
310 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
311 for ((i=0; i<$NUM_CR; i++))
312 do
313     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
314     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
315 done
316
317 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
318 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
319 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
320 for ((i=0; i<$NUM_CR; i++))
321 do
322     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
323     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
324 done
325
326 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
327 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
328 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
329 for ((i=0; i<$NUM_CR; i++))
330 do
331     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
332     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
333 done
334
335 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
336 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
337 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
338 for ((i=0; i<$NUM_CR; i++))
339 do
340     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
341     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
342 done
343
344 EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
345 EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
346 mr_api_send_json_file "/events/unauthenticated.dmaapmed.json" ./tmp/data_for_dmaap_test.json
347 for ((i=0; i<$NUM_CR; i++))
348 do
349     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
350     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
351 done
352
353 # Check received data callbacks from mediator
354 for ((i=1; i<=$NUM_JOBS; i++))
355 do
356     cr_index=$(($i%$NUM_CR))
357     cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
358     cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
359     cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
360     cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
361     cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-data$i ./tmp/data_for_dmaap_test.json
362 done
363
364 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
365     ## Send text file via message-router to mediator kafka
366
367     EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
368     EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
369     kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
370     kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 1 30
371     for ((i=0; i<$NUM_CR; i++))
372     do
373         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
374         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
375     done
376
377     EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
378     EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
379     kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
380     kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 2 30
381     for ((i=0; i<$NUM_CR; i++))
382     do
383         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
384         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
385     done
386
387     EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
388     EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
389     kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
390     kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 3 30
391     for ((i=0; i<$NUM_CR; i++))
392     do
393         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
394         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
395     done
396
397     EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
398     EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
399     kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
400     kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 4 30
401     for ((i=0; i<$NUM_CR; i++))
402     do
403         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
404         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
405     done
406
407     EXPECTED_DATA_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_DATA_DELIV))
408     EXPECTED_BATCHES_DELIV=$(($NUM_JOBS/$NUM_CR+$EXPECTED_BATCHES_DELIV))
409     kafkapc_api_post_msg_from_file 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" ./tmp/data_for_dmaap_test.txt
410     kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 5 30
411     for ((i=0; i<$NUM_CR; i++))
412     do
413         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
414         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
415     done
416
417     # Check received data callbacks from adapter kafka
418     for ((i=1; i<=$NUM_JOBS; i++))
419     do
420         cr_index=$(($i%$NUM_CR))
421         cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
422         cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
423         cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
424         cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
425         cr_api_check_single_genric_event_md5_file 200 $cr_index job-med-kafka-data$i ./tmp/data_for_dmaap_test.txt
426     done
427 fi
428
429 # Send small json via message-router to adapter
430 mr_api_send_json "/events/unauthenticated.dmaapadp.json" '{"msg":"msg-1"}'
431 mr_api_send_json "/events/unauthenticated.dmaapadp.json" '{"msg":"msg-3"}'
432
433 #########################################################
434 #Checking number of message batches is not reliable when
435 #sending several messages at the same time
436 #Two messages may be send separately or to together
437 #in one batch
438 #########################################################
439
440 DATA_DELIV_JOBS=7 #Each job will eventuall get 5+2 msgs
441
442 # Wait for data recetption, adapter
443 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
444 start_timer "Data delivery adapter, 2 json per job"
445 for ((i=0; i<$NUM_CR; i++))
446 do
447     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
448 done
449 print_timer
450
451 # Send small text via message-router to adapter
452 kafkapc_api_post_msg 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" 'Message-------1'
453 kafkapc_api_post_msg 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" 'Message-------3'
454 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 7 30
455
456 # Wait for data recetption, adapter kafka
457 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
458 start_timer "Data delivery adapter kafka, 2 strings per job"
459 for ((i=0; i<$NUM_CR; i++))
460 do
461     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
462 done
463 print_timer
464
465 # Send small json via message-router to mediator
466 mr_api_send_json "/events/unauthenticated.dmaapmed.json" '{"msg":"msg-0"}'
467 mr_api_send_json "/events/unauthenticated.dmaapmed.json" '{"msg":"msg-2"}'
468
469 # Wait for data reception, mediator
470 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
471 start_timer "Data delivery mediator, 2 json per job"
472 for ((i=0; i<$NUM_CR; i++))
473 do
474     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
475 done
476 print_timer
477
478 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
479     # Send small text via message-router to mediator
480     kafkapc_api_post_msg 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" 'Message-------0'
481     kafkapc_api_post_msg 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" 'Message-------2'
482     kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 7 30
483
484     # Wait for data recetption, adapter kafka
485     EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
486     start_timer "Data delivery mediator kafka, 2 strings per job"
487     for ((i=0; i<$NUM_CR; i++))
488     do
489         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
490     done
491     print_timer
492 fi
493
494 # Check received number of messages for mediator and adapter callbacks
495 for ((i=1; i<=$NUM_JOBS; i++))
496 do
497     cr_index=$(($i%$NUM_CR))
498     cr_equal $cr_index received_callbacks?id=job-med-data$i $DATA_DELIV_JOBS
499     cr_equal $cr_index received_callbacks?id=job-adp-data$i $DATA_DELIV_JOBS
500     cr_equal $cr_index received_callbacks?id=job-adp-kafka-data$i $DATA_DELIV_JOBS
501     if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
502         cr_equal $cr_index received_callbacks?id=job-med-kafka-data$i $DATA_DELIV_JOBS
503     fi
504 done
505
506 # Check received data and order for mediator and adapter callbacks
507 for ((i=1; i<=$NUM_JOBS; i++))
508 do
509     cr_index=$(($i%$NUM_CR))
510     cr_api_check_single_genric_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-0"}'
511     cr_api_check_single_genric_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-2"}'
512     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-1"}'
513     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-3"}'
514     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------1'
515     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------3'
516     if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
517         cr_api_check_single_genric_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------0'
518         cr_api_check_single_genric_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------2'
519     fi
520 done
521
522 # Set delay in the callback receiver to slow down callbacks
523 SEC_DELAY=2
524 for ((i=0; i<$NUM_CR; i++))
525 do
526     cr_delay_callback 200 $i $SEC_DELAY
527 done
528
529 # Send small json via message-router to adapter
530 mr_api_send_json "/events/unauthenticated.dmaapadp.json" '{"msg":"msg-5"}'
531 mr_api_send_json "/events/unauthenticated.dmaapadp.json" '{"msg":"msg-7"}'
532
533 # Wait for data recetption, adapter
534 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
535 start_timer "Data delivery adapter with $SEC_DELAY seconds delay in consumer, 2 json per job"
536 for ((i=0; i<$NUM_CR; i++))
537 do
538     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
539 done
540 print_timer
541
542
543 # Send small text via message-router to adapter kafka
544 kafkapc_api_post_msg 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" 'Message-------5'
545 kafkapc_api_post_msg 200 "unauthenticated.dmaapadp_kafka.text" "text/plain" 'Message-------7'
546 kafkapc_equal topics/unauthenticated.dmaapadp_kafka.text/counters/sent 9 30
547
548 # Wait for data recetption, adapter kafka
549 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
550 start_timer "Data delivery adapter kafka with $SEC_DELAY seconds delay in consumer, 2 strings per job"
551 for ((i=0; i<$NUM_CR; i++))
552 do
553     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
554 done
555 print_timer
556
557
558 # Send small json via message-router to mediator
559 mr_api_send_json "/events/unauthenticated.dmaapmed.json" '{"msg":"msg-4"}'
560 mr_api_send_json "/events/unauthenticated.dmaapmed.json" '{"msg":"msg-6"}'
561
562 # Wait for data reception, mediator
563 EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
564 start_timer "Data delivery mediator with $SEC_DELAY seconds delay in consumer, 2 json per job"
565 for ((i=0; i<$NUM_CR; i++))
566 do
567     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
568 done
569 print_timer
570
571 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
572     # Send small text via message-router to mediator kafka
573     kafkapc_api_post_msg 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" 'Message-------4'
574     kafkapc_api_post_msg 200 "unauthenticated.dmaapmed_kafka.text" "text/plain" 'Message-------6'
575     kafkapc_equal topics/unauthenticated.dmaapmed_kafka.text/counters/sent 9 30
576
577     # Wait for data recetption, mediator kafka
578     EXPECTED_DATA_DELIV=$(($NUM_JOBS*2/$NUM_CR+$EXPECTED_DATA_DELIV))
579     start_timer "Data delivery mediator kafka with $SEC_DELAY seconds delay in consumer, 2 strings per job"
580     for ((i=0; i<$NUM_CR; i++))
581     do
582         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
583     done
584     print_timer
585 fi
586
587 # Check received number of messages for mediator and adapter callbacks
588 for ((i=1; i<=$NUM_JOBS; i++))
589 do
590     cr_index=$(($i%$NUM_CR))
591     cr_equal $cr_index received_callbacks?id=job-med-data$i 9
592     cr_equal $cr_index received_callbacks?id=job-adp-data$i 9
593     cr_equal $cr_index received_callbacks?id=job-adp-kafka-data$i 9
594     if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
595         cr_equal $cr_index received_callbacks?id=job-med-kafka-data$i 9
596     fi
597 done
598
599 # Check received data and order for mediator and adapter callbacks
600 for ((i=1; i<=$NUM_JOBS; i++))
601 do
602     cr_index=$(($i%$NUM_CR))
603     cr_api_check_single_genric_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-4"}'
604     cr_api_check_single_genric_event_md5 200 $cr_index job-med-data$i '{"msg":"msg-6"}'
605     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-5"}'
606     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-data$i '{"msg":"msg-7"}'
607     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------5'
608     cr_api_check_single_genric_event_md5 200 $cr_index job-adp-kafka-data$i 'Message-------7'
609     if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
610         cr_api_check_single_genric_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------4'
611         cr_api_check_single_genric_event_md5 200 $cr_index job-med-kafka-data$i 'Message-------6'
612     fi
613 done
614
615 #### TEST COMPLETE ####
616
617 store_logs          END
618
619 print_result
620
621 auto_clean_environment