Refactored SOTN and SDWAN DG
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / sdwan / GENERIC-RESOURCE-API_site-vnf-topology-operation-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='site-vnf-topology-operation-deactivate' mode='sync'>\r
5         <block atomic="true">\r
6             <block atomic="true">\r
7                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
8                     <parameter name="vnf-topology-operation-input.vnf-information.vnf-id" value="$vnf-topology-operation-input.vnf-information.vnf-id"/>\r
9                 </execute>\r
10                 <switch test="`$vnf-topology-operation-input.vnf-information.vnf-id`">\r
11                     <outcome value=''>\r
12                         <return status='failure'>\r
13                             <parameter name='ack-final' value='Y'/>\r
14                             <parameter name="error-code" value="500" />\r
15                             <parameter name="error-message" value="vnf-topology-operation-input.vnf-information.vnf-id is a required input" />\r
16                         </return>\r
17                     </outcome>\r
18                 </switch>\r
19                 <switch test='`$service-data.vnfs.vnf_length`'>\r
20                     <outcome value=''>\r
21                         <return status='failure'>\r
22                             <parameter name='ack-final' value='Y'/>\r
23                             <parameter name="error-code" value="500" />\r
24                             <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
25                         </return>\r
26                     </outcome>\r
27                     <outcome value='Other'>\r
28                         <block atomic="true">\r
29                             <for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
30                                 <switch test="`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">\r
31                                     <outcome value='true'>\r
32                                         <set>\r
33                                             <parameter name='tmp.vidx' value='`$vidx`' />\r
34                                             <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].vnf-data.`' />\r
35                                         </set>\r
36                                     </outcome>\r
37                                 </switch>\r
38                             </for>\r
39                             <switch test="`$tmp.vidx`">\r
40                                 <outcome value=''>\r
41                                     <return status='failure'>\r
42                                         <parameter name='ack-final' value='Y'/>\r
43                                         <parameter name="error-code" value="500" />\r
44                                         <parameter name="error-message" value="vnf-topology-operation-input.vnf-information.vnf-id not found in service-data" />\r
45                                     </return>\r
46                                 </outcome>\r
47                             </switch>\r
48                         </block>\r
49                     </outcome>\r
50                 </switch>\r
51                 <switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\r
52                     <outcome value='Active'>\r
53                         <block atomic="true"></block>\r
54                     </outcome>\r
55                     <outcome value='Other'>\r
56                         <return status='failure'>\r
57                             <parameter name='ack-final' value='Y'/>\r
58                             <parameter name="error-code" value="500" />\r
59                             <parameter name="error-message" value="`'VNF is not in appropriate state for deactivate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`" />\r
60                         </return>\r
61                     </outcome>\r
62                 </switch>\r
63             </block>\r
64             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
65                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
66                 <parameter name='contextPrefix' value='prop' />\r
67             </execute>\r
68             <for index='idx' start='0' end='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`' >\r
69                 <block>\r
70                     <switch test="`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$idx].name == 'type'`">\r
71                         <outcome value='true'>\r
72                             <block atomic="true">\r
73                                 <set>\r
74                                     <parameter name='prop.site.type' value='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
75                                     <parameter name='prop.site.sdwan' value="true" />\r
76                                 </set>\r
77                             </block>\r
78                         </outcome>\r
79                     </switch>\r
80                     <switch test="`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$idx].name == 'siteId'`">\r
81                         <outcome value='true'>\r
82                             <block atomic="true">\r
83                                 <set>\r
84                                     <parameter name='prop.site.siteId' value='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
85                                 </set>\r
86                             </block>\r
87                         </outcome>\r
88                     </switch>\r
89                 </block>\r
90             </for>\r
91             <switch test="`$prop.site.sdwan`">\r
92                 <outcome value='true'>\r
93                     <block atomic="true">\r
94                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
95                 resource="esr-thirdparty-sdnc" \r
96                 key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
97                      depth = '1'"\r
98         pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
99                             <outcome value='success'>\r
100                                 <set>\r
101                                     <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
102                                     <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
103                                     <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
104                                 </set>\r
105                             </outcome>\r
106                             <outcome value='not-found'>\r
107                                 <return status='failure'>\r
108                                     <parameter name='ack-final' value='Y'/>\r
109                                     <parameter name="error-code" value="500" />\r
110                                     <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
111                                 </return>\r
112                             </outcome>\r
113                             <outcome value='Other'>\r
114                                 <return status='failure'>\r
115                                     <parameter name='ack-final' value='Y'/>\r
116                                     <parameter name="error-code" value="500" />\r
117                                     <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
118                                 </return>\r
119                             </outcome>\r
120                         </get-resource>\r
121                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
122                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
123                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
124                             <parameter name="format" value="json"/>\r
125                             <parameter name="httpMethod" value="post"/>\r
126                             <parameter name="responsePrefix" value="token-result"/>\r
127                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
128                             <parameter name="trustStorePassword" value="adminadmin"/>\r
129                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
130                             <parameter name="keyStorePassword" value="adminadmin"/>\r
131                             <outcome value='success'>\r
132                                 <set>\r
133                                     <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
134                                 </set>\r
135                             </outcome>\r
136                             <outcome value='failure'>\r
137                                 <block></block>\r
138                             </outcome>\r
139                         </execute>\r
140                         <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
141                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
142                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-site-del.json'`" />\r
143                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites/action/batch-delete'`" />\r
144                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
145                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
146                             <parameter name="format" value="json"/>\r
147                             <parameter name="httpMethod" value="post"/>\r
148                             <parameter name="responsePrefix" value="site-result"/>\r
149                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
150                             <parameter name="trustStorePassword" value="adminadmin"/>\r
151                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
152                             <parameter name="keyStorePassword" value="adminadmin"/>\r
153                             <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
154                             <outcome value='failure'>\r
155                                 <block atomic="true"></block>\r
156                             </outcome>\r
157                             <outcome value='Other'>\r
158                                 <block atomic="true"></block>\r
159                             </outcome>\r
160                         </execute>\r
161                     </block>\r
162                 </outcome>\r
163             </switch>\r
164             <set>\r
165                 <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='`$vnf-topology-operation-input.sdnc-request-header.`' />\r
166                 <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='`$vnf-topology-operation-input.request-information.`' />\r
167                 <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='`$vnf-topology-operation-input.service-information.`' />\r
168             </set>\r
169             <set>\r
170                 <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
171                 <parameter name="vnf-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $vnf-topology-operation-input.vnf-information.vnf-id  + '/vnf-data/'` " />\r
172             </set>\r
173             <set>\r
174                 <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='PendingDelete' />\r
175                 <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
176                 <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
177             </set>\r
178             <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource' \r
179       key='site-resource.site-resource-id = $vnf-topology-operation-input.vnf-information.vnf-id' >\r
180                 <parameter name='site-resource-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
181                 <parameter name='operational-status' value='PendingDelete' />\r
182             </update>\r
183             <return status='success'>\r
184                 <parameter name="ack-final-indicator" value="Y" />\r
185                 <parameter name="error-code" value="200" />\r
186                 <parameter name="error-message" value="`$error-message`" />\r
187             </return>\r
188         </block>\r
189     </method>\r
190 </service-logic>\r