Added additional supporting scripts for s3p test 06/73106/1
authorLianhao Lu <lianhao.lu@intel.com>
Tue, 20 Nov 2018 05:59:49 +0000 (13:59 +0800)
committerLianhao Lu <lianhao.lu@intel.com>
Tue, 20 Nov 2018 06:01:24 +0000 (14:01 +0800)
clean_policy.sh: remove policies correspdoing to s3p csar files.

list_failed_policy.sh: try to get failed policies from pdp in s3p test.

Issue-ID: POLICY-837
Change-Id: I742437f740eee191875b25eccd03f00574bc0dcc
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
s3p/clean_policy.sh [new file with mode: 0755]
s3p/list_failed_policy.sh [new file with mode: 0755]

diff --git a/s3p/clean_policy.sh b/s3p/clean_policy.sh
new file mode 100755 (executable)
index 0000000..7b45ea8
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+function print_usage_and_exit {
+  [ -z "$1" ] || echo "Error: $1"
+  echo "Usage: $0  [ <dir> | <rulename> ]"
+  echo "    - <dir> directory where the s3p csar files stores, policies related to them will be cleaned from PDP/PAP"
+  echo "    - <rulename> rulename to be cleaned"
+  exit 1
+}
+
+[ "$#" -ne 1 ] && print_usage_and_exit
+
+rules=()
+if [ -d $1 ]; then
+    files=(`find "$1" -maxdepth 1 -name "*.csar" -printf "%f\n"`)
+    for i in ${files[@]}; do
+       fn=`echo $i | cut -d '.' -f 1`
+        rules+=("oofCasablanca.Config_OOF_Optimization_${fn}.1.xml")
+    done
+else
+  rules+=($1)
+fi
+
+for NAME in ${rules[@]}; do
+    BODY="{\"policyComponent\":\"PDP\",\"policyType\":\"Optimization\",\"pdpGroup\":\"default\",\"policyName\":\"${NAME}\"}"
+    rescode=`curl --silent --output /dev/null --write-out %{http_code} -k -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'ClientAuth: cHl0aG9uOnRlc3Q=' -H 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' -H 'Environment: TEST' -X DELETE -d $BODY https://pdp:8081/pdp/api/deletePolicy`
+    if [ "$rescode" == "200" ]; then
+        echo "delete $NAME in PDP success"
+    else
+        echo "delete $NAME in PDP FAIL with rescode $rescode"
+    fi
+
+    BODY="{\"policyName\":\"${NAME}\",\"policyComponent\":\"PAP\",\"policyType\":\"Optimization\",\"deleteCondition\":\"ALL\"}"
+    rescode=`curl --silent --output /dev/null --write-out %{http_code} -k -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'ClientAuth: cHl0aG9uOnRlc3Q=' -H 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' -H 'Environment: TEST' -X DELETE -d $BODY https://pdp:8081/pdp/api/deletePolicy`
+    if [ "$rescode" == "200" ]; then
+        echo "delete $NAME in PAP success"
+    else
+        echo "delete $NAME in PAP FAIL with rescode $rescode"
+    fi
+done
+
diff --git a/s3p/list_failed_policy.sh b/s3p/list_failed_policy.sh
new file mode 100755 (executable)
index 0000000..042dcf3
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+function print_usage_and_exit {
+  echo "Usage: $0  <type> <log file name or rule name>"
+  echo "    - <type>: s for stability log , p for perf log , or other for simple policy name"
+  echo "    - <log file name or rule>"
+  exit 1
+}
+
+[ "$#" -ne 2 ] && print_usage_and_exit
+case $1 in
+[sS])
+  type='s'
+  ;;
+[pP])
+  type='p'
+  ;;
+*)
+  type='simple'
+  ;;
+esac
+
+rules=()
+if [ -f $2 ] && [ $type == 's' ]; then
+    resids=(`grep -o "get policy failed for resource [0-9]\+" $2 | cut -d ' ' -f 6`)
+    for i in ${resids[@]}; do
+        rules+=("oofCasablanca.Config_OOF_Optimization_s3p_$i.*")
+    done
+elif [ -f $2 ] && [ $type == 'p' ]; then
+    idx=`grep -o "Fail at idx [0-9]\+" $2 | cut -d ' ' -f 4`
+    total=`cat perf_data.csv | wc -l`
+    while [ "s$idx" > "s" ] && [ $idx -lt $total ]; do
+        rules+=("oofCasablanca.Config_OOF_Optimization_s3p_$idx.*")
+        idx=$((idx+1))
+    done
+else
+  rules+=($2)
+fi
+
+for NAME in ${rules[@]}; do
+    BODY="{\"policyName\":\"${NAME}\"}"
+    rescode=`curl --silent --write-out %{http_code} -k -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'ClientAuth: cHl0aG9uOnRlc3Q=' -H 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' -H 'Environment: TEST' -X POST -d $BODY --output /dev/null https://pdp:8081/pdp/api/listConfig`
+    if [ "$rescode" == '200' ]; then
+        echo "list policy $NAME in PDP success"
+    else
+        echo "list policy $NAME in PDP FAIL with rescode $rescode"
+    fi
+done
+