X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Fcommon%2Fagent_api_functions.sh;h=1e1077b2b7cb353b4eedd32ec2bac84aae3bb5f8;hb=5a7560b9906f08ba2a47daace7da78484188aed7;hp=08c8f961eabb10a775225ea0c49bfd437a5ae628;hpb=70e878f1b5a558baaaa5ab5885a039ed96c9f8d5;p=nonrtric.git diff --git a/test/common/agent_api_functions.sh b/test/common/agent_api_functions.sh index 08c8f961..1e1077b2 100644 --- a/test/common/agent_api_functions.sh +++ b/test/common/agent_api_functions.sh @@ -251,7 +251,7 @@ api_get_policies() { fi if [ $paramError -ne 0 ]; then - __print_err " |NORIC |NOSERVICE |NOTYPE [ NOID | [ EMPTY| ]*]" $@ + __print_err " |NORIC |NOSERVICE |NOTYPE [ NOID | [ EMPTY| ]*]" $@ return 1 fi queryparams="" @@ -280,6 +280,7 @@ api_get_policies() { if [ $status -ne $1 ]; then echo -e $RED" FAIL. Exepected status "$1", got "$status $ERED ((RES_FAIL++)) + __check_stop_at_error return 1 fi @@ -296,7 +297,7 @@ api_get_policies() { 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 @@ -316,6 +317,7 @@ api_get_policies() { if [ $res -ne 0 ]; then echo -e $RED" FAIL, returned body not correct"$ERED ((RES_FAIL++)) + __check_stop_at_error return 1 fi fi @@ -339,13 +341,14 @@ api_get_policy() { return 1 fi - query="/policy?id=$2" + query="/policy?id=$UUID$2" res="$(__do_curl_to_agent GET $query)" status=${res:${#res}-3} if [ $status -ne $1 ]; then echo -e $RED" FAIL. Exepected status "$1", got "$status $ERED ((RES_FAIL++)) + __check_stop_at_error return 1 fi @@ -360,6 +363,7 @@ api_get_policy() { if [ $res -ne 0 ]; then echo -e $RED" FAIL, returned body not correct"$ERED ((RES_FAIL++)) + __check_stop_at_error return 1 fi fi @@ -370,15 +374,15 @@ api_get_policy() { } # API Test function: PUT /policy -# args: [] +# args: [] # (Function for test scripts) api_put_policy() { echo -e $BOLD"TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ $EBOLD echo "TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ >> $HTTPLOG ((RES_TEST++)) - if [ $# -lt 6 ] || [ $# -gt 7 ]; then - __print_err " []" $@ + if [ $# -lt 7 ] || [ $# -gt 8 ]; then + __print_err " |NOTRANSIENT []" $@ return 1 fi @@ -386,33 +390,34 @@ api_put_policy() { count=0 max=1 - if [ $# -eq 7 ]; then - max=$7 + if [ $# -eq 8 ]; then + max=$8 fi pid=$5 - file=$6 + 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="/policy?id=$pid&ric=$ric&service=$2" - else - query="/policy?id=$pid&ric=$ric&service=$2&type=$4" + if [ $4 != "NOTYPE" ]; then + query=$query"&type=$4" + fi + + if [ $6 != NOTRANSIENT ]; then + query=$query"&transient=$6" fi file=".p.json" - sed 's/XXX/'${pid}'/g' $6 > $file + sed 's/XXX/'${pid}'/g' $7 > $file res="$(__do_curl_to_agent PUT $query $file)" status=${res:${#res}-3} echo -ne " Creating "$count"("$max")${SAMELINE}" - if [ $status -ne $1 ]; then - let pid=$pid+1 echo " Created "$count"?("$max")" echo -e $RED" FAIL. Exepected status "$1", got "$status $ERED ((RES_FAIL++)) + __check_stop_at_error return 1 fi @@ -428,15 +433,15 @@ api_put_policy() { } # API Test function: PUT /policy to run in batch -# args: [] +# args: [] # (Function for test scripts) api_put_policy_batch() { echo -e $BOLD"TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ $EBOLD echo "TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ >> $HTTPLOG ((RES_TEST++)) - if [ $# -lt 6 ] || [ $# -gt 7 ]; then - __print_err " []" $@ + if [ $# -lt 7 ] || [ $# -gt 8 ]; then + __print_err " []" $@ return 1 fi @@ -444,33 +449,35 @@ api_put_policy_batch() { count=0 max=1 - if [ $# -eq 7 ]; then - max=$7 + if [ $# -eq 8 ]; then + max=$8 fi pid=$5 - file=$6 + 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="/policy?id=$pid&ric=$ric&service=$2" - else - query="/policy?id=$pid&ric=$ric&service=$2&type=$4" + if [ $4 != "NOTYPE" ]; then + query=$query"&type=$4" + fi + + if [ $6 != NOTRANSIENT ]; then + query=$query"&transient=$6" fi file=".p.json" - sed 's/XXX/'${pid}'/g' $6 > $file + sed 's/XXX/'${pid}'/g' $7 > $file res="$(__do_curl_to_agent PUT_BATCH $query $file)" status=${res:${#res}-3} echo -ne " Requested(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++)) + __check_stop_at_error return 1 fi cid=${res:0:${#res}-3} @@ -489,10 +496,10 @@ api_put_policy_batch() { echo -ne " Created(batch) "$count"("$max")${SAMELINE}" if [ $status -ne $1 ]; then - let pid=$pid+1 echo " Created(batch) "$count"?("$max")" echo -e $RED" FAIL. Exepected status "$1", got "$status $ERED ((RES_FAIL++)) + __check_stop_at_error return 1 fi @@ -507,6 +514,94 @@ api_put_policy_batch() { return 0 } +# API Test function: PUT /policy to run in i parallel for a number of rics +# args: +# (Function for test scripts) +api_put_policy_parallel() { + echo -e $BOLD"TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ $EBOLD + echo "TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ >> $HTTPLOG + ((RES_TEST++)) + + if [ $# -ne 10 ]; then + __print_err " " $@ + return 1 + fi + resp_code=$1; shift; + serv=$1; shift + ric_base=$1; shift; + num_rics=$1; shift; + type=$1; shift; + start_id=$1; shift; + transient=$1; shift; + template=$1; shift; + count=$1; shift; + pids=$1; shift; + + if [ $ADAPTER != $RESTBASE ] && [ $ADAPTER != $RESTBASE_SECURE ]; then + echo " Info - api_put_policy_parallel uses only the agent REST interface - create over dmaap in parallel is not supported" + echo " Info - will execute over agent REST" + fi + + if [ $serv == "NOSERVICE" ]; then + serv="" + fi + query="/policy?service=$serv" + + if [ $type != "NOTYPE" ]; then + query=$query"&type=$type" + fi + + if [ $transient != NOTRANSIENT ]; then + query=$query"&transient=$transient" + fi + + urlbase=${ADAPTER}${query} + + 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 $uuid $start_id $template $count $pids $i > ".pid${i}.txt" + echo $i + done | xargs -n 1 -I{} -P $pids bash -c '{ + arg=$(echo {}) + echo " Parallel process $arg started" + tmp=$(< ".pid${arg}.txt") + python3 ../common/create_policies_process.py $tmp > .pid${arg}.res.txt + }' + msg="" + for ((i=1; i<=$pids; i++)) + do + file=".pid${i}.res.txt" + tmp=$(< $file) + if [ -z "$tmp" ]; then + echo " Process $i : unknown result (result file empty" + msg="failed" + else + res=${tmp:0:1} + if [ $res == "0" ]; then + echo " Process $i : OK" + else + echo " Process $i : failed - "${tmp:1} + msg="failed" + fi + fi + done + if [ -z $msg ]; then + echo " $(($count*$num_rics)) policies created/updated" + ((RES_PASS++)) + echo -e $GREEN" PASS"$EGREEN + return 0 + fi + + echo -e $RED" FAIL. One of more processes failed to execute" $ERED + ((RES_FAIL++)) + __check_stop_at_error + return 1 +} # API Test function: DELETE /policy # args: [count] @@ -531,7 +626,7 @@ api_delete_policy() { pid=$2 while [ $count -lt $max ]; do - query="/policy?id="$pid + query="/policy?id="$UUID$pid res="$(__do_curl_to_agent DELETE $query)" status=${res:${#res}-3} echo -ne " Deleting "$count"("$max")${SAMELINE}" @@ -540,6 +635,7 @@ api_delete_policy() { echo " Deleted "$count"?("$max")" echo -e $RED" FAIL. Exepected status "$1", got "$status $ERED ((RES_FAIL++)) + __check_stop_at_error return 1 fi let pid=$pid+1 @@ -576,16 +672,16 @@ api_delete_policy_batch() { pid=$2 ARR="" while [ $count -lt $max ]; do - query="/policy?id="$pid + query="/policy?id="$UUID$pid res="$(__do_curl_to_agent DELETE_BATCH $query)" status=${res:${#res}-3} echo -ne " Requested(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++)) + __check_stop_at_error return 1 fi cid=${res:0:${#res}-3} @@ -605,10 +701,10 @@ api_delete_policy_batch() { 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++)) + __check_stop_at_error return 1 fi @@ -621,6 +717,79 @@ api_delete_policy_batch() { return 0 } +# API Test function: DELETE /policy to run in i parallel for a number of rics +# args: +# (Function for test scripts) +api_delete_policy_parallel() { + echo -e $BOLD"TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ $EBOLD + echo "TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ >> $HTTPLOG + ((RES_TEST++)) + + if [ $# -ne 5 ]; then + __print_err " " $@ + return 1 + fi + resp_code=$1; shift; + num_rics=$1; shift; + start_id=$1; shift; + count=$1; shift; + pids=$1; shift; + + if [ $ADAPTER != $RESTBASE ] && [ $ADAPTER != $RESTBASE_SECURE ]; then + echo " Info - api_delete_policy_parallel uses only the agent REST interface - create over dmaap in parallel is not supported" + echo " Info - will execute over agent REST" + fi + + query="/policy" + + urlbase=${ADAPTER}${query} + + 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 $uuid $start_id $count $pids $i > ".pid${i}.del.txt" + echo $i + done | xargs -n 1 -I{} -P $pids bash -c '{ + arg=$(echo {}) + echo " Parallel process $arg started" + tmp=$(< ".pid${arg}.del.txt") + python3 ../common/delete_policies_process.py $tmp > .pid${arg}.del.res.txt + }' + msg="" + for ((i=1; i<=$pids; i++)) + do + file=".pid${i}.del.res.txt" + tmp=$(< $file) + if [ -z "$tmp" ]; then + echo " Process $i : unknown result (result file empty" + msg="failed" + else + res=${tmp:0:1} + if [ $res == "0" ]; then + echo " Process $i : OK" + else + echo " Process $i : failed - "${tmp:1} + msg="failed" + fi + fi + done + if [ -z $msg ]; then + echo " $(($count*$num_rics)) deleted" + ((RES_PASS++)) + echo -e $GREEN" PASS"$EGREEN + return 0 + fi + + echo -e $RED" FAIL. One of more processes failed to execute" $ERED + ((RES_FAIL++)) + __check_stop_at_error + return 1 +} + # API Test function: GET /policy_ids # args: |NORIC |NOSERVICE |NOTYPE ([