3200ba94e3b6510ac40100eb2ebe27c3fd892d7a
[demo.git] / tutorials / vFWDT / policies / rules / uploadPolicies.sh
1 #!/bin/bash
2
3 `./yq > /dev/null 2>&1`
4
5 if [ $? -ne 0 ]; then
6         echo "Install yq"
7         wget -cO yq https://github.com/mikefarah/yq/releases/download/2.4.0/yq_linux_amd64
8         chmod 755 yq
9 fi
10
11 `jo -p n=1 > /dev/null 2>&1`
12
13 if [ $? -ne 0 ]; then
14         echo "Install jo"
15         sudo add-apt-repository -y ppa:duggan/jo
16         sudo apt update
17         sudo apt install jo -y
18 fi
19
20 echo "Uploading policies"
21
22 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
23 PDP=`kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}' | grep policy-pdp`
24
25 echo $PDP
26 CMD='createPolicy'
27 MODE=$1
28
29 if [[ $MODE == "U" ]]; then
30         CMD='updatePolicy'
31 fi
32
33 echo $CMD
34 SCRIPT="dt-policies.sh"
35 echo "#!/bin/bash" > $SCRIPT
36
37 for f in $DIR/*.json; do
38         NAME=`./yq r $f policyName`
39         SCOPE="$(cut -d'.' -f1 <<< $NAME )"
40         RULE=`cat $f`
41         BODY="\"$RULE\""
42         echo "Processing $NAME rule..";
43         echo "echo \"$NAME Policy\"" >> $SCRIPT
44         BODY=`jo -p configBody="$BODY" -p policyName=$NAME -p policyConfigType=MicroService -p onapName=SampleDemo -p policyScope=$SCOPE`
45         LINK="curl -k -v  -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '$BODY' 'https://localhost:8081/pdp/api/$CMD'"
46         LINK="${LINK/\"\\\"{\\n/\"{}"
47         LINK="${LINK/\\\"\"/\"}"
48         LINK="${LINK//\\n/ }"
49         echo "$LINK" >> $SCRIPT
50         BODY=`jo -p policyType=MicroService -p pdpGroup=default -p policyName=$NAME`
51         LINK="curl -k -v  -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '$BODY' 'https://localhost:8081/pdp/api/pushPolicy'"
52         echo "$LINK" >> $SCRIPT
53 done
54
55 `kubectl cp $SCRIPT onap/$PDP:/tmp/policy-install`
56 `kubectl exec $PDP -- chmod 755 $SCRIPT`
57 `kubectl exec $PDP -- ./$SCRIPT`
58