X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Fcommon%2Fapi_curl.sh;h=e99f5791f94f0028e2c24a07ba4185ef21f32592;hb=d2aeca8843fe3ffca2e73dec5b64daeef0dda938;hp=1ea47dd6b3747150422d195433cccc694d318331;hpb=4f7f0cda2f07f62dcbb2e371fc09764b2337a8e9;p=nonrtric.git diff --git a/test/common/api_curl.sh b/test/common/api_curl.sh index 1ea47dd6..e99f5791 100644 --- a/test/common/api_curl.sh +++ b/test/common/api_curl.sh @@ -17,31 +17,42 @@ # ============LICENSE_END================================================= # -# Generic function to query the agent/ECS via the REST or DMAAP interface. -# Used by all other agent/ECS api test functions +# Generic function to query the A1PMS/ICS via the REST or DMAAP interface. +# Used by all other A1PMS/ICS api test functions # If operation sufffix is '_BATCH' the the send and get response is split in two sequences, # 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 | []) | (PA|ECS RESPONSE ) +# arg: (A1PMS|ICS|CR|RC GET|PUT|POST|DELETE|GET_BATCH|PUT_BATCH|POST_BATCH|DELETE_BATCH | [ [mime-type]]) | (A1PMS|ICS RESPONSE ) +# 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") echo " (${BASH_LINENO[0]}) - ${TIMESTAMP}: ${FUNCNAME[0]}" $@ >> $HTTPLOG + proxyflag="" + if [ ! -z "$KUBE_PROXY_PATH" ]; then + if [ $KUBE_PROXY_HTTPX == "http" ]; then + proxyflag=" --proxy $KUBE_PROXY_PATH" + else + proxyflag=" --proxy-insecure --proxy $KUBE_PROXY_PATH" + fi + fi + paramError=0 input_url=$3 + fname=$4 if [ $# -gt 0 ]; then - if [ $1 == "PA" ]; then - __ADAPTER=$PA_ADAPTER - __ADAPTER_TYPE=$PA_ADAPTER_TYPE - __RETRY_CODES=$AGENT_RETRY_CODES - if [ $PMS_VERSION != "V1" ]; then - input_url=$PMS_API_PREFIX$3 - fi - elif [ $1 == "ECS" ]; then - __ADAPTER=$ECS_ADAPTER - __ADAPTER_TYPE=$ECS_ADAPTER_TYPE - __RETRY_CODES=$ECS_RETRY_CODES + if [ $1 == "A1PMS" ]; then + __ADAPTER=$A1PMS_ADAPTER + __ADAPTER_TYPE=$A1PMS_ADAPTER_TYPE + __RETRY_CODES=$A1PMS_RETRY_CODES + if [ $A1PMS_VERSION != "V1" ]; then + input_url=$A1PMS_API_PREFIX$3 + fi + elif [ $1 == "ICS" ]; then + __ADAPTER=$ICS_ADAPTER + __ADAPTER_TYPE=$ICS_ADAPTER_TYPE + __RETRY_CODES=$ICS_RETRY_CODES elif [ $1 == "CR" ]; then __ADAPTER=$CR_ADAPTER __ADAPTER_TYPE=$CR_ADAPTER_TYPE @@ -50,17 +61,41 @@ __do_curl_to_api() { __ADAPTER=$RC_ADAPTER __ADAPTER_TYPE=$RC_ADAPTER_TYPE __RETRY_CODES="" - else + elif [ $1 == "NGW" ]; then + __ADAPTER=$NGW_ADAPTER + __ADAPTER_TYPE=$NGW_ADAPTER_TYPE + __RETRY_CODES="" + elif [ $1 == "DMAAPADP" ]; then + __ADAPTER=$DMAAP_ADP_ADAPTER + __ADAPTER_TYPE=$DMAAP_ADP_ADAPTER_TYPE + __RETRY_CODES="" + elif [ $1 == "DMAAPMED" ]; then + __ADAPTER=$DMAAP_MED_ADAPTER + __ADAPTER_TYPE=$DMAAP_MED_ADAPTER_TYPE + __RETRY_CODES="" + elif [ $1 == "MRSTUB" ]; then + __ADAPTER=$MR_STUB_ADAPTER + __ADAPTER_TYPE=$MR_STUB_ADAPTER_TYPE + __RETRY_CODES="" + elif [ $1 == "DMAAPMR" ]; then + __ADAPTER=$MR_DMAAP_ADAPTER_HTTP + __ADAPTER_TYPE=$MR_DMAAP_ADAPTER_TYPE + __RETRY_CODES="" + elif [ $1 == "KAFKAPC" ]; then + __ADAPTER=$KAFKAPC_ADAPTER + __ADAPTER_TYPE=$KAFKAPC_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="" @@ -75,6 +110,10 @@ __do_curl_to_api() { 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" @@ -83,15 +122,16 @@ __do_curl_to_api() { 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 [ $# -ne 3 ]; then - paramError=1 + if [ $# -gt 3 ]; then + file=" --data-binary @$fname" + accept=" -H accept:application/json" fi elif [ $2 == "DELETE" ] || [ $2 == "DELETE_BATCH" ]; then oper="DELETE" @@ -103,7 +143,6 @@ __do_curl_to_api() { if [ $# -ne 3 ]; then paramError=1 fi - #if [ $__ADAPTER == $__RESTBASE ] || [ $__ADAPTER == $__RESTBASE_SECURE ]; then if [ $__ADAPTER_TYPE == "REST" ]; then paramError=1 fi @@ -115,20 +154,19 @@ __do_curl_to_api() { if [ $paramError -eq 1 ]; then ((RES_CONF_FAIL++)) echo "-Incorrect number of parameters to __do_curl_to_api " $@ >> $HTTPLOG - echo "-Expected: (PA|ECS GET|PUT|POST|DELETE|GET_BATCH|PUT_BATCH|POST_BATCH|DELETE_BATCH []) | (PA|ECS RESPONSE )" >> $HTTPLOG + echo "-Expected: (A1PMS|ICS GET|PUT|POST|DELETE|GET_BATCH|PUT_BATCH|POST_BATCH|DELETE_BATCH [ [mime-type]]) | (A1PMS|ICS RESPONSE )" >> $HTTPLOG echo "-Returning response 000" >> $HTTPLOG echo "-000" return 1 fi - #if [ $__ADAPTER == $__RESTBASE ] || [ $__ADAPTER == $__RESTBASE_SECURE ]; then if [ $__ADAPTER_TYPE == "REST" ]; then url=" "${__ADAPTER}${input_url} oper=" -X "$oper - curlString="curl -k "${oper}${timeout}${httpcode}${accept}${content}${url}${file} + 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 @@ -164,17 +202,17 @@ __do_curl_to_api() { 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") url=" "${__ADAPTER}"/send-request?url="${requestUrl}"&operation="${oper} - curlString="curl -k -X POST${timeout}${httpcode}${content}${url}${file}" + curlString="curl -k $proxyflag -X POST${timeout}${httpcode}${content}${url}${file}" echo " CMD: "$curlString >> $HTTPLOG res=$($curlString) retcode=$? @@ -200,7 +238,7 @@ __do_curl_to_api() { cid=$3 fi url=" "${__ADAPTER}"/receive-response?correlationid="${cid} - curlString="curl -k -X GET"${timeout}${httpcode}${url} + curlString="curl -k $proxyflag -X GET"${timeout}${httpcode}${url} echo " CMD: "$curlString >> $HTTPLOG res=$($curlString) retcode=$? @@ -212,7 +250,7 @@ __do_curl_to_api() { echo " RESP: "$res >> $HTTPLOG status=${res:${#res}-3} TS=$SECONDS - # wait of the reply from the agent/ECS... + # wait of the reply from the A1PMS/ICS... while [ $status -eq 204 ]; do if [ $(($SECONDS - $TS)) -gt 90 ]; then echo " RETCODE: (timeout after 90s)" >> $HTTPLOG