### API functiond towards the Policy Agent
-# Generic function to query the agent via the REST or DMAAP interface.
-# Used by all other agent api test functions
-# If operation prefix 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 $ADAPTER
-# arg: (GET|PUT|POST|DELETE|GET_BATCH|PUT_BATCH|POST_BATCH|DELETE_BATCH <url> [<file>]) | (RESPONSE <correlation-id>)
-# (Not for test scripts)
-__do_curl_to_agent() {
- echo "(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ >> $HTTPLOG
- paramError=0
-
- if [ $# -lt 2 ] || [ $# -gt 3 ]; then
- paramError=1
- else
- timeout=""
- oper=""
- file=''
- httpcode=" -sw %{http_code}"
- accept=''
- content=''
- batch=0
- if [[ $1 == *"_BATCH" ]]; then
- batch=1
- fi
- if [ $# -gt 2 ]; then
- content=" -H Content-Type:application/json"
- fi
- if [ $1 == "GET" ] || [ $1 == "GET_BATCH" ]; then
- oper="GET"
- if [ $# -ne 2 ]; then
- paramError=1
- fi
- elif [ $1 == "PUT" ] || [ $1 == "PUT_BATCH" ]; then
- oper="PUT"
- if [ $# -eq 3 ]; then
- file=" --data-binary @$3"
- fi
- accept=" -H accept:application/json"
- elif [ $1 == "POST" ] || [ $1 == "POST_BATCH" ]; then
- oper="POST"
- accept=" -H accept:*/*"
- if [ $# -ne 2 ]; then
- paramError=1
- fi
- elif [ $1 == "DELETE" ] || [ $1 == "DELETE_BATCH" ]; then
- oper="DELETE"
- if [ $# -ne 2 ]; then
- paramError=1
- fi
- elif [ $1 == "RESPONSE" ]; then
- oper="RESPONSE"
- if [ $# -ne 2 ]; then
- paramError=1
- fi
- if ! [ $ADAPTER == $DMAAPBASE ]; then
- paramError=1
- fi
- else
- paramError=1
- fi
- fi
-
- if [ $paramError -eq 1 ]; then
- ((RES_CONF_FAIL++))
- echo "-Incorrect number of parameters to __do_curl_agent " $@ >> $HTTPLOG
- echo "-Expected: (GET|PUT|POST|DELETE|GET_BATCH|PUT_BATCH|POST_BATCH|DELETE_BATCH <url> [<file>]) | (RESPONSE <correlation-id>) [<file>]" >> $HTTPLOG
- echo "-Returning response 000" >> $HTTPLOG
- echo "-000"
- return 1
- fi
-
- if [ $ADAPTER == $RESTBASE ] || [ $ADAPTER == $RESTBASE_SECURE ]; then
- url=" "${ADAPTER}${2}
- oper=" -X "$oper
- curlString="curl -k "${oper}${timeout}${httpcode}${accept}${content}${url}${file}
- echo " CMD: "$curlString >> $HTTPLOG
- if [ $# -eq 3 ]; then
- echo " FILE: $(<$3)" >> $HTTPLOG
- fi
-
- # Do retry for configured response codes, otherwise only one attempt
- maxretries=5
- while [ $maxretries -ge 0 ]; do
-
- let maxretries=maxretries-1
- res=$($curlString)
- retcode=$?
- if [ $retcode -ne 0 ]; then
- echo " RETCODE: "$retcode >> $HTTPLOG
- echo "000"
- return 1
- fi
- retry=0
- echo " RESP: "$res >> $HTTPLOG
- status=${res:${#res}-3}
- if [ ! -z "${AGENT_RETRY_CODES}" ]; then
- for retrycode in $AGENT_RETRY_CODES; do
- if [ $retrycode -eq $status ]; then
- echo -e $RED" Retrying (according to set codes for retry), got status $status....."$ERED >> $HTTPLOG
- sleep 1
- retry=1
- fi
- done
- fi
- if [ $retry -eq 0 ]; then
- maxretries=-1
- fi
- done
- echo $res
- return 0
- else
- if [ $oper != "RESPONSE" ]; then
- requestUrl=$2
- if [ $1 == "PUT" ] && [ $# -eq 3 ]; then
- payload="$(cat $3 | tr -d '\n' | tr -d ' ' )"
- echo "payload: "$payload >> $HTTPLOG
- file=" --data-binary "$payload
- 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]))" "$2")
- url=" "${ADAPTER}"/send-request?url="${requestUrl}"&operation="${oper}
- curlString="curl -X POST${timeout}${httpcode}${content}${url}${file}"
- echo " CMD: "$curlString >> $HTTPLOG
- res=$($curlString)
- retcode=$?
- if [ $retcode -ne 0 ]; then
- echo " RETCODE: "$retcode >> $HTTPLOG
- echo "000"
- return 1
- fi
- echo " RESP: "$res >> $HTTPLOG
- status=${res:${#res}-3}
- if [ $status -ne 200 ]; then
- echo "000"
- return 1
- fi
- cid=${res:0:${#res}-3}
- if [[ $batch -eq 1 ]]; then
- echo $cid"200"
- return 0
- fi
- fi
- if [ $oper == "RESPONSE" ] || [ $batch -eq 0 ]; then
- if [ $oper == "RESPONSE" ]; then
- cid=$2
- fi
- url=" "${ADAPTER}"/receive-response?correlationid="${cid}
- curlString="curl -X GET"${timeout}${httpcode}${url}
- echo " CMD: "$curlString >> $HTTPLOG
- res=$($curlString)
- retcode=$?
- if [ $retcode -ne 0 ]; then
- echo " RETCODE: "$retcode >> $HTTPLOG
- echo "000"
- return 1
- fi
- echo " RESP: "$res >> $HTTPLOG
- status=${res:${#res}-3}
- TS=$SECONDS
- # wait of the reply from the agent...
- while [ $status -eq 204 ]; do
- if [ $(($SECONDS - $TS)) -gt 90 ]; then
- echo " RETCODE: (timeout after 90s)" >> $HTTPLOG
- echo "000"
- return 1
- fi
- sleep 0.01
- echo " CMD: "$curlString >> $HTTPLOG
- res=$($curlString)
- if [ $retcode -ne 0 ]; then
- echo " RETCODE: "$retcode >> $HTTPLOG
- echo "000"
- return 1
- fi
- echo " RESP: "$res >> $HTTPLOG
- status=${res:${#res}-3}
- done
- if [ $status -eq 200 ]; then
- body=${res:0:${#res}-3}
- echo $body
- return 0
- fi
- echo "Status not 200, returning response 000" >> $HTTPLOG
- echo "0000"
- return 1
- fi
- fi
-}
-
+. ../common/api_curl.sh
#########################################################
#### Test case functions A1 Policy management service
fi
if [ $paramError -ne 0 ]; then
- __print_err "<response-code> <ric-id>|NORIC <service-id>|NOSERVICE <policy-ype-id>|NOTYPE [ NOID | [<policy-id> <ric-id> <service-id> EMPTY|<policy-type-id> <template-file>]*]" $@
+ __print_err "<response-code> <ric-id>|NORIC <service-id>|NOSERVICE <policy-type-id>|NOTYPE [ NOID | [<policy-id> <ric-id> <service-id> EMPTY|<policy-type-id> <template-file>]*]" $@
return 1
fi
queryparams=""
fi
query="/policies"$queryparams
- res="$(__do_curl_to_agent GET $query)"
+ res="$(__do_curl_to_api PA GET $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
if [ "$targetJson" != "[" ]; then
targetJson=$targetJson","
fi
- targetJson=$targetJson"{\"id\":\"${arr[$i]}\",\"lastModified\":\"????\",\"ric\":\"${arr[$i+1]}\",\"service\":\"${arr[$i+2]}\",\"type\":"
+ targetJson=$targetJson"{\"id\":\"$UUID${arr[$i]}\",\"lastModified\":\"????\",\"ric\":\"${arr[$i+1]}\",\"service\":\"${arr[$i+2]}\",\"type\":"
if [ "${arr[$i+3]}" == "EMPTY" ]; then
targetJson=$targetJson"\"\","
else
return 1
fi
- query="/policy?id=$2"
- res="$(__do_curl_to_agent GET $query)"
+ query="/policy?id=$UUID$2"
+ res="$(__do_curl_to_api PA GET $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
((RES_TEST++))
if [ $# -lt 7 ] || [ $# -gt 8 ]; then
- __print_err "<response-code> <service-name> <ric-id> <policytype-id> <policy-id> <transient> <template-file> [<count>]" $@
+ __print_err "<response-code> <service-name> <ric-id> <policytype-id> <policy-id> <transient>|NOTRANSIENT <template-file> [<count>]" $@
return 1
fi
file=$7
while [ $count -lt $max ]; do
- query="/policy?id=$pid&ric=$ric&service=$2"
+ query="/policy?id=$UUID$pid&ric=$ric&service=$2"
if [ $4 != "NOTYPE" ]; then
query=$query"&type=$4"
file=".p.json"
sed 's/XXX/'${pid}'/g' $7 > $file
- res="$(__do_curl_to_agent PUT $query $file)"
+ res="$(__do_curl_to_api PA PUT $query $file)"
status=${res:${#res}-3}
- echo -ne " Creating "$count"("$max")${SAMELINE}"
+ echo -ne " Executing "$count"("$max")${SAMELINE}"
if [ $status -ne $1 ]; then
- let pid=$pid+1
- echo " Created "$count"?("$max")"
+ echo " Executed "$count"?("$max")"
echo -e $RED" FAIL. Exepected status "$1", got "$status $ERED
((RES_FAIL++))
__check_stop_at_error
let pid=$pid+1
let count=$count+1
- echo -ne " Created "$count"("$max")${SAMELINE}"
+ echo -ne " Executed "$count"("$max")${SAMELINE}"
done
echo ""
file=$7
ARR=""
while [ $count -lt $max ]; do
- query="/policy?id=$pid&ric=$ric&service=$2"
+ query="/policy?id=$UUID$pid&ric=$ric&service=$2"
if [ $4 != "NOTYPE" ]; then
query=$query"&type=$4"
file=".p.json"
sed 's/XXX/'${pid}'/g' $7 > $file
- res="$(__do_curl_to_agent PUT_BATCH $query $file)"
+ res="$(__do_curl_to_api PA PUT_BATCH $query $file)"
status=${res:${#res}-3}
- echo -ne " Requested(batch) "$count"("$max")${SAMELINE}"
+ echo -ne " Requesting(batch) "$count"("$max")${SAMELINE}"
if [ $status -ne 200 ]; then
- let pid=$pid+1
echo " Requested(batch) "$count"?("$max")"
echo -e $RED" FAIL. Exepected status 200 (in request), got "$status $ERED
((RES_FAIL++))
count=0
for cid in $ARR; do
- res="$(__do_curl_to_agent RESPONSE $cid)"
+ res="$(__do_curl_to_api PA RESPONSE $cid)"
status=${res:${#res}-3}
- echo -ne " Created(batch) "$count"("$max")${SAMELINE}"
+ echo -ne " Requesting(batch) "$count"("$max")${SAMELINE}"
if [ $status -ne $1 ]; then
- let pid=$pid+1
- echo " Created(batch) "$count"?("$max")"
+ echo " Requested(batch) "$count"?("$max")"
echo -e $RED" FAIL. Exepected status "$1", got "$status $ERED
((RES_FAIL++))
__check_stop_at_error
fi
let count=$count+1
- echo -ne " Created(batch) "$count"("$max")${SAMELINE}"
+ echo -ne " Requested(batch) "$count"("$max")${SAMELINE}"
done
echo ""
for ((i=1; i<=$pids; i++))
do
+ uuid=$UUID
+ if [ -z "$uuid" ]; then
+ uuid="NOUUID"
+ fi
echo "" > ".pid${i}.res.txt"
- echo $resp_code $urlbase $ric_base $num_rics $start_id $template $count $pids $i > ".pid${i}.txt"
+ echo $resp_code $urlbase $ric_base $num_rics $uuid $start_id $template $count $pids $i > ".pid${i}.txt"
echo $i
done | xargs -n 1 -I{} -P $pids bash -c '{
arg=$(echo {})
fi
done
if [ -z $msg ]; then
- echo " $(($count*$num_rics)) policies created/updated"
+ echo " $(($count*$num_rics)) policy request(s) executed"
((RES_PASS++))
echo -e $GREEN" PASS"$EGREEN
return 0
pid=$2
while [ $count -lt $max ]; do
- query="/policy?id="$pid
- res="$(__do_curl_to_agent DELETE $query)"
+ query="/policy?id="$UUID$pid
+ res="$(__do_curl_to_api PA DELETE $query)"
status=${res:${#res}-3}
- echo -ne " Deleting "$count"("$max")${SAMELINE}"
+ echo -ne " Executing "$count"("$max")${SAMELINE}"
if [ $status -ne $1 ]; then
- echo " Deleted "$count"?("$max")"
+ echo " Executed "$count"?("$max")"
echo -e $RED" FAIL. Exepected status "$1", got "$status $ERED
((RES_FAIL++))
__check_stop_at_error
fi
let pid=$pid+1
let count=$count+1
- echo -ne " Deleted "$count"("$max")${SAMELINE}"
+ echo -ne " Executed "$count"("$max")${SAMELINE}"
done
echo ""
pid=$2
ARR=""
while [ $count -lt $max ]; do
- query="/policy?id="$pid
- res="$(__do_curl_to_agent DELETE_BATCH $query)"
+ query="/policy?id="$UUID$pid
+ res="$(__do_curl_to_api PA DELETE_BATCH $query)"
status=${res:${#res}-3}
- echo -ne " Requested(batch) "$count"("$max")${SAMELINE}"
+ echo -ne " Requesting(batch) "$count"("$max")${SAMELINE}"
if [ $status -ne 200 ]; then
- let pid=$pid+1
echo " Requested(batch) "$count"?("$max")"
echo -e $RED" FAIL. Exepected status 200 (in request), got "$status $ERED
((RES_FAIL++))
count=0
for cid in $ARR; do
- res="$(__do_curl_to_agent RESPONSE $cid)"
+ res="$(__do_curl_to_api PA RESPONSE $cid)"
status=${res:${#res}-3}
echo -ne " Deleted(batch) "$count"("$max")${SAMELINE}"
if [ $status -ne $1 ]; then
- let pid=$pid+1
echo " Deleted(batch) "$count"?("$max")"
echo -e $RED" FAIL. Exepected status "$1", got "$status $ERED
((RES_FAIL++))
for ((i=1; i<=$pids; i++))
do
+ uuid=$UUID
+ if [ -z "$uuid" ]; then
+ uuid="NOUUID"
+ fi
echo "" > ".pid${i}.del.res.txt"
- echo $resp_code $urlbase $num_rics $start_id $count $pids $i > ".pid${i}.del.txt"
+ echo $resp_code $urlbase $num_rics $uuid $start_id $count $pids $i > ".pid${i}.del.txt"
echo $i
done | xargs -n 1 -I{} -P $pids bash -c '{
arg=$(echo {})
fi
done
if [ -z $msg ]; then
- echo " $(($count*$num_rics)) deleted"
+ echo " $(($count*$num_rics)) policy request(s) executed"
((RES_PASS++))
echo -e $GREEN" PASS"$EGREEN
return 0
fi
query="/policy_ids"$queryparams
- res="$(__do_curl_to_agent GET $query)"
+ res="$(__do_curl_to_api PA GET $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
targetJson=$targetJson","
fi
if [ $pid != "NOID" ]; then
- targetJson=$targetJson"\"$pid\""
+ targetJson=$targetJson"\"$UUID$pid\""
fi
done
fi
query="/policy_schema?id=$2"
- res="$(__do_curl_to_agent GET $query)"
+ res="$(__do_curl_to_api PA GET $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
query=$query"?ric="$2
fi
- res="$(__do_curl_to_agent GET $query)"
+ res="$(__do_curl_to_api PA GET $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
return 1
fi
- query="/policy_status?id="$2
+ query="/policy_status?id="$UUID$2
- res="$(__do_curl_to_agent GET $query)"
+ res="$(__do_curl_to_api PA GET $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
query="/policy_types?ric=$2"
fi
- res="$(__do_curl_to_agent GET $query)"
+ res="$(__do_curl_to_api PA GET $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
return 1
fi
query="/status"
- res="$(__do_curl_to_agent GET $query)"
+ res="$(__do_curl_to_api PA GET $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
query="/ric?managedElementId="$2
- res="$(__do_curl_to_agent GET $query)"
+ res="$(__do_curl_to_api PA GET $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
query="/rics?policyType="$2
fi
- res="$(__do_curl_to_agent GET $query)"
+ res="$(__do_curl_to_api PA GET $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
file=".tmp.json"
echo "$json" > $file
- res="$(__do_curl_to_agent PUT $query $file)"
+ res="$(__do_curl_to_api PA PUT $query $file)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
query="/services?name="$2
fi
- res="$(__do_curl_to_agent GET $query)"
+ res="$(__do_curl_to_api PA GET $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
fi
query="/services"
- res="$(__do_curl_to_agent GET $query)"
+ res="$(__do_curl_to_api PA GET $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
fi
query="/services?name="$2
- res="$(__do_curl_to_agent DELETE $query)"
+ res="$(__do_curl_to_api PA DELETE $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then
fi
query="/services/keepalive?name="$2
- res="$(__do_curl_to_agent PUT $query)"
+ res="$(__do_curl_to_api PA PUT $query)"
status=${res:${#res}-3}
if [ $status -ne $1 ]; then