delete vFW policy before updating resourceID
[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 
14 echo "Removing the vFW Policy from PDP.." 
15 echo 
16 echo 
17
18 curl -v -X DELETE --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ 
19   "pdpGroup": "default", 
20   "policyComponent" : "PDP", 
21   "policyName": "com.BRMSParamvFirewall", 
22   "policyType": "BRMS_Param" 
23 }' http://${POLICY_HOST}:8081/pdp/api/deletePolicy
24
25 sleep 20
26
27 echo
28 echo
29 echo "Updating vFW Operational Policy .."
30 echo
31
32 curl -v -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
33         "policyConfigType": "BRMS_PARAM",
34         "policyName": "com.BRMSParamvFirewall",
35         "policyDescription": "BRMS Param vFirewall policy",
36         "policyScope": "com",
37         "attributes": {
38                 "MATCHING": {
39                 "controller" : "amsterdam"
40             },
41                 "RULE": {
42                         "templateName": "ClosedLoopControlName",
43                         "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
44                         "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"
45                 }
46         }
47 }' http://${POLICY_HOST}:8081/pdp/api/updatePolicy
48
49 sleep 5
50
51 echo
52 echo
53 echo "Pushing the vFW Policy .."
54 echo
55 echo
56
57 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 '{
58   "pdpGroup": "default",
59   "policyName": "com.BRMSParamvFirewall",
60   "policyType": "BRMS_Param"
61 }' http://${POLICY_HOST}:8081/pdp/api/pushPolicy
62
63 sleep 20
64
65 echo
66 echo
67 echo "Restarting PDP-D .."
68 echo
69 echo 
70
71 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\""
72
73 sleep 20
74
75 echo
76 echo
77 echo "PDP-D amsterdam maven coordinates .."
78 echo
79 echo
80
81 curl -vvv --silent --user @1b3rt:31nst31n -X GET http://${POLICY_HOST}:9696/policy/pdp/engine/controllers/amsterdam/drools  | python -m json.tool
82
83
84 echo
85 echo
86 echo "PDP-D control loop updated .."
87 echo
88 echo
89
90 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