7f1808970a14ea79fa6ca5820280216676d1fb0e
[nonrtric.git] / test / auto-test / FTC3000.sh
1 #!/usr/bin/env bash
2
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
10 #
11 #       http://www.apache.org/licenses/LICENSE-2.0
12 #
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=================================================
19 #
20
21 TC_ONELINE_DESCR="App test DMAAP Meditor and DMAAP Adapter"
22
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"
25
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"
28
29 #Pre-started app (not started by script) to include in the test when running kubernetes, space separated list
30 KUBE_PRESTARTED_IMAGES=""
31
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=""
36
37 #Supported test environment profiles
38 SUPPORTED_PROFILES="ORAN-G-RELEASE ORAN-H-RELEASE ORAN-I-RELEASE"
39 #Supported run modes
40 SUPPORTED_RUNMODES="DOCKER KUBE"
41
42 . ../common/testcase_common.sh $@
43
44 setup_testenvironment
45
46 #### TEST BEGIN ####
47
48 #Local vars in test script
49 ##########################
50
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"
56 fi
57
58 clean_environment
59
60 #use_cr_https
61 use_cr_http
62 use_ics_rest_https
63 use_mr_https
64 use_dmaapadp_https
65 use_dmaapmed_https
66
67 start_kube_proxy
68
69 start_cr $NUM_CR
70
71 start_ics NOPROXY $SIM_GROUP/$ICS_COMPOSE_DIR/$ICS_CONFIG_FILE
72
73 set_ics_trace
74
75 start_mr    "unauthenticated.dmaapmed.json" "/events" "dmaapmediatorproducer/STD_Fault_Messages" \
76             "unauthenticated.dmaapadp.json" "/events" "dmaapadapterproducer/msgs"
77
78 start_kafkapc
79
80 kafkapc_api_create_topic 201 "unauthenticated.dmaapadp_kafka.text" "text/plain"
81
82 kafkapc_api_start_sending 200 "unauthenticated.dmaapadp_kafka.text"
83
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
85
86 set_dmaapadp_trace
87
88 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
89     kafkapc_api_create_topic 201 "unauthenticated.dmaapmed_kafka.text" "text/plain"
90
91     kafkapc_api_start_sending 200 "unauthenticated.dmaapmed_kafka.text"
92 fi
93
94 start_dmaapmed NOPROXY $SIM_GROUP/$DMAAP_MED_COMPOSE_DIR/$DMAAP_MED_HOST_DATA_FILE
95
96 ics_equal json:data-producer/v1/info-producers 2 60
97
98 # Check producers
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"
103     else
104         __NAME="https:__$DMAAP_ADP_APP_NAME:$DMAAP_ADP_INTERNAL_SECURE_PORT"
105     fi
106     ics_api_edp_get_producer_ids_2 200 NOTYPE $__NAME DMaaP_Mediator_Producer
107 else
108     ics_api_edp_get_producer_ids_2 200 NOTYPE DmaapGenericInfoProducer DMaaP_Mediator_Producer
109 fi
110
111 if [[ "$DMAAP_MED_FEATURE_LEVEL" != *"KAFKATYPES"* ]]; then
112     ics_api_idc_get_type_ids 200 ExampleInformationType STD_Fault_Messages ExampleInformationTypeKafka
113 else
114     ics_api_idc_get_type_ids 200 ExampleInformationType STD_Fault_Messages ExampleInformationTypeKafka Kafka_TestTopic
115 fi
116
117
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++))
121 do
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
127     else
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
129     fi
130
131 done
132 print_timer
133
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++))
137 do
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
143     else
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
145     fi
146 done
147 print_timer
148
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++))
152 do
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
157 done
158 print_timer
159
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++))
164     do
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
170         else
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
172         fi
173     done
174     print_timer
175 fi
176
177 # Check job status
178 for ((i=1; i<=$NUM_JOBS; i++))
179 do
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
185     fi
186 done
187
188
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
192
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
195
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++))
202 do
203     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
204     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
205 done
206
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++))
211 do
212     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
213     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
214 done
215
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++))
220 do
221     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
222     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
223 done
224
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++))
229 do
230     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
231     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
232 done
233
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++))
238 do
239     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
240     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
241 done
242
243 # Check received data callbacks from adapter
244 for ((i=1; i<=$NUM_JOBS; i++))
245 do
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
252 done
253
254
255 ## Send text file via message-router to adapter kafka
256
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++))
262 do
263     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
264     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
265 done
266
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++))
272 do
273     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
274     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
275 done
276
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++))
282 do
283     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
284     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
285 done
286
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++))
292 do
293     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
294     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
295 done
296
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++))
302 do
303     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
304     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
305 done
306
307 # Check received data callbacks from adapter kafka
308 for ((i=1; i<=$NUM_JOBS; i++))
309 do
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
316 done
317
318 ## Send json file via message-router to mediator
319
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++))
324 do
325     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
326     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
327 done
328
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++))
333 do
334     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
335     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
336 done
337
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++))
342 do
343     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
344     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
345 done
346
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++))
351 do
352     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
353     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
354 done
355
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++))
360 do
361     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
362     cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
363 done
364
365 # Check received data callbacks from mediator
366 for ((i=1; i<=$NUM_JOBS; i++))
367 do
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
374 done
375
376 if [[ "$DMAAP_MED_FEATURE_LEVEL" == *"KAFKATYPES"* ]]; then
377     ## Send text file via message-router to mediator kafka
378
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++))
384     do
385         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
386         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
387     done
388
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++))
394     do
395         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
396         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
397     done
398
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++))
404     do
405         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
406         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
407     done
408
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++))
414     do
415         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
416         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
417     done
418
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++))
424     do
425         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
426         cr_equal $i received_callback_batches $EXPECTED_BATCHES_DELIV 60
427     done
428
429     # Check received data callbacks from adapter kafka
430     for ((i=1; i<=$NUM_JOBS; i++))
431     do
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
438     done
439 fi
440
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"}'
444
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
449 #in one batch
450 #########################################################
451
452 DATA_DELIV_JOBS=7 #Each job will eventually get 5+2 msgs
453
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++))
458 do
459     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
460 done
461 print_timer
462
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
467
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++))
472 do
473     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
474 done
475 print_timer
476
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"}'
480
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++))
485 do
486     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
487 done
488 print_timer
489
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
495
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++))
500     do
501         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 60
502     done
503     print_timer
504 fi
505
506 # Check received number of messages for mediator and adapter callbacks
507 for ((i=1; i<=$NUM_JOBS; i++))
508 do
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
515     fi
516 done
517
518 # Check received data and order for mediator and adapter callbacks
519 for ((i=1; i<=$NUM_JOBS; i++))
520 do
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'
531     fi
532 done
533
534 # Set delay in the callback receiver to slow down callbacks
535 SEC_DELAY=2
536 for ((i=0; i<$NUM_CR; i++))
537 do
538     cr_delay_callback 200 $i $SEC_DELAY
539 done
540
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"}'
544
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++))
549 do
550     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
551 done
552 print_timer
553
554
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
559
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++))
564 do
565     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
566 done
567 print_timer
568
569
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"}'
573
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++))
578 do
579     cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
580 done
581 print_timer
582
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
588
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++))
593     do
594         cr_equal $i received_callbacks $EXPECTED_DATA_DELIV 100
595     done
596     print_timer
597 fi
598
599 # Check received number of messages for mediator and adapter callbacks
600 for ((i=1; i<=$NUM_JOBS; i++))
601 do
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
608     fi
609 done
610
611 # Check received data and order for mediator and adapter callbacks
612 for ((i=1; i<=$NUM_JOBS; i++))
613 do
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'
624     fi
625 done
626
627 #### TEST COMPLETE ####
628
629 store_logs          END
630
631 print_result
632
633 auto_clean_environment