67eba6fb601c57f8288c557c9af0213ec54d3cf3
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / 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 activate. 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             <for index='idx' start='0' end='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`' >\r
65                 <block>\r
66                     <switch test="`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$idx].name == 'role'`">\r
67                         <outcome value='true'>\r
68                             <block atomic="true">\r
69                                 <set>\r
70                                     <parameter name='prop.site.role' value='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
71                                     <parameter name='prop.site.sdwan' value="true" />\r
72                                 </set>\r
73                             </block>\r
74                         </outcome>\r
75                     </switch>\r
76                     <switch test="`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$idx].name == 'siteId'`">\r
77                         <outcome value='true'>\r
78                             <block atomic="true">\r
79                                 <set>\r
80                                     <parameter name='prop.site.siteId' value='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
81                                 </set>\r
82                             </block>\r
83                         </outcome>\r
84                     </switch>\r
85                 </block>\r
86             </for>\r
87             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
88                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
89                 <parameter name='contextPrefix' value='prop' />\r
90             </execute>\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 = SDWAN-Controller 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.openecomp.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                         </execute>\r
137                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
138                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-site-del.json'`" />\r
139                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites/action/batch-delete'`" />\r
140                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
141                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
142                             <parameter name="format" value="json"/>\r
143                             <parameter name="httpMethod" value="post"/>\r
144                             <parameter name="responsePrefix" value="site-result"/>\r
145                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
146                             <parameter name="trustStorePassword" value="adminadmin"/>\r
147                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
148                             <parameter name="keyStorePassword" value="adminadmin"/>\r
149                             <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
150                             <outcome value='success'>\r
151                                 <block atomic="true"></block>\r
152                             </outcome>\r
153                             <outcome value='failure'>\r
154                                 <return status='failure'>\r
155                                     <parameter name='ack-final' value='Y'/>\r
156                                     <parameter name="error-code" value="500" />\r
157                                     <parameter name="error-message" value="Error executing Create vpn rest api" />\r
158                                 </return>\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-request-input.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             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource' \r
179       key='site-resource.id = $service-data.vnfs.vnf[$tmp.vidx].vnf-id' >\r
180                 <parameter name='id' value='`$service-data.vnfs.vnf[$tmp.vidx].vnf-id`' />\r
181                 <parameter name='operational-status' value='PendingDelete' />\r
182             </save>\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