X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Fcommon%2Fagent_api_functions.sh;h=b2d6a24028664661d38b73be63e4c7724bedb65e;hb=e044db27208f577f53400d3b765b40913a77fc78;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..b2d6a240 100644 --- a/test/common/agent_api_functions.sh +++ b/test/common/agent_api_functions.sh @@ -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 @@ -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 @@ -346,6 +348,7 @@ api_get_policy() { 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 " []" $@ return 1 fi @@ -386,33 +390,35 @@ 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" - 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 +434,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,24 +450,26 @@ 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" - 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}" @@ -471,6 +479,7 @@ api_put_policy_batch() { 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} @@ -493,6 +502,7 @@ api_put_policy_batch() { 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 +517,90 @@ 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 + echo "" > ".pid${i}.res.txt" + echo $resp_code $urlbase $ric_base $num_rics $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] @@ -540,6 +634,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 @@ -586,6 +681,7 @@ api_delete_policy_batch() { 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} @@ -609,6 +705,7 @@ api_delete_policy_batch() { 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 +718,75 @@ 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 + echo "" > ".pid${i}.del.res.txt" + echo $resp_code $urlbase $num_rics $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 ([