f28d9c23530e094b1d3f1fad6263a40627991dbc
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / sdwan / GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.xml
1 <service-logic\r
2     xmlns='http://www.onap.org/sdnc/svclogic'\r
3     xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
4     <method rpc='sdwan-vf-operation-vpn-deactivate' mode='sync'>\r
5         <block atomic="true">\r
6             <call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' ></call>\r
7             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
8                 <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
9                 <parameter name="field1" value="__TIMESTAMP__"/>\r
10                 <parameter name="field2" value="sdwan-network-topology-operation-activate"/>\r
11                 <parameter name="field3" value="SDWAN-Activate"/>\r
12             </record>\r
13             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
14                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
15                 <parameter name='contextPrefix' value='prop' />\r
16             </execute>\r
17             <for index='idx' start='0' end='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
18                 <block>\r
19                     <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
20                         <outcome value='true'>\r
21                             <set>\r
22                                 <parameter name='prop.name' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
23                             </set>\r
24                         </outcome>\r
25                     </switch>\r
26                     <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`">\r
27                         <outcome value='true'>\r
28                             <set>\r
29                                 <parameter name='prop.topology' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
30                             </set>\r
31                         </outcome>\r
32                     </switch>\r
33                     <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vpn-id'`">\r
34                         <outcome value='true'>\r
35                             <set>\r
36                                 <parameter name='prop.vpn-id' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
37                             </set>\r
38                         </outcome>\r
39                     </switch>\r
40                     <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'tenant-id'`">\r
41                         <outcome value='true'>\r
42                             <set>\r
43                                 <parameter name='prop.tenant-id' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
44                             </set>\r
45                         </outcome>\r
46                     </switch>\r
47                 </block>\r
48             </for>\r
49             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
50                 resource="esr-thirdparty-sdnc" \r
51                 key="esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \r
52                      depth = '1'"\r
53         pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
54                 <outcome value='success'>\r
55                     <set>\r
56                         <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
57                         <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
58                         <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
59                     </set>\r
60                 </outcome>\r
61                 <outcome value='not-found'>\r
62                     <return status='failure'>\r
63                         <parameter name='ack-final' value='Y'/>\r
64                         <parameter name="error-code" value="500" />\r
65                         <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
66                     </return>\r
67                 </outcome>\r
68                 <outcome value='Other'>\r
69                     <return status='failure'>\r
70                         <parameter name='ack-final' value='Y'/>\r
71                         <parameter name="error-code" value="500" />\r
72                         <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
73                     </return>\r
74                 </outcome>\r
75             </get-resource>\r
76             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
77                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
78                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
79                 <parameter name="format" value="json"/>\r
80                 <parameter name="httpMethod" value="post"/>\r
81                 <parameter name="responsePrefix" value="token-result"/>\r
82                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
83                 <parameter name="trustStorePassword" value="adminadmin"/>\r
84                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
85                 <parameter name="keyStorePassword" value="adminadmin"/>\r
86                 <outcome value='success'>\r
87                     <set>\r
88                         <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
89                     </set>\r
90                 </outcome>\r
91                 <outcome value='failure'>\r
92                     <return status='failure'>\r
93                         <parameter name='ack-final' value='Y'/>\r
94                         <parameter name="error-code" value="500" />\r
95                         <parameter name="error-message" value="Error executing get token rest api" />\r
96                     </return>\r
97                 </outcome>\r
98             </execute>\r
99             <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
100             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
101                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn-id + '/topology'`" />\r
102                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
103                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
104                 <parameter name="format" value="json"/>\r
105                 <parameter name="httpMethod" value="delete"/>\r
106                 <parameter name="responsePrefix" value="vpn-result"/>\r
107                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
108                 <parameter name="trustStorePassword" value="adminadmin"/>\r
109                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
110                 <parameter name="keyStorePassword" value="adminadmin"/>\r
111                 <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
112             </execute>\r
113             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
114                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn-delete.json'`" />\r
115                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn/action/batch-delete'`" />\r
116                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
117                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
118                 <parameter name="format" value="json"/>\r
119                 <parameter name="httpMethod" value="post"/>\r
120                 <parameter name="responsePrefix" value="vpn-result"/>\r
121                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
122                 <parameter name="trustStorePassword" value="adminadmin"/>\r
123                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
124                 <parameter name="keyStorePassword" value="adminadmin"/>\r
125                 <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
126             </execute>\r
127             <set>\r
128                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
129                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
130                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
131                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
132             </set>\r
133             <set>\r
134                 <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
135  + $vf-module-topology-operation-input.service-information.service-instance-id\r
136  + '/service-data/vnfs/vnf/'\r
137  + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
138  + '/vnf-data/vf-modules/vf-module/'\r
139  + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
140  + '/vf-module-data/vf-module-topology/'`"/>\r
141                 <parameter name='vnf-object-path'\r
142  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
143  + $vf-module-topology-operation-input.service-information.service-instance-id\r
144  + '/service-data/vnfs/vnf/'\r
145  + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
146  + '/vnf-data/vnf-topology/'`"/>\r
147                 <parameter name='service-object-path'\r
148  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
149  + $vf-module-topology-operation-input.service-information.service-instance-id\r
150  + '/service-data/service-topology/'`"/>\r
151             </set>\r
152             <set>\r
153                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\r
154                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
155                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
156             </set>\r
157             <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \r
158       key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
159                 <parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
160                 <parameter name='operational-status' value='PendingDelete' />\r
161             </update>\r
162             <return status='success'>\r
163                 <parameter name="ack-final-indicator" value="Y" />\r
164                 <parameter name="error-code" value="200" />\r
165                 <parameter name="error-message" value="`$error-message`" />\r
166             </return>\r
167         </block>\r
168     </method>\r
169 </service-logic>