839250dc50b622c0ac0e0c1f01bb83a14bc88a78
[demo.git] / vnfs / vFW / scripts / update-vfw-op-policy.sh
1 #!/bin/bash
2
3 if [ "$#" -ne 3 ]; then
4         echo "Usage: $(basename $0) <policy-vm-host> <resource-id> <path-to-Policy-VM-private-key>"
5         exit 1
6 fi
7
8 POLICY_HOST=$1
9 RESOURCE_ID=$2
10 PATH_TO_PRIVATE_KEY=$3
11
12 echo
13 echo "Updating vFW Operational Policy .."
14 echo
15
16 curl -v -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
17         "policyConfigType": "BRMS_PARAM",
18         "policyName": "com.BRMSParamvFirewall",
19         "policyDescription": "BRMS Param vFirewall policy",
20         "policyScope": "com",
21         "attributes": {
22                 "MATCHING": {
23                 "controller" : "amsterdam"
24             },
25                 "RULE": {
26                         "templateName": "ClosedLoopControlName",
27                         "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
28                         "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0D%0A++trigger_policy%3A+unique-policy-id-1-modifyConfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-modifyConfig%0D%0A++++name%3A+modify+packet+gen+config%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+TBD+-+Cannot+be+known+until+instantiation+is+done%0D%0A++++++resourceID%3A+'${RESOURCE_ID}'%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
29                 }
30         }
31 }' http://${POLICY_HOST}:8081/pdp/api/updatePolicy
32
33 sleep 5
34
35 echo
36 echo
37 echo "Pushing the vFW Policy .."
38 echo
39 echo
40
41 curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
42   "pdpGroup": "default",
43   "policyName": "com.BRMSParamvFirewall",
44   "policyType": "BRMS_Param"
45 }' http://${POLICY_HOST}:8081/pdp/api/pushPolicy
46
47 sleep 20
48
49 echo
50 echo
51 echo "Restarting PDP-D .."
52 echo
53 echo 
54
55 ssh -i $PATH_TO_PRIVATE_KEY root@${POLICY_HOST} "docker exec -t -u policy drools bash -c \"source /opt/app/policy/etc/profile.d/env.sh; policy stop; sleep 5; policy start\""
56
57 sleep 20
58
59 echo
60 echo
61 echo "PDP-D amsterdam maven coordinates .."
62 echo
63 echo
64
65 curl -vvv --silent --user @1b3rt:31nst31n -X GET http://${POLICY_HOST}:9696/policy/pdp/engine/controllers/amsterdam/drools  | python -m json.tool
66
67
68 echo
69 echo
70 echo "PDP-D control loop updated .."
71 echo
72 echo
73
74 curl -v --silent --user @1b3rt:31nst31n -X GET http://${POLICY_HOST}:9696/policy/pdp/engine/controllers/amsterdam/drools/facts/closedloop-amsterdam/org.onap.policy.controlloop.Params  | python -m json.tool