SDWAN WAN Attach site addition
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_sdwan-wanport-vnf-topology-operation-underlay.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-wanport-vnf-topology-operation-underlay' mode='sync'>\r
5         <block atomic="true">\r
6             <set>\r
7                 <parameter name='prop.provision.siteIds_length' value='0' />\r
8             </set>\r
9             <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\r
10                 <block atomic="true">\r
11                     <set>\r
12                         <parameter name='prop.ar.allotted-resource-id' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id`' />\r
13                     </set>\r
14                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
15                         <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>\r
16                         <parameter name="outputPath" value="tmp.ar-url-connection"/>\r
17                         <parameter name="target" value="{allotted-resource-id}"/>\r
18                         <parameter name="replacement" value="`$prop.ar.allotted-resource-id`"/>\r
19                     </execute>\r
20                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
21                         <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />\r
22                         <parameter name='restapiUser' value='`$prop.controller.user`' />\r
23                         <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
24                         <parameter name='format' value='json' />\r
25                         <parameter name='httpMethod' value='GET' />\r
26                         <parameter name="responsePrefix" value="mdsal-ar" />\r
27                         <outcome value='success'>\r
28                             <block atomic="true">\r
29                                 <switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\r
30                                     <outcome value='1'>\r
31                                         <block atomic='true'>\r
32                                             <set>\r
33                                                 <parameter name='prop.parent-service-instance-id' value='`$mdsal-ar.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.parent-service-instance-id`' />\r
34                                             </set>\r
35                                             <for index="roleidx" start="0" end="`$mdsal-ar.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`">\r
36                                                 <block>\r
37                                                     <switch test="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$roleidx].name == 'role'`">\r
38                                                         <outcome value='true'>\r
39                                                             <set>\r
40                                                                 <parameter name='prop.spoke.role' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$roleidx].value`' />\r
41                                                             </set>\r
42                                                         </outcome>\r
43                                                     </switch>\r
44                                                 </block>\r
45                                             </for>\r
46                                         </block>\r
47                                     </outcome>\r
48                                     <outcome value='Other'>\r
49                                         <return status='failure'>\r
50                                             <parameter name='ack-final' value='Y'/>\r
51                                             <parameter name="error-code" value="404" />\r
52                                             <parameter name="error-message" value="Error: Connection attachement resource not found" />\r
53                                         </return>\r
54                                     </outcome>\r
55                                 </switch>\r
56                             </block>\r
57                         </outcome>\r
58                         <outcome value='Other'>\r
59                             <block atomic="true">\r
60                                 <return status='failure'>\r
61                                     <parameter name='ack-final' value='Y'/>\r
62                                     <parameter name="error-code" value="404" />\r
63                                     <parameter name="error-message" value="Error: Connection attachement resource not found" />\r
64                                 </return>\r
65                             </block>\r
66                         </outcome>\r
67                     </execute>\r
68                     <switch test="`$prop.spoke.role == 'spoke'`">\r
69                         <outcome value='true'>\r
70                             <block atomic="true">\r
71                                 <for index='i' start='0' end='`$service-data.vnfs.vnf_length`' >\r
72                                     <block atomic="true">\r
73                                         <switch test="`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSDWANPortInstance'`">\r
74                                             <outcome value='true'>\r
75                                                 <block atomic="true">\r
76                                                     <for index="widx" start="0" end="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
77                                                         <block atomic="true">\r
78                                                             <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'transportNetworkName'`">\r
79                                                                 <outcome value='true'>\r
80                                                                     <set>\r
81                                                                         <parameter name='prop.spoke.transportNetworkName' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />\r
82                                                                     </set>\r
83                                                                 </outcome>\r
84                                                             </switch>\r
85                                                             <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'wanPortId'`">\r
86                                                                 <outcome value='true'>\r
87                                                                     <set>\r
88                                                                         <parameter name='prop.spoke.wanPortId' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />\r
89                                                                     </set>\r
90                                                                 </outcome>\r
91                                                             </switch>\r
92                                                             <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'providerIpAddress'`">\r
93                                                                 <outcome value='true'>\r
94                                                                     <set>\r
95                                                                         <parameter name='prop.spoke.providerIpAddress' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />\r
96                                                                     </set>\r
97                                                                 </outcome>\r
98                                                             </switch>\r
99                                                             <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'ipAddress'`">\r
100                                                                 <outcome value='true'>\r
101                                                                     <set>\r
102                                                                         <parameter name='prop.spoke.ipAddress' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />\r
103                                                                     </set>\r
104                                                                 </outcome>\r
105                                                             </switch>\r
106                                                         </block>\r
107                                                     </for>\r
108                                                 </block>\r
109                                             </outcome>\r
110                                         </switch>\r
111                                         <switch test="`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`">\r
112                                             <outcome value='true'>\r
113                                                 <block atomic="true">\r
114                                                     <for index="didx" start="0" end="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
115                                                         <block atomic="true">\r
116                                                             <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$didx].name == 'deviceId'`">\r
117                                                                 <outcome value='true'>\r
118                                                                     <set>\r
119                                                                         <parameter name='prop.spoke.deviceId' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$didx].value`' />\r
120                                                                     </set>\r
121                                                                 </outcome>\r
122                                                             </switch>\r
123                                                         </block>\r
124                                                     </for>\r
125                                                 </block>\r
126                                             </outcome>\r
127                                         </switch>\r
128                                         <switch test="`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSiteInstance'`">\r
129                                             <outcome value='true'>\r
130                                                 <block atomic="true">\r
131                                                     <for index="sidx" start="0" end="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
132                                                         <block atomic="true">\r
133                                                             <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].name == 'name'`">\r
134                                                                 <outcome value='true'>\r
135                                                                     <set>\r
136                                                                         <parameter name='prop.spoke.siteName' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].value`' />\r
137                                                                     </set>\r
138                                                                 </outcome>\r
139                                                             </switch>\r
140                                                             <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].name == 'siteId'`">\r
141                                                                 <outcome value='true'>\r
142                                                                     <set>\r
143                                                                         <parameter name='prop.spoke.siteId' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].value`' />\r
144                                                                     </set>\r
145                                                                 </outcome>\r
146                                                             </switch>\r
147                                                         </block>\r
148                                                     </for>\r
149                                                 </block>\r
150                                             </outcome>\r
151                                         </switch>\r
152                                     </block>\r
153                                 </for>\r
154                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
155                                     <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>\r
156                                     <parameter name="outputPath" value="tmp.ar-url-parent-connection"/>\r
157                                     <parameter name="target" value="{service-instance-id}"/>\r
158                                     <parameter name="replacement" value="`$prop.parent-service-instance-id`"/>\r
159                                 </execute>\r
160                                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
161                                     <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-parent-connection`' />\r
162                                     <parameter name='restapiUser' value='`$prop.controller.user`' />\r
163                                     <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
164                                     <parameter name='format' value='json' />\r
165                                     <parameter name='httpMethod' value='GET' />\r
166                                     <parameter name="responsePrefix" value="mdsal-psd" />\r
167                                     <outcome value='success'>\r
168                                         <block></block>\r
169                                     </outcome>\r
170                                     <outcome value='Other'>\r
171                                         <return status='failure'>\r
172                                             <parameter name='ack-final' value='Y'/>\r
173                                             <parameter name="error-code" value="404" />\r
174                                             <parameter name="error-message" value="Error: SOTN resource not found" />\r
175                                         </return>\r
176                                     </outcome>\r
177                                 </execute>\r
178                                 <for index='pnidx' start='0' end='`$mdsal-psd.service-data.networks.network_length`' >\r
179                                     <block atomic="true">\r
180                                         <switch test="`$mdsal-psd.service-data.networks.network[$pnidx].network-data.request-information.request-action == 'ActivateSDWANConnectivityInstance'`">\r
181                                             <outcome value='true'>\r
182                                                 <set>\r
183                                                     <parameter name='tmp.pnidx' value='`$pnidx`' />\r
184                                                 </set>\r
185                                             </outcome>\r
186                                         </switch>\r
187                                         <switch test="`$tmp.pnidx`">\r
188                                             <outcome value=''>\r
189                                                 <return status='failure'>\r
190                                                     <parameter name='ack-final' value='Y'/>\r
191                                                     <parameter name="error-code" value="500" />\r
192                                                     <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
193                                                 </return>\r
194                                             </outcome>\r
195                                         </switch>\r
196                                     </block>\r
197                                 </for>\r
198                                 <for index="paramidx" start="0" end="`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param_length`">\r
199                                     <block atomic="true">\r
200                                         <switch test="`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'topology'`">\r
201                                             <outcome value='true'>\r
202                                                 <set>\r
203                                                     <parameter name='prop.topology' value='`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\r
204                                                 </set>\r
205                                             </outcome>\r
206                                         </switch>\r
207                                         <switch test="`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'vpnId'`">\r
208                                             <outcome value='true'>\r
209                                                 <set>\r
210                                                     <parameter name='prop.vpnId' value='`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\r
211                                                 </set>\r
212                                             </outcome>\r
213                                         </switch>\r
214                                     </block>\r
215                                 </for>\r
216                                 <switch test="`$prop.topology == 'hub-spoke'`">\r
217                                     <outcome value='false'>\r
218                                         <block></block>\r
219                                     </outcome>\r
220                                     <outcome value='true'>\r
221                                         <block atomic="true">\r
222                                             <for index='ppidx' start='0' end='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`' >\r
223                                                 <block atomic="true">\r
224                                                     <set>\r
225                                                         <parameter name='prop.ar.provided-allotted-resource-id' value='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[$ppidx].allotted-resource-id`' />\r
226                                                     </set>\r
227                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
228                                                         <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>\r
229                                                         <parameter name="outputPath" value="tmp.ar-url-connection"/>\r
230                                                         <parameter name="target" value="{allotted-resource-id}"/>\r
231                                                         <parameter name="replacement" value="`$prop.ar.provided-allotted-resource-id`"/>\r
232                                                     </execute>\r
233                                                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
234                                                         <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />\r
235                                                         <parameter name='restapiUser' value='`$prop.controller.user`' />\r
236                                                         <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
237                                                         <parameter name='format' value='json' />\r
238                                                         <parameter name='httpMethod' value='GET' />\r
239                                                         <parameter name="responsePrefix" value="mdsal-providedAr" />\r
240                                                         <outcome value='success'>\r
241                                                             <block></block>\r
242                                                         </outcome>\r
243                                                         <outcome value='Other'>\r
244                                                             <return status='failure'>\r
245                                                                 <parameter name='ack-final' value='Y'/>\r
246                                                                 <parameter name="error-code" value="404" />\r
247                                                                 <parameter name="error-message" value="Error: SOTN resource not found" />\r
248                                                             </return>\r
249                                                         </outcome>\r
250                                                     </execute>\r
251                                                     <for index="aridx" start="0" end="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`">\r
252                                                         <block atomic="true">\r
253                                                             <switch test="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].name == 'Role'`">\r
254                                                                 <outcome value='true'>\r
255                                                                     <set>\r
256                                                                         <parameter name='prop.role' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].value`' />\r
257                                                                     </set>\r
258                                                                 </outcome>\r
259                                                             </switch>\r
260                                                         </block>\r
261                                                     </for>\r
262                                                     <switch test="`$prop.role == hub`">\r
263                                                         <outcome value='false'>\r
264                                                             <block></block>\r
265                                                         </outcome>\r
266                                                         <outcome value='true'>\r
267                                                             <block atomic="true">\r
268                                                                 <set>\r
269                                                                     <parameter name='prop.ar-service-instance-id' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.consuming-service-instance-id`' />\r
270                                                                 </set>\r
271                                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
272                                                                     <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>\r
273                                                                     <parameter name="outputPath" value="tmp.ar-url-connection"/>\r
274                                                                     <parameter name="target" value="{service-instance-id}"/>\r
275                                                                     <parameter name="replacement" value="`$prop.ar-service-instance-id`"/>\r
276                                                                 </execute>\r
277                                                                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
278                                                                     <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />\r
279                                                                     <parameter name='restapiUser' value='`$prop.controller.user`' />\r
280                                                                     <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
281                                                                     <parameter name='format' value='json' />\r
282                                                                     <parameter name='httpMethod' value='GET' />\r
283                                                                     <parameter name="responsePrefix" value="mdsal-arsd" />\r
284                                                                     <outcome value='success'>\r
285                                                                         <block></block>\r
286                                                                     </outcome>\r
287                                                                     <outcome value='Other'>\r
288                                                                         <return status='failure'>\r
289                                                                             <parameter name='ack-final' value='Y'/>\r
290                                                                             <parameter name="error-code" value="404" />\r
291                                                                             <parameter name="error-message" value="Error: SDWAN service-data not found" />\r
292                                                                         </return>\r
293                                                                     </outcome>\r
294                                                                 </execute>\r
295                                                                 <for index='arvidx' start='0' end='`$mdsal-arsd.service-data.vnfs.vnf_length`' >\r
296                                                                     <block atomic="true">\r
297                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSDWANPortInstance'`">\r
298                                                                             <outcome value='true'>\r
299                                                                                 <set>\r
300                                                                                     <parameter name='tmp.portvidx' value='`$arvidx`' />\r
301                                                                                 </set>\r
302                                                                             </outcome>\r
303                                                                         </switch>\r
304                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`">\r
305                                                                             <outcome value='true'>\r
306                                                                                 <set>\r
307                                                                                     <parameter name='tmp.devicevidx' value='`$arvidx`' />\r
308                                                                                 </set>\r
309                                                                             </outcome>\r
310                                                                         </switch>\r
311                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSiteInstance'`">\r
312                                                                             <outcome value='true'>\r
313                                                                                 <set>\r
314                                                                                     <parameter name='tmp.sitevidx' value='`$arvidx`' />\r
315                                                                                 </set>\r
316                                                                             </outcome>\r
317                                                                         </switch>\r
318                                                                     </block>\r
319                                                                 </for>\r
320                                                                 <block atomic="true">\r
321                                                                     <switch test="`$tmp.portvidx`">\r
322                                                                         <outcome value=''>\r
323                                                                             <return status='failure'>\r
324                                                                                 <parameter name='ack-final' value='Y'/>\r
325                                                                                 <parameter name="error-code" value="500" />\r
326                                                                                 <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id (port) not found in service-data" />\r
327                                                                             </return>\r
328                                                                         </outcome>\r
329                                                                     </switch>\r
330                                                                     <switch test="`$tmp.devicevidx`">\r
331                                                                         <outcome value=''>\r
332                                                                             <return status='failure'>\r
333                                                                                 <parameter name='ack-final' value='Y'/>\r
334                                                                                 <parameter name="error-code" value="500" />\r
335                                                                                 <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id (device) not found in service-data" />\r
336                                                                             </return>\r
337                                                                         </outcome>\r
338                                                                     </switch>\r
339                                                                     <switch test="`$tmp.sitevidx`">\r
340                                                                         <outcome value=''>\r
341                                                                             <return status='failure'>\r
342                                                                                 <parameter name='ack-final' value='Y'/>\r
343                                                                                 <parameter name="error-code" value="500" />\r
344                                                                                 <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id (site) not found in service-data" />\r
345                                                                             </return>\r
346                                                                         </outcome>\r
347                                                                     </switch>\r
348                                                                 </block>\r
349                                                                 <for index="wportidx" start="0" end="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
350                                                                     <block atomic="true">\r
351                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'transportNetworkName'`">\r
352                                                                             <outcome value='true'>\r
353                                                                                 <set>\r
354                                                                                     <parameter name='prop.hub.transportNetworkName' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />\r
355                                                                                 </set>\r
356                                                                             </outcome>\r
357                                                                         </switch>\r
358                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'wanPortId'`">\r
359                                                                             <outcome value='true'>\r
360                                                                                 <set>\r
361                                                                                     <parameter name='prop.hub.wanPortId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />\r
362                                                                                 </set>\r
363                                                                             </outcome>\r
364                                                                         </switch>\r
365                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'providerIpAddress'`">\r
366                                                                             <outcome value='true'>\r
367                                                                                 <set>\r
368                                                                                     <parameter name='prop.hub.providerIpAddress' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />\r
369                                                                                 </set>\r
370                                                                             </outcome>\r
371                                                                         </switch>\r
372                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'ipAddress'`">\r
373                                                                             <outcome value='true'>\r
374                                                                                 <set>\r
375                                                                                     <parameter name='prop.hub.ipAddress' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />\r
376                                                                                 </set>\r
377                                                                             </outcome>\r
378                                                                         </switch>\r
379                                                                     </block>\r
380                                                                 </for>\r
381                                                                 <switch test="`$prop.hub.transportNetworkName == $prop.spoke.transportNetworkName`">\r
382                                                                     <outcome value='false'>\r
383                                                                         <block></block>\r
384                                                                     </outcome>\r
385                                                                     <outcome value='true'>\r
386                                                                         <block atomic="true">\r
387                                                                             <set>\r
388                                                                                 <parameter name='prop.hubTnpId' value='$prop.hub.wanPortId' />\r
389                                                                             </set>\r
390                                                                             <for index="deviceidx" start="0" end="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.devicevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
391                                                                                 <block atomic="true">\r
392                                                                                     <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.devicevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$deviceidx].name == 'deviceId'`">\r
393                                                                                         <outcome value='true'>\r
394                                                                                             <set>\r
395                                                                                                 <parameter name='prop.hub.deviceId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.devicevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$deviceidx].value`' />\r
396                                                                                             </set>\r
397                                                                                         </outcome>\r
398                                                                                     </switch>\r
399                                                                                 </block>\r
400                                                                             </for>\r
401                                                                             <for index="siteidx" start="0" end="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
402                                                                                 <block atomic="true">\r
403                                                                                     <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'name'`">\r
404                                                                                         <outcome value='true'>\r
405                                                                                             <set>\r
406                                                                                                 <parameter name='prop.hub.siteName' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\r
407                                                                                             </set>\r
408                                                                                         </outcome>\r
409                                                                                     </switch>\r
410                                                                                     <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'siteId'`">\r
411                                                                                         <outcome value='true'>\r
412                                                                                             <set>\r
413                                                                                                 <parameter name='prop.hub.siteId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\r
414                                                                                             </set>\r
415                                                                                         </outcome>\r
416                                                                                     </switch>\r
417                                                                                     <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'hubRouteId'`">\r
418                                                                                         <outcome value='true'>\r
419                                                                                             <set>\r
420                                                                                                 <parameter name='prop.hubRouteId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\r
421                                                                                             </set>\r
422                                                                                         </outcome>\r
423                                                                                     </switch>\r
424                                                                                     <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'spokeRouteId'`">\r
425                                                                                         <outcome value='true'>\r
426                                                                                             <set>\r
427                                                                                                 <parameter name='prop.spokeRouteId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\r
428                                                                                             </set>\r
429                                                                                         </outcome>\r
430                                                                                     </switch>\r
431                                                                                 </block>\r
432                                                                             </for>\r
433                                                                             <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
434                                                                                 <outcome value='ActivateSDWANAttachmentInstance'>\r
435                                                                                     <block atomic="true">\r
436                                                                                         <set>\r
437                                                                                             <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
438                                                                                             <parameter name='prop.route.siteId' value='`$prop.hub.siteId`' />\r
439                                                                                             <parameter name='prop.route.deviceId' value='`$prop.hub.deviceId`' />\r
440                                                                                             <parameter name='prop.route.providerIpAddress' value='`$prop.hub.providerIpAddress`' />\r
441                                                                                             <parameter name='prop.route.wanportId' value='`$prop.spoke.wanportId`' />\r
442                                                                                             <parameter name='prop.route.ipAddress' value='`$prop.hub.ipAddress`' />\r
443                                                                                         </set>\r
444                                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
445                                                                                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
446                                                                                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static'`" />\r
447                                                                                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
448                                                                                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
449                                                                                             <parameter name="format" value="json"/>\r
450                                                                                             <parameter name="httpMethod" value="post"/>\r
451                                                                                             <parameter name="responsePrefix" value="underlayHubResp"/>\r
452                                                                                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
453                                                                                             <parameter name="trustStorePassword" value="adminadmin"/>\r
454                                                                                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
455                                                                                             <parameter name="keyStorePassword" value="adminadmin"/>\r
456                                                                                             <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
457                                                                                             <outcome value='failure'>\r
458                                                                                                 <return status='failure'>\r
459                                                                                                     <parameter name='ack-final' value='Y'/>\r
460                                                                                                     <parameter name="error-code" value="500" />\r
461                                                                                                     <parameter name="error-message" value="Error executing sdwan hub route underlay rest api" />\r
462                                                                                                 </return>\r
463                                                                                             </outcome>\r
464                                                                                             <outcome value='success'></outcome>\r
465                                                                                         </execute>\r
466                                                                                         <set>\r
467                                                                                             <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
468                                                                                             <parameter name='prop.route.siteId' value='`$prop.spoke.siteId`' />\r
469                                                                                             <parameter name='prop.route.deviceId' value='`$prop.spoke.deviceId`' />\r
470                                                                                             <parameter name='prop.route.providerIpAddress' value='`$prop.spoke.providerIpAddress`' />\r
471                                                                                             <parameter name='prop.route.wanportId' value='`$prop.hub.wanportId`' />\r
472                                                                                             <parameter name='prop.route.ipAddress' value='`$prop.spoke.ipAddress`' />\r
473                                                                                         </set>\r
474                                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
475                                                                                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
476                                                                                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static'`" />\r
477                                                                                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
478                                                                                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
479                                                                                             <parameter name="format" value="json"/>\r
480                                                                                             <parameter name="httpMethod" value="post"/>\r
481                                                                                             <parameter name="responsePrefix" value="underlayspokeResp"/>\r
482                                                                                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
483                                                                                             <parameter name="trustStorePassword" value="adminadmin"/>\r
484                                                                                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
485                                                                                             <parameter name="keyStorePassword" value="adminadmin"/>\r
486                                                                                             <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
487                                                                                             <outcome value='failure'>\r
488                                                                                                 <return status='failure'>\r
489                                                                                                     <parameter name='ack-final' value='Y'/>\r
490                                                                                                     <parameter name="error-code" value="500" />\r
491                                                                                                     <parameter name="error-message" value="Error executing sdwan spoke route underlay rest api" />\r
492                                                                                                 </return>\r
493                                                                                             </outcome>\r
494                                                                                             <outcome value='success'></outcome>\r
495                                                                                         </execute>\r
496                                                                                         <set>\r
497                                                                                             <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length].name' value='hubRouteId' />\r
498                                                                                             <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length].value' value='`$underlayHubResp[0].id`' />\r
499                                                                                             <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 1].name' value='spokeRouteId' />\r
500                                                                                             <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 1].value' value='`$underlayspokeResp[0].id`' />\r
501                                                                                             <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 2`' />\r
502                                                                                         </set>\r
503                                                                                     </block>\r
504                                                                                 </outcome>\r
505                                                                                 <outcome value='DeactivateSDWANAttachmentInstance'>\r
506                                                                                     <block atomic="true">\r
507                                                                                         <set>\r
508                                                                                             <parameter name='prop.route.id' value='`$prop.hubRouteId`' />\r
509                                                                                             <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
510                                                                                             <parameter name='prop.route.siteId' value='`$prop.hub.siteId`' />\r
511                                                                                             <parameter name='prop.route.deviceId' value='`$prop.hub.deviceId`' />\r
512                                                                                             <parameter name='prop.route.providerIpAddress' value='`$prop.hub.providerIpAddress`' />\r
513                                                                                             <parameter name='prop.route.wanportId' value='`$prop.spoke.wanportId`' />\r
514                                                                                             <parameter name='prop.route.ipAddress' value='`$prop.hub.ipAddress`' />\r
515                                                                                         </set>\r
516                                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
517                                                                                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
518                                                                                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`" />\r
519                                                                                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
520                                                                                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
521                                                                                             <parameter name="format" value="json"/>\r
522                                                                                             <parameter name="httpMethod" value="post"/>\r
523                                                                                             <parameter name="responsePrefix" value="underlayHubResp"/>\r
524                                                                                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
525                                                                                             <parameter name="trustStorePassword" value="adminadmin"/>\r
526                                                                                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
527                                                                                             <parameter name="keyStorePassword" value="adminadmin"/>\r
528                                                                                             <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
529                                                                                             <outcome value='failure'>\r
530                                                                                                 <return status='failure'>\r
531                                                                                                     <parameter name='ack-final' value='Y'/>\r
532                                                                                                     <parameter name="error-code" value="500" />\r
533                                                                                                     <parameter name="error-message" value="Error executing sdwan hub route underlay rest api" />\r
534                                                                                                 </return>\r
535                                                                                             </outcome>\r
536                                                                                             <outcome value='success'></outcome>\r
537                                                                                         </execute>\r
538                                                                                         <set>\r
539                                                                                             <parameter name='prop.route.id' value='`$prop.spokeRouteId`' />\r
540                                                                                             <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
541                                                                                             <parameter name='prop.route.siteId' value='`$prop.spoke.siteId`' />\r
542                                                                                             <parameter name='prop.route.deviceId' value='`$prop.spoke.deviceId`' />\r
543                                                                                             <parameter name='prop.route.providerIpAddress' value='`$prop.spoke.providerIpAddress`' />\r
544                                                                                             <parameter name='prop.route.wanportId' value='`$prop.hub.wanportId`' />\r
545                                                                                             <parameter name='prop.route.ipAddress' value='`$prop.spoke.ipAddress`' />\r
546                                                                                         </set>\r
547                                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
548                                                                                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
549                                                                                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`" />\r
550                                                                                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
551                                                                                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
552                                                                                             <parameter name="format" value="json"/>\r
553                                                                                             <parameter name="httpMethod" value="post"/>\r
554                                                                                             <parameter name="responsePrefix" value="underlayspokeResp"/>\r
555                                                                                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
556                                                                                             <parameter name="trustStorePassword" value="adminadmin"/>\r
557                                                                                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
558                                                                                             <parameter name="keyStorePassword" value="adminadmin"/>\r
559                                                                                             <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
560                                                                                             <outcome value='failure'>\r
561                                                                                                 <return status='failure'>\r
562                                                                                                     <parameter name='ack-final' value='Y'/>\r
563                                                                                                     <parameter name="error-code" value="500" />\r
564                                                                                                     <parameter name="error-message" value="Error executing sdwan spoke route underlay rest api" />\r
565                                                                                                 </return>\r
566                                                                                             </outcome>\r
567                                                                                             <outcome value='success'></outcome>\r
568                                                                                         </execute>\r
569                                                                                     </block>\r
570                                                                                 </outcome>\r
571                                                                             </switch>\r
572                                                                             <set>\r
573                                                                                 <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteName' value='`$prop.hub.siteName`' />\r
574                                                                                 <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteId' value='`$prop.hub.siteId`' />\r
575                                                                                 <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteName' value='`$prop.spoke.siteName`' />\r
576                                                                                 <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteId' value='`$prop.spoke.siteId`' />\r
577                                                                                 <parameter name='prop.provision.siteIds_length' value='`$prop.provision.siteIds_length + 1`' />\r
578                                                                             </set>\r
579                                                                         </block>\r
580                                                                     </outcome>\r
581                                                                 </switch>\r
582                                                             </block>\r
583                                                         </outcome>\r
584                                                     </switch>\r
585                                                 </block>\r
586                                             </for>\r
587                                         </block>\r
588                                     </outcome>\r
589                                 </switch>\r
590                             </block>\r
591                         </outcome>\r
592                     </switch>\r
593                 </block>\r
594             </for>\r
595             <for index='providx' start='0' end='`$prop.provision.siteIds_length`' >\r
596                 <block atomic="true">\r
597                     <set>\r
598                         <parameter name='prop.provision.hubSitename' value='`$prop.provision.siteIds[$providx].hubSiteName`' />\r
599                         <parameter name='prop.provision.spokeSitename' value='`$prop.provision.siteIds[$providx].spokeSiteName`' />\r
600                         <parameter name='prop.provision.hubspokesite[0]' value='`$prop.provision.siteIds[$providx].hubSiteId`' />\r
601                         <parameter name='prop.provision.hubspokesite[1]' value='`$prop.provision.siteIds[$providx].spokeSiteId`' />\r
602                         <parameter name='prop.provision.hubspokesite_length' value='2' />\r
603                     </set>\r
604                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
605                         <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-site-provision.json'`" />\r
606                         <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites/provision-urls'`" />\r
607                         <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
608                         <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
609                         <parameter name="format" value="json"/>\r
610                         <parameter name="httpMethod" value="post"/>\r
611                         <parameter name="responsePrefix" value="provisionUrlRsp"/>\r
612                         <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
613                         <parameter name="trustStorePassword" value="adminadmin"/>\r
614                         <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
615                         <parameter name="keyStorePassword" value="adminadmin"/>\r
616                         <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
617                         <outcome value='failure'>\r
618                             <return status='failure'>\r
619                                 <parameter name='ack-final' value='Y'/>\r
620                                 <parameter name="error-code" value="500" />\r
621                                 <parameter name="error-message" value="Error executing provision url rest api" />\r
622                             </return>\r
623                         </outcome>\r
624                         <outcome value='success'></outcome>\r
625                     </execute>\r
626                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
627                         <parameter name="file" value="`'/opt/opendaylight/current/data/log/' + 'HUB-' + $prop.provision.hubSitename + '-SPOKE-' + $prop.provision.spokeSitename + '-provisionUrl'`"/>\r
628                         <parameter name="field1" value="__TIMESTAMP__"/>\r
629                         <parameter name="field2" value='`$provisionUrlRsp`'/>\r
630                     </record>\r
631                 </block>\r
632             </for>\r
633             <return status='success'>\r
634                 <parameter name="ack-final-indicator" value="Y" />\r
635                 <parameter name="error-code" value="200" />\r
636                 <parameter name="error-message" value="`$error-message`" />\r
637             </return>\r
638         </block>\r
639     </method>\r
640 </service-logic>\r