New test profile
[nonrtric.git] / test / common / mr_api_functions.sh
index da3e34d..977c3da 100755 (executable)
@@ -158,7 +158,7 @@ __DMAAPMR_kube_delete_all() {
 # args: <log-dir> <file-prexix>
 __MR_store_docker_logs() {
        if [ $RUNMODE == "KUBE" ]; then
-               kubectl  logs -l "autotest=MR" -n $KUBE_ONAP_NAMESPACE --tail=-1 > $1$2_mr_stub.log 2>&1
+               kubectl $KUBECONF  logs -l "autotest=MR" -n $KUBE_ONAP_NAMESPACE --tail=-1 > $1$2_mr_stub.log 2>&1
        else
                docker logs $MR_STUB_APP_NAME > $1$2_mr_stub.log 2>&1
        fi
@@ -169,11 +169,11 @@ __MR_store_docker_logs() {
 # args: <log-dir> <file-prexix>
 __DMAAPMR_store_docker_logs() {
        if [ $RUNMODE == "KUBE" ]; then
-               for podname in $(kubectl get pods -n $KUBE_ONAP_NAMESPACE -l "autotest=DMAAPMR" -o custom-columns=":metadata.name"); do
-                       kubectl logs -n $KUBE_ONAP_NAMESPACE $podname --tail=-1 > $1$2_$podname.log 2>&1
+               for podname in $(kubectl $KUBECONF get pods -n $KUBE_ONAP_NAMESPACE -l "autotest=DMAAPMR" -o custom-columns=":metadata.name"); do
+                       kubectl $KUBECONF logs -n $KUBE_ONAP_NAMESPACE $podname --tail=-1 > $1$2_$podname.log 2>&1
                done
        else
-               docker logs $MR_DMAAP_APP_NAME > $1$2mr.log 2>&1
+               docker logs $MR_DMAAP_APP_NAME > $1$2_mr.log 2>&1
                docker logs $MR_KAFKA_APP_NAME > $1$2_mr_kafka.log 2>&1
                docker logs $MR_ZOOKEEPER_APP_NAME > $1$2_mr_zookeeper.log 2>&1
        fi
@@ -199,9 +199,9 @@ __DMAAPMR_initial_setup() {
 # args: -
 __MR_statisics_setup() {
        if [ $RUNMODE == "KUBE" ]; then
-               echo "MR $MR_STUB_APP_NAME $KUBE_ONAP_NAMESPACE"
+               echo "MR-STUB $MR_STUB_APP_NAME $KUBE_ONAP_NAMESPACE"
        else
-               echo "MR $MR_STUB_APP_NAME"
+               echo "MR-STUB $MR_STUB_APP_NAME"
        fi
 }
 
@@ -211,12 +211,24 @@ __MR_statisics_setup() {
 # args: -
 __DMAAPMR_statisics_setup() {
        if [ $RUNMODE == "KUBE" ]; then
-               echo ""
+               echo "KAFKA $MR_KAFKA_APP_NAME $KUBE_ONAP_NAMESPACE MESSAGE-ROUTER $MR_DMAAP_APP_NAME $KUBE_ONAP_NAMESPACE ZOOKEEPER $MR_ZOOKEEPER_APP_NAME $KUBE_ONAP_NAMESPACE"
        else
-               echo ""
+               echo "KAFKA $MR_KAFKA_APP_NAME MESSAGE-ROUTER $MR_DMAAP_APP_NAME ZOOKEEPER $MR_ZOOKEEPER_APP_NAME"
        fi
 }
 
+# Check application requirements, e.g. helm, the the test needs. Exit 1 if req not satisfied
+# args: -
+__MR_test_requirements() {
+       :
+}
+
+# Check application requirements, e.g. helm, the the test needs. Exit 1 if req not satisfied
+# args: -
+__DMAAPMR_test_requirements() {
+       :
+}
+
 #######################################################
 
 # Description of port mappings when running MR-STUB only or MR-STUB + MESSAGE-ROUTER
@@ -273,7 +285,7 @@ use_mr_https() {
 # args: <protocol> <internal-port> <external-port> <internal-secure-port> <external-secure-port>
 __mr_set_protocoll() {
        echo -e $BOLD"$MR_STUB_DISPLAY_NAME and $MR_DMAAP_DISPLAY_NAME protocol setting"$EBOLD
-       echo -e " Using $BOLD http $EBOLD towards $MR_STUB_DISPLAY_NAME and $MR_DMAAP_DISPLAY_NAME"
+       echo -e " Using $BOLD $1 $EBOLD towards $MR_STUB_DISPLAY_NAME and $MR_DMAAP_DISPLAY_NAME"
 
        ## Access to Dmaap mediator
 
@@ -294,15 +306,17 @@ __mr_set_protocoll() {
 
        MR_SERVICE_PATH=$MR_STUB_PATH # access container->container, docker -  access pod->svc, kube
        MR_KAFKA_SERVICE_PATH=""
+       MR_ZOOKEEPER_SERVICE_PATH=""
        __check_included_image "DMAAPMR"
        if [ $? -eq 0 ]; then
                MR_SERVICE_PATH=$MR_DMAAP_PATH # access container->container, docker -  access pod->svc, kube
                MR_DMAAP_ADAPTER_HTTP=$MR_DMAAP_PATH
 
                MR_KAFKA_SERVICE_PATH=$MR_KAFKA_APP_NAME":"$MR_KAFKA_PORT
+               MR_ZOOKEEPER_SERVICE_PATH=$MR_ZOOKEEPER_APP_NAME":"$MR_ZOOKEEPER_PORT
        fi
 
-       # For directing calls from script to e.g.PMS via message rounter
+       # For directing calls from script to e.g.A1PMS via message rounter
        # These cases shall always go though the  mr-stub
        MR_ADAPTER_HTTP="http://"$MR_STUB_APP_NAME":"$2
        MR_ADAPTER_HTTPS="https://"$MR_STUB_APP_NAME":"$4
@@ -321,15 +335,17 @@ __mr_set_protocoll() {
                        MR_SERVICE_PATH=$MR_DMAAP_PATH
                        MR_DMAAP_ADAPTER_HTTP=$MR_DMAAP_PATH
                        MR_KAFKA_SERVICE_PATH=$MR_KAFKA_APP_NAME"."$KUBE_ONAP_NAMESPACE":"$MR_KAFKA_PORT
+                       MR_ZOOKEEPER_SERVICE_PATH=$MR_ZOOKEEPER_APP_NAME"."$KUBE_ONAP_NAMESPACE":"$MR_ZOOKEEPER_PORT
                fi
                __check_prestarted_image "DMAAPMR"
                if [ $? -eq 0 ]; then
                        MR_SERVICE_PATH=$MR_DMAAP_PATH
                        MR_DMAAP_ADAPTER_HTTP=$MR_DMAAP_PATH
                        MR_KAFKA_SERVICE_PATH=$MR_KAFKA_APP_NAME"."$KUBE_ONAP_NAMESPACE":"$MR_KAFKA_PORT
+                       MR_ZOOKEEPER_SERVICE_PATH=$MR_ZOOKEEPER_APP_NAME"."$KUBE_ONAP_NAMESPACE":"$MR_ZOOKEEPER_PORT
                fi
 
-               # For directing calls from script to e.g.PMS, via message rounter
+               # For directing calls from script to e.g.A1PMS, via message rounter
                # These calls shall always go though the  mr-stub
                MR_ADAPTER_HTTP="http://"$MR_STUB_APP_NAME.$KUBE_ONAP_NAMESPACE":"$3
                MR_ADAPTER_HTTPS="https://"$MR_STUB_APP_NAME.$KUBE_ONAP_NAMESPACE":"$5
@@ -343,74 +359,6 @@ __mr_set_protocoll() {
 
 }
 
-
-# use_mr_http() {                2                3                  4                5                  6                       7
-#      __mr_set_protocoll "http" $MR_INTERNAL_PORT $MR_EXTERNAL_PORT $MR_INTERNAL_PORT $MR_EXTERNAL_PORT $MR_INTERNAL_SECURE_PORT $MR_EXT_SECURE_PORT
-# }
-
-# use_mr_https() {
-#      __mr_set_protocoll "https" $MR_INTERNAL_SECURE_PORT $MR_EXTERNAL_SECURE_PORT
-# }
-
-# # Setup paths to svc/container for internal and external access
-# # args: <protocol> <internal-port> <external-port> <mr-stub-internal-port> <mr-stub-external-port> <mr-stub-internal-secure-port> <mr-stub-external-secure-port>
-# __mr_set_protocoll() {
-#      echo -e $BOLD"$MR_STUB_DISPLAY_NAME and $MR_DMAAP_DISPLAY_NAME protocol setting"$EBOLD
-#      echo -e " Using $BOLD http $EBOLD towards $MR_STUB_DISPLAY_NAME and $MR_DMAAP_DISPLAY_NAME"
-
-#      ## Access to Dmaap mediator
-
-#      MR_HTTPX=$1
-
-#      # Access via test script
-#      MR_STUB_PATH=$MR_HTTPX"://"$MR_STUB_APP_NAME":"$2  # access from script via proxy, docker
-#      MR_DMAAP_PATH=$MR_HTTPX"://"$MR_DMAAP_APP_NAME":"$2 # access from script via proxy, docker
-#      MR_DMAAP_ADAPTER_HTTP="" # Access to dmaap mr via proyx - set only if app is included
-
-#      MR_SERVICE_PATH=$MR_STUB_PATH # access container->container, docker -  access pod->svc, kube
-#      __check_included_image "DMAAPMR"
-#      if [ $? -eq 0 ]; then
-#              MR_SERVICE_PATH=$MR_DMAAP_PATH # access container->container, docker -  access pod->svc, kube
-#              MR_DMAAP_ADAPTER_HTTP=$MR_DMAAP_PATH
-#      fi
-
-#      # For directing calls from script to e.g.PMS via message rounter
-#      # These cases shall always go though the  mr-stub
-#      MR_ADAPTER_HTTP="http://"$MR_STUB_APP_NAME":"$4
-#      MR_ADAPTER_HTTPS="https://"$MR_STUB_APP_NAME":"$6
-
-#      MR_DMAAP_ADAPTER_TYPE="REST"
-
-#      if [ $RUNMODE == "KUBE" ]; then
-#              MR_STUB_PATH=$MR_HTTPX"://"$MR_STUB_APP_NAME.$KUBE_ONAP_NAMESPACE":"$3 # access from script via proxy, kube
-#              MR_DMAAP_PATH=$MR_HTTPX"://"$MR_DMAAP_APP_NAME.$KUBE_ONAP_NAMESPACE":"$3 # access from script via proxy, kube
-
-#              MR_SERVICE_PATH=$MR_STUB_PATH
-#              __check_included_image "DMAAPMR"
-#              if [ $? -eq 0 ]; then
-#                      MR_SERVICE_PATH=$MR_DMAAP_PATH
-#                      MR_DMAAP_ADAPTER_HTTP=$MR_DMAAP_PATH
-#              fi
-#              __check_prestarted_image "DMAAPMR"
-#              if [ $? -eq 0 ]; then
-#                      MR_SERVICE_PATH=$MR_DMAAP_PATH
-#                      MR_DMAAP_ADAPTER_HTTP=$MR_DMAAP_PATH
-#              fi
-
-#              # For directing calls from script to e.g.PMS, via message rounter
-#              # These calls shall always go though the  mr-stub
-#              MR_ADAPTER_HTTP="http://"$MR_STUB_APP_NAME":"$5
-#              MR_ADAPTER_HTTPS="https://"$MR_STUB_APP_NAME":"$7
-#      fi
-
-#      # For calls from script to the mr-stub
-#      MR_STUB_ADAPTER=$MR_STUB_PATH
-#      MR_STUB_ADAPTER_TYPE="REST"
-
-#      echo ""
-
-# }
-
 # Export env vars for config files, docker compose and kube resources
 # args: -
 __dmaapmr_export_vars() {
@@ -435,6 +383,10 @@ __dmaapmr_export_vars() {
        export MR_ZOOKEEPER_PORT
 
        export MR_KAFKA_SERVICE_PATH
+       export MR_ZOOKEEPER_SERVICE_PATH
+
+       export MR_KAFKA_KUBE_NODE_PORT
+       export MR_KAFKA_DOCKER_LOCALHOST_PORT
 }
 
 # Export env vars for config files, docker compose and kube resources
@@ -457,6 +409,7 @@ __mr_export_vars() {
        export MR_EXTERNAL_PORT
 
        export MR_KAFKA_SERVICE_PATH
+       export MR_ZOOKEEPER_SERVICE_PATH
 }
 
 
@@ -569,36 +522,10 @@ start_mr() {
                        __kube_create_instance app $MR_DMAAP_APP_NAME $input_yaml $output_yaml
 
 
-                       # echo " Retrieving host and ports for service..."
-                       # MR_DMAAP_HOST_NAME=$(__kube_get_service_host $MR_DMAAP_APP_NAME $KUBE_ONAP_NAMESPACE)
-
-                       # MR_EXT_PORT=$(__kube_get_service_port $MR_DMAAP_APP_NAME $KUBE_ONAP_NAMESPACE "http")
-                       # MR_EXT_SECURE_PORT=$(__kube_get_service_port $MR_DMAAP_APP_NAME $KUBE_ONAP_NAMESPACE "https")
-
-                       # echo " Host IP, http port, https port: $MR_DMAAP_APP_NAME $MR_EXT_PORT $MR_EXT_SECURE_PORT"
-                       # MR_SERVICE_PATH=""
-                       # if [ $MR_HTTPX == "http" ]; then
-                       #       MR_DMAAP_PATH=$MR_HTTPX"://"$MR_DMAAP_HOST_NAME":"$MR_EXT_PORT
-                       #       MR_SERVICE_PATH=$MR_HTTPX"://"$MR_DMAAP_APP_NAME"."$KUBE_ONAP_NAMESPACE":"$MR_EXT_PORT
-                       # else
-                       #       MR_DMAAP_PATH=$MR_HTTPX"://"$MR_DMAAP_HOST_NAME":"$MR_EXT_SECURE_PORT
-                       #       MR_SERVICE_PATH=$MR_HTTPX"://"$MR_DMAAP_APP_NAME"."$KUBE_ONAP_NAMESPACE":"$MR_EXT_SECURE_PORT
-                       # fi
-
                        __check_service_start $MR_DMAAP_APP_NAME $MR_DMAAP_PATH$MR_DMAAP_ALIVE_URL
 
-                       # Cannot create topics, returns 400 forever.....topics will be created during pipeclean below
-                       #__create_topic $MR_READ_TOPIC "Topic for reading policy messages"
-
-                       #__create_topic $MR_WRITE_TOPIC "Topic for writing policy messages"
-
-#                      __dmaap_pipeclean $MR_READ_TOPIC "/events/$MR_READ_TOPIC" "/events/$MR_READ_TOPIC/users/policy-agent?timeout=1000&limit=100"
-#
-#                      __dmaap_pipeclean $MR_WRITE_TOPIC "/events/$MR_WRITE_TOPIC" "/events/$MR_WRITE_TOPIC/users/mr-stub?timeout=1000&limit=100"
-
+                       echo " Kafka TCP node port $MR_KAFKA_KUBE_NODE_PORT"
 
-                       #__dmaap_pipeclean "unauthenticated.dmaapmed.json" "/events/unauthenticated.dmaapmed.json" "/events/unauthenticated.dmaapmed.json/dmaapmediatorproducer/STD_Fault_Messages?timeout=1000&limit=100"
-                       #__dmaap_pipeclean "unauthenticated.dmaapadp.json" "/events/unauthenticated.dmaapadp.json" "/events/unauthenticated.dmaapadp.json/dmaapadapterproducer/msgs?timeout=1000&limit=100"
 
                        if [ $# -gt 0 ]; then
                                if [ $(($#%3)) -eq 0 ]; then
@@ -650,41 +577,8 @@ start_mr() {
 
                fi
 
-               # echo " Retrieving host and ports for service..."
-               # MR_STUB_HOST_NAME=$(__kube_get_service_host $MR_STUB_APP_NAME $KUBE_ONAP_NAMESPACE)
-
-               # MR_EXT_PORT=$(__kube_get_service_port $MR_STUB_APP_NAME $KUBE_ONAP_NAMESPACE "http")
-               # MR_EXT_SECURE_PORT=$(__kube_get_service_port $MR_STUB_APP_NAME $KUBE_ONAP_NAMESPACE "https")
-
-               # echo " Host IP, http port, https port: $MR_STUB_APP_NAME $MR_EXT_PORT $MR_EXT_SECURE_PORT"
-               # if [ $MR_HTTPX == "http" ]; then
-               #       MR_STUB_PATH=$MR_HTTPX"://"$MR_STUB_HOST_NAME":"$MR_EXT_PORT
-               #       if [ -z "$MR_SERVICE_PATH" ]; then
-               #               MR_SERVICE_PATH=$MR_HTTPX"://"$MR_STUB_APP_NAME"."$KUBE_ONAP_NAMESPACE":"$MR_EXT_PORT
-               #       fi
-               # else
-               #       MR_STUB_PATH=$MR_HTTPX"://"$MR_STUB_HOST_NAME":"$MR_EXT_SECURE_PORT
-               #       if [ -z "$MR_SERVICE_PATH" ]; then
-               #               MR_SERVICE_PATH=$MR_HTTPX"://"$MR_STUB_APP_NAME"."$KUBE_ONAP_NAMESPACE":"$MR_EXT_SECURE_PORT
-               #       fi
-               # fi
-               # MR_ADAPTER_HTTP="http://"$MR_STUB_HOST_NAME":"$MR_EXT_PORT
-               # MR_ADAPTER_HTTPS="https://"$MR_STUB_HOST_NAME":"$MR_EXT_SECURE_PORT
-
-               # MR_STUB_ADAPTER=$MR_STUB_PATH
-               # MR_STUB_ADAPTER_TYPE="REST"
-
                __check_service_start $MR_STUB_APP_NAME $MR_STUB_PATH$MR_STUB_ALIVE_URL
 
-               echo -ne " Service $MR_STUB_APP_NAME - reset  "$SAMELINE
-               result=$(__do_curl $MR_STUB_PATH/reset)
-               if [ $? -ne 0 ]; then
-                       echo -e " Service $MR_STUB_APP_NAME - reset  $RED Failed $ERED - will continue"
-               else
-                       echo -e " Service $MR_STUB_APP_NAME - reset  $GREEN OK $EGREEN"
-               fi
-
-
        else
 
                __check_included_image 'DMAAPMR'
@@ -732,15 +626,7 @@ start_mr() {
 
                        __check_service_start $MR_DMAAP_APP_NAME $MR_DMAAP_PATH$MR_DMAAP_ALIVE_URL
 
-
-                       # Cannot create topics, returns 400 forever.....topics will be created during pipeclean below
-                       #__create_topic $MR_READ_TOPIC "Topic for reading policy messages"
-
-                       #__create_topic $MR_WRITE_TOPIC "Topic for writing policy messages"
-
-                       #__dmaap_pipeclean $MR_READ_TOPIC "/events/$MR_READ_TOPIC" "/events/$MR_READ_TOPIC/users/policy-agent?timeout=1000&limit=100"
-
-                       #__dmaap_pipeclean $MR_WRITE_TOPIC "/events/$MR_WRITE_TOPIC" "/events/$MR_WRITE_TOPIC/users/mr-stub?timeout=1000&limit=100"
+                       echo " Kafka TCP node port $MR_KAFKA_DOCKER_LOCALHOST_PORT"
 
                        if [ $# -gt 0 ]; then
                                if [ $(($#%3)) -eq 0 ]; then
@@ -755,13 +641,7 @@ start_mr() {
                                fi
                        fi
 
-                       #__dmaap_pipeclean "unauthenticated.dmaapmed.json" "/events/unauthenticated.dmaapmed.json" "/events/unauthenticated.dmaapmed.json/dmaapmediatorproducer/STD_Fault_Messages?timeout=1000&limit=100"
-                       #__dmaap_pipeclean "unauthenticated.dmaapadp.json" "/events/unauthenticated.dmaapadp.json" "/events/unauthenticated.dmaapadp.json/dmaapadapterproducer/msgs?timeout=1000&limit=100"
-
-                       echo " Current topics:"
-                       curlString="$MR_DMAAP_PATH/topics"
-                       result=$(__do_curl "$curlString")
-                       echo $result | indent2
+                       dmaap_api_print_topics
                fi
 
                __mr_export_vars
@@ -848,6 +728,15 @@ __dmaap_pipeclean() {
        return 1
 }
 
+# Helper function to list the current topics in DMAAP MR
+# args: -
+dmaap_api_print_topics() {
+       echo " Current topics:"
+       curlString="$MR_DMAAP_PATH/topics"
+       result=$(__do_curl "$curlString")
+       echo $result | indent2
+}
+
 
 ### Generic test cases for varaible checking
 
@@ -1017,12 +906,12 @@ mr_api_generate_json_payload_file() {
                __log_conf_fail_general "Only size between 1k and 10000k supported"
                return 1
        fi
-       echo -n "{\"a\":[" > $2
-       LEN=$(($1*150))
-       echo -n "\"a0\"" >> $2
+       echo -n "{\"abcdefghijklmno\":[" > $2
+       LEN=$(($1*100-2))
+       echo -n "\""ABCDEFG"\"" >> $2
        for ((idx=1; idx<$LEN; idx++))
        do
-               echo -n ",\"a$idx\"" >> $2
+               echo -n ",\"ABCDEFG\"" >> $2
        done
        echo -n "]}" >> $2
 
@@ -1030,7 +919,7 @@ mr_api_generate_json_payload_file() {
        return 0
 }
 
-# Create tet file for payload
+# Create text file for payload
 # arg: <size-in-kb> <filename>
 mr_api_generate_text_payload_file() {
        __log_conf_start $@