Added tests and improvements

Real message router and kafka now works in docker and in kubernetes
Added test of dmaap adapter kafka jobs
Added possibility to collect runtime stats of pods/containers
Improved callback receiver to handle large payloads
Various simplifications, improvements and corrections

Issue-ID: NONRTRIC-618

Signed-off-by: BjornMagnussonXA <bjorn.magnusson@est.tech>
Change-Id: I397b4842bf860a3126cc57ddcef61bd8db3aa76b
diff --git a/test/common/api_curl.sh b/test/common/api_curl.sh
index 17f80a5..f2777eb 100644
--- a/test/common/api_curl.sh
+++ b/test/common/api_curl.sh
@@ -23,7 +23,8 @@
 # one for sending the requests and one for receiving the response
 # but only when using the DMAAP interface
 # REST or DMAAP is controlled of the base url of $XX_ADAPTER
-# arg: (PA|ECS|CR|RC GET|PUT|POST|DELETE|GET_BATCH|PUT_BATCH|POST_BATCH|DELETE_BATCH <url>|<correlation-id> [<file>]) | (PA|ECS RESPONSE <correlation-id>)
+# arg: (PA|ECS|CR|RC GET|PUT|POST|DELETE|GET_BATCH|PUT_BATCH|POST_BATCH|DELETE_BATCH <url>|<correlation-id> [<file> [mime-type]]) | (PA|ECS RESPONSE <correlation-id>)
+# Default mime type for file is application/json unless specified in parameter mime-type
 # (Not for test scripts)
 __do_curl_to_api() {
 	TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
@@ -39,6 +40,7 @@
 
 	paramError=0
 	input_url=$3
+	fname=$4
     if [ $# -gt 0 ]; then
         if [ $1 == "PA" ]; then
 			__ADAPTER=$PA_ADAPTER
@@ -75,17 +77,21 @@
 			__ADAPTER=$MR_STUB_ADAPTER
 			__ADAPTER_TYPE=$MR_STUB_ADAPTER_TYPE
             __RETRY_CODES=""
-        else
+        elif [ $1 == "DMAAPMR" ]; then
+			__ADAPTER=$MR_DMAAP_ADAPTER_HTTP
+			__ADAPTER_TYPE=$MR_DMAAP_ADAPTER_TYPE
+            __RETRY_CODES=""
+		else
             paramError=1
         fi
-		if [ $__ADAPTER_TYPE == "MR-HTTP" ]; then
+		if [ "$__ADAPTER_TYPE" == "MR-HTTP" ]; then
 			__ADAPTER=$MR_ADAPTER_HTTP
 		fi
-		if [ $__ADAPTER_TYPE == "MR-HTTPS" ]; then
+		if [ "$__ADAPTER_TYPE" == "MR-HTTPS" ]; then
 			__ADAPTER=$MR_ADAPTER_HTTPS
 		fi
     fi
-    if [ $# -lt 3 ] || [ $# -gt 4 ]; then
+    if [ $# -lt 3 ] || [ $# -gt 5 ]; then
 		paramError=1
     else
 		timeout=""
@@ -100,6 +106,10 @@
 		fi
 		if [ $# -gt 3 ]; then
 			content=" -H Content-Type:application/json"
+			fname=$4
+			if [ $# -gt 4 ]; then
+				content=" -H Content-Type:"$5
+			fi
 		fi
 		if [ $2 == "GET" ] || [ $2 == "GET_BATCH" ]; then
 			oper="GET"
@@ -108,15 +118,15 @@
 			fi
 		elif [ $2 == "PUT" ] || [ $2 == "PUT_BATCH" ]; then
 			oper="PUT"
-			if [ $# -eq 4 ]; then
-				file=" --data-binary @$4"
+			if [ $# -gt 3 ]; then
+				file=" --data-binary @$fname"
 			fi
 			accept=" -H accept:application/json"
 		elif [ $2 == "POST" ] || [ $2 == "POST_BATCH" ]; then
 			oper="POST"
 			accept=" -H accept:*/*"
-			if [ $# -eq 4 ]; then
-				file=" --data-binary @$4"
+			if [ $# -gt 3 ]; then
+				file=" --data-binary @$fname"
 				accept=" -H accept:application/json"
 			fi
 		elif [ $2 == "DELETE" ] || [ $2 == "DELETE_BATCH" ]; then
@@ -153,8 +163,8 @@
         oper=" -X "$oper
         curlString="curl -k $proxyflag "${oper}${timeout}${httpcode}${accept}${content}${url}${file}
         echo " CMD: "$curlString >> $HTTPLOG
-		if [ $# -eq 4 ]; then
-			echo " FILE: $(<$4)" >> $HTTPLOG
+		if [ $# -gt 3 ]; then
+			echo " FILE: $(<$fname)" >> $HTTPLOG
 		fi
 
 		# Do retry for configured response codes, otherwise only one attempt
@@ -190,12 +200,12 @@
     else
 		if [ $oper != "RESPONSE" ]; then
 			requestUrl=$input_url
-			if [ $2 == "PUT" ] && [ $# -eq 4 ]; then
-				payload="$(cat $4 | tr -d '\n' | tr -d ' ' )"
+			if [ $2 == "PUT" ] && [ $# -gt 3 ]; then
+				payload="$(cat $fname | tr -d '\n' | tr -d ' ' )"
 				echo "payload: "$payload >> $HTTPLOG
 				file=" --data-binary "$payload
-			elif [ $# -eq 4 ]; then
-				echo " FILE: $(cat $4)" >> $HTTPLOG
+			elif [ $# -gt 3 ]; then
+				echo " FILE: $(cat $fname)" >> $HTTPLOG
 			fi
 			#urlencode the request url since it will be carried by send-request url
 			requestUrl=$(python3 -c "from __future__ import print_function; import urllib.parse, sys; print(urllib.parse.quote(sys.argv[1]))"  "$input_url")