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
7 <parameter name='prop.underlay.routeIds_length' value='0' />
\r
10 <parameter name='prop.provision.siteIds_length' value='0' />
\r
12 <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >
\r
13 <block atomic="true">
\r
15 <parameter name='prop.ar.allotted-resource-id' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id`' />
\r
17 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
\r
18 <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>
\r
19 <parameter name="outputPath" value="tmp.ar-url-connection"/>
\r
20 <parameter name="target" value="{allotted-resource-id}"/>
\r
21 <parameter name="replacement" value="`$prop.ar.allotted-resource-id`"/>
\r
23 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
\r
24 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />
\r
25 <parameter name='restapiUser' value='`$prop.controller.user`' />
\r
26 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
\r
27 <parameter name='format' value='json' />
\r
28 <parameter name='httpMethod' value='GET' />
\r
29 <parameter name="responsePrefix" value="mdsal-ar" />
\r
30 <outcome value='success'>
\r
31 <block atomic="true">
\r
32 <switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>
\r
34 <block atomic='true'>
\r
36 <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
38 <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
40 <switch test="`$mdsal-ar.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$roleidx].name == 'role'`">
\r
41 <outcome value='true'>
\r
43 <parameter name='prop.spoke.role' value='`$mdsal-ar.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$roleidx].value`' />
\r
51 <outcome value='Other'>
\r
52 <return status='failure'>
\r
53 <parameter name='ack-final' value='Y'/>
\r
54 <parameter name="error-code" value="404" />
\r
55 <parameter name="error-message" value="Error: Connection attachement resource not found" />
\r
61 <outcome value='Other'>
\r
62 <block atomic="true">
\r
63 <return status='failure'>
\r
64 <parameter name='ack-final' value='Y'/>
\r
65 <parameter name="error-code" value="404" />
\r
66 <parameter name="error-message" value="Error: Connection attachement resource not found" />
\r
71 <switch test="`$prop.spoke.role == 'spoke'`">
\r
72 <outcome value='true'>
\r
73 <block atomic="true">
\r
74 <for index='i' start='0' end='`$service-data.vnfs.vnf_length`' >
\r
75 <block atomic="true">
\r
76 <switch test="`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSDWANPortInstance'`">
\r
77 <outcome value='true'>
\r
78 <block atomic="true">
\r
79 <for index="widx" start="0" end="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">
\r
80 <block atomic="true">
\r
81 <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'transportNetworkName'`">
\r
82 <outcome value='true'>
\r
84 <parameter name='prop.spoke.transportNetworkName' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />
\r
88 <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'wanPortId'`">
\r
89 <outcome value='true'>
\r
91 <parameter name='prop.spoke.wanPortId' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />
\r
95 <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'providerIpAddress'`">
\r
96 <outcome value='true'>
\r
98 <parameter name='prop.spoke.providerIpAddress' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />
\r
102 <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'ipAddress'`">
\r
103 <outcome value='true'>
\r
105 <parameter name='prop.spoke.ipAddress' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />
\r
114 <switch test="`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`">
\r
115 <outcome value='true'>
\r
116 <block atomic="true">
\r
117 <for index="didx" start="0" end="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">
\r
118 <block atomic="true">
\r
119 <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$didx].name == 'deviceId'`">
\r
120 <outcome value='true'>
\r
122 <parameter name='prop.spoke.deviceId' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$didx].value`' />
\r
131 <switch test="`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSiteInstance'`">
\r
132 <outcome value='true'>
\r
133 <block atomic="true">
\r
135 <parameter name='prop.spoke.siteidx' value='`$i`' />
\r
137 <for index="sidx" start="0" end="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">
\r
138 <block atomic="true">
\r
139 <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].name == 'name'`">
\r
140 <outcome value='true'>
\r
142 <parameter name='prop.spoke.siteName' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].value`' />
\r
146 <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].name == 'siteId'`">
\r
147 <outcome value='true'>
\r
149 <parameter name='prop.spoke.siteId' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].value`' />
\r
153 <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].name == 'underlayRouteIds'`">
\r
154 <outcome value='true'>
\r
155 <block atomic="true">
\r
157 <parameter name='prop.underlay.routeIdsString' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].value`' />
\r
159 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
\r
160 <parameter name="original_string" value='`$prop.underlay.routeIdsString`'/>
\r
161 <parameter name="regex" value=" | "/>
\r
162 <parameter name="ctx_memory_result_key" value="prop.underlay.routeIdsValue"/>
\r
163 <outcome value='success'>
\r
164 <for index="ridx" start="0" end="`$prop.underlay.routeIdsValue_length`">
\r
165 <block atomic="true">
\r
166 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
\r
167 <parameter name="original_string" value='`$prop.underlay.routeIdsValue[$ridx]`'/>
\r
168 <parameter name="regex" value=","/>
\r
169 <parameter name="ctx_memory_result_key" value="prop.underlay.routeIdsValues"/>
\r
170 <outcome value='success'>
\r
171 <switch test='`$prop.underlay.routeIdsValues_length`'>
\r
172 <outcome value='Other'>
\r
175 <outcome value='3'>
\r
176 <block atomic="true">
\r
178 <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].hubSiteId' value='`$prop.underlay.routeIdsValues[0]`' />
\r
179 <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].hubRouteId' value='`$prop.underlay.routeIdsValues[1]`' />
\r
180 <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].spokeRouteId' value='`$prop.underlay.routeIdsValues[2]`' />
\r
183 <parameter name='prop.underlay.routeIds_length' value='`$prop.underlay.routeIds_length + 1`' />
\r
189 <outcome value='failure'>
\r
196 <outcome value='failure'>
\r
210 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
\r
211 <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>
\r
212 <parameter name="outputPath" value="tmp.ar-url-parent-connection"/>
\r
213 <parameter name="target" value="{service-instance-id}"/>
\r
214 <parameter name="replacement" value="`$prop.parent-service-instance-id`"/>
\r
216 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
\r
217 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-parent-connection`' />
\r
218 <parameter name='restapiUser' value='`$prop.controller.user`' />
\r
219 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
\r
220 <parameter name='format' value='json' />
\r
221 <parameter name='httpMethod' value='GET' />
\r
222 <parameter name="responsePrefix" value="mdsal-psd" />
\r
223 <outcome value='success'>
\r
226 <outcome value='Other'>
\r
227 <return status='failure'>
\r
228 <parameter name='ack-final' value='Y'/>
\r
229 <parameter name="error-code" value="404" />
\r
230 <parameter name="error-message" value="Error: SOTN resource not found" />
\r
234 <for index='pnidx' start='0' end='`$mdsal-psd.service-data.networks.network_length`' >
\r
235 <block atomic="true">
\r
236 <switch test="`$mdsal-psd.service-data.networks.network[$pnidx].network-data.request-information.request-action == 'ActivateSDWANConnectivityInstance'`">
\r
237 <outcome value='true'>
\r
239 <parameter name='tmp.pnidx' value='`$pnidx`' />
\r
245 <switch test="`$tmp.pnidx`">
\r
247 <return status='failure'>
\r
248 <parameter name='ack-final' value='Y'/>
\r
249 <parameter name="error-code" value="500" />
\r
250 <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
\r
254 <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
255 <block atomic="true">
\r
256 <switch test="`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'topology'`">
\r
257 <outcome value='true'>
\r
259 <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
263 <switch test="`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'vpn-id'`">
\r
264 <outcome value='true'>
\r
266 <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
272 <switch test="`$prop.topology == 'hub-spoke'`">
\r
273 <outcome value='false'>
\r
276 <outcome value='true'>
\r
277 <block atomic="true">
\r
278 <for index='ppidx' start='0' end='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`' >
\r
279 <block atomic="true">
\r
281 <parameter name='prop.ar.provided-allotted-resource-id' value='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[$ppidx].allotted-resource-id`' />
\r
283 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
\r
284 <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>
\r
285 <parameter name="outputPath" value="tmp.ar-url-connection"/>
\r
286 <parameter name="target" value="{allotted-resource-id}"/>
\r
287 <parameter name="replacement" value="`$prop.ar.provided-allotted-resource-id`"/>
\r
289 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
\r
290 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />
\r
291 <parameter name='restapiUser' value='`$prop.controller.user`' />
\r
292 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
\r
293 <parameter name='format' value='json' />
\r
294 <parameter name='httpMethod' value='GET' />
\r
295 <parameter name="responsePrefix" value="mdsal-providedAr" />
\r
296 <outcome value='success'>
\r
299 <outcome value='Other'>
\r
300 <return status='failure'>
\r
301 <parameter name='ack-final' value='Y'/>
\r
302 <parameter name="error-code" value="404" />
\r
303 <parameter name="error-message" value="Error: SOTN resource not found" />
\r
307 <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
308 <block atomic="true">
\r
309 <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
310 <outcome value='true'>
\r
312 <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
318 <switch test="`$prop.role == hub`">
\r
319 <outcome value='false'>
\r
322 <outcome value='true'>
\r
323 <block atomic="true">
\r
325 <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
327 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
\r
328 <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>
\r
329 <parameter name="outputPath" value="tmp.ar-url-connection"/>
\r
330 <parameter name="target" value="{service-instance-id}"/>
\r
331 <parameter name="replacement" value="`$prop.ar-service-instance-id`"/>
\r
333 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
\r
334 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />
\r
335 <parameter name='restapiUser' value='`$prop.controller.user`' />
\r
336 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
\r
337 <parameter name='format' value='json' />
\r
338 <parameter name='httpMethod' value='GET' />
\r
339 <parameter name="responsePrefix" value="mdsal-arsd" />
\r
340 <outcome value='success'>
\r
343 <outcome value='Other'>
\r
344 <return status='failure'>
\r
345 <parameter name='ack-final' value='Y'/>
\r
346 <parameter name="error-code" value="404" />
\r
347 <parameter name="error-message" value="Error: SDWAN service-data not found" />
\r
351 <for index='arvidx' start='0' end='`$mdsal-arsd.service-data.vnfs.vnf_length`' >
\r
352 <block atomic="true">
\r
353 <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSDWANPortInstance'`">
\r
354 <outcome value='true'>
\r
355 <block atomic="true">
\r
357 <parameter name='tmp.portvidx' value='`$arvidx`' />
\r
359 <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
360 <block atomic="true">
\r
361 <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'transportNetworkName'`">
\r
362 <outcome value='true'>
\r
363 <block atomic="true">
\r
364 <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value == $prop.spoke.transportNetworkName`">
\r
365 <outcome value='true'>
\r
366 <block atomic="true">
\r
368 <parameter name='tmp.wanportvidx' value='`$arvidx`' />
\r
371 <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
384 <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`">
\r
385 <outcome value='true'>
\r
387 <parameter name='tmp.devicevidx' value='`$arvidx`' />
\r
391 <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSiteInstance'`">
\r
392 <outcome value='true'>
\r
394 <parameter name='tmp.sitevidx' value='`$arvidx`' />
\r
400 <block atomic="true">
\r
401 <switch test="`$tmp.wanportvidx`">
\r
403 <return status='failure'>
\r
404 <parameter name='ack-final' value='Y'/>
\r
405 <parameter name="error-code" value="500" />
\r
406 <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id (port) not found in service-data" />
\r
410 <switch test="`$tmp.devicevidx`">
\r
412 <return status='failure'>
\r
413 <parameter name='ack-final' value='Y'/>
\r
414 <parameter name="error-code" value="500" />
\r
415 <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id (device) not found in service-data" />
\r
419 <switch test="`$tmp.sitevidx`">
\r
421 <return status='failure'>
\r
422 <parameter name='ack-final' value='Y'/>
\r
423 <parameter name="error-code" value="500" />
\r
424 <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id (site) not found in service-data" />
\r
429 <switch test="`$prop.hub.transportNetworkName == $prop.spoke.transportNetworkName`">
\r
430 <outcome value='false'>
\r
433 <outcome value='true'>
\r
434 <block atomic="true">
\r
435 <for index="wportidx" start="0" end="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.wanportvidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">
\r
436 <block atomic="true">
\r
437 <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.wanportvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'wanPortId'`">
\r
438 <outcome value='true'>
\r
440 <parameter name='prop.hub.wanPortId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.wanportvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />
\r
444 <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.wanportvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'providerIpAddress'`">
\r
445 <outcome value='true'>
\r
447 <parameter name='prop.hub.providerIpAddress' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.wanportvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />
\r
451 <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.wanportvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'ipAddress'`">
\r
452 <outcome value='true'>
\r
454 <parameter name='prop.hub.ipAddress' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.wanportvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />
\r
461 <parameter name='prop.hubTnpId' value='$prop.hub.wanPortId' />
\r
463 <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
464 <block atomic="true">
\r
465 <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.devicevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$deviceidx].name == 'deviceId'`">
\r
466 <outcome value='true'>
\r
468 <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
474 <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
475 <block atomic="true">
\r
476 <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'name'`">
\r
477 <outcome value='true'>
\r
479 <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
483 <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'siteId'`">
\r
484 <outcome value='true'>
\r
486 <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
492 <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>
\r
493 <outcome value='ActivateSDWANAttachmentInstance'>
\r
494 <block atomic="true">
\r
496 <parameter name='prop.hub.ipAddress' value="10.2.0.2" />
\r
497 <parameter name='prop.hub.providerIpAddress' value="10.2.0.0/16" />
\r
500 <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />
\r
501 <parameter name='prop.route.siteId' value='`$prop.hub.siteId`' />
\r
502 <parameter name='prop.route.deviceId' value='`$prop.hub.deviceId`' />
\r
503 <parameter name='prop.route.providerIpAddress' value='`$prop.hub.providerIpAddress`' />
\r
504 <parameter name='prop.route.wanportId' value='`$prop.spoke.wanPortId`' />
\r
505 <parameter name='prop.route.ipAddress' value='`$prop.hub.ipAddress`' />
\r
507 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
\r
508 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />
\r
509 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static'`" />
\r
510 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
\r
511 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
\r
512 <parameter name="format" value="json"/>
\r
513 <parameter name="httpMethod" value="post"/>
\r
514 <parameter name="responsePrefix" value="underlayHubResp"/>
\r
515 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
\r
516 <parameter name="trustStorePassword" value="adminadmin"/>
\r
517 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
\r
518 <parameter name="keyStorePassword" value="adminadmin"/>
\r
519 <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
\r
520 <outcome value='failure'>
\r
523 <outcome value='success'>
\r
528 <parameter name='prop.spoke.ipAddress' value="10.3.0.1" />
\r
529 <parameter name='prop.spoke.providerIpAddress' value="10.3.0.0/16" />
\r
532 <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />
\r
533 <parameter name='prop.route.siteId' value='`$prop.spoke.siteId`' />
\r
534 <parameter name='prop.route.deviceId' value='`$prop.spoke.deviceId`' />
\r
535 <parameter name='prop.route.providerIpAddress' value='`$prop.spoke.providerIpAddress`' />
\r
536 <parameter name='prop.route.wanportId' value='`$prop.hub.wanPortId`' />
\r
537 <parameter name='prop.route.ipAddress' value='`$prop.spoke.ipAddress`' />
\r
539 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
\r
540 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />
\r
541 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static'`" />
\r
542 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
\r
543 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
\r
544 <parameter name="format" value="json"/>
\r
545 <parameter name="httpMethod" value="post"/>
\r
546 <parameter name="responsePrefix" value="underlayspokeResp"/>
\r
547 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
\r
548 <parameter name="trustStorePassword" value="adminadmin"/>
\r
549 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
\r
550 <parameter name="keyStorePassword" value="adminadmin"/>
\r
551 <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
\r
552 <outcome value='failure'>
\r
555 <outcome value='success'>
\r
560 <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].hubSiteId' value='`$prop.hub.siteId`' />
\r
561 <!--parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].spokeSiteId' value='`$prop.spoke.siteId`' /-->
\r
562 <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].hubRouteId' value='`$underlayHubResp.success[0].id`' />
\r
563 <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].spokeRouteId' value='`$underlayspokeResp.success[0].id`' />
\r
566 <parameter name='prop.underlay.routeIds_length' value='`$prop.underlay.routeIds_length + 1`' />
\r
569 <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteName' value='`$prop.hub.siteName`' />
\r
570 <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteId' value='`$prop.hub.siteId`' />
\r
571 <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteName' value='`$prop.spoke.siteName`' />
\r
572 <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteId' value='`$prop.spoke.siteId`' />
\r
575 <parameter name='prop.provision.siteIds_length' value='`$prop.provision.siteIds_length + 1`' />
\r
579 <outcome value='DeactivateSDWANAttachmentInstance'>
\r
580 <block atomic="true">
\r
581 <for index="uidx" start="0" end="`$prop.underlay.routeIds_length`">
\r
582 <block atomic="true">
\r
583 <switch test="`$prop.underlay.routeIds[$uidx].hubSiteId == $prop.hub.siteId`">
\r
584 <outcome value='true'>
\r
585 <block atomic="true">
\r
587 <parameter name='prop.hubRouteId' value='`$prop.underlay.routeIds[$uidx].hubRouteId`' />
\r
588 <parameter name='prop.spokeRouteId' value='`$prop.underlay.routeIds[$uidx].spokeRouteId`' />
\r
596 <parameter name='prop.hub.ipAddress' value="10.2.0.2" />
\r
597 <parameter name='prop.hub.providerIpAddress' value="10.2.0.0/16" />
\r
600 <parameter name='prop.route.id' value='`$prop.hubRouteId`' />
\r
601 <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />
\r
602 <parameter name='prop.route.siteId' value='`$prop.hub.siteId`' />
\r
603 <parameter name='prop.route.deviceId' value='`$prop.hub.deviceId`' />
\r
604 <parameter name='prop.route.providerIpAddress' value='`$prop.hub.providerIpAddress`' />
\r
605 <parameter name='prop.route.wanportId' value='`$prop.spoke.wanPortId`' />
\r
606 <parameter name='prop.route.ipAddress' value='`$prop.hub.ipAddress`' />
\r
608 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
\r
609 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />
\r
610 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`" />
\r
611 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
\r
612 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
\r
613 <parameter name="format" value="json"/>
\r
614 <parameter name="httpMethod" value="post"/>
\r
615 <parameter name="responsePrefix" value="underlayHubResp"/>
\r
616 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
\r
617 <parameter name="trustStorePassword" value="adminadmin"/>
\r
618 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
\r
619 <parameter name="keyStorePassword" value="adminadmin"/>
\r
620 <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
\r
621 <outcome value='failure'>
\r
624 <outcome value='success'>
\r
629 <parameter name='prop.spoke.ipAddress' value="10.3.0.1" />
\r
630 <parameter name='prop.spoke.providerIpAddress' value="10.3.0.0/16" />
\r
633 <parameter name='prop.route.id' value='`$prop.spokeRouteId`' />
\r
634 <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />
\r
635 <parameter name='prop.route.siteId' value='`$prop.spoke.siteId`' />
\r
636 <parameter name='prop.route.deviceId' value='`$prop.spoke.deviceId`' />
\r
637 <parameter name='prop.route.providerIpAddress' value='`$prop.spoke.providerIpAddress`' />
\r
638 <parameter name='prop.route.wanportId' value='`$prop.hub.wanPortId`' />
\r
639 <parameter name='prop.route.ipAddress' value='`$prop.spoke.ipAddress`' />
\r
641 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
\r
642 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />
\r
643 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`" />
\r
644 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
\r
645 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
\r
646 <parameter name="format" value="json"/>
\r
647 <parameter name="httpMethod" value="post"/>
\r
648 <parameter name="responsePrefix" value="underlayspokeResp"/>
\r
649 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
\r
650 <parameter name="trustStorePassword" value="adminadmin"/>
\r
651 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
\r
652 <parameter name="keyStorePassword" value="adminadmin"/>
\r
653 <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
\r
654 <outcome value='failure'>
\r
657 <outcome value='success'>
\r
675 <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>
\r
676 <outcome value='ActivateSDWANAttachmentInstance'>
\r
677 <block atomic="true">
\r
679 <parameter name='tmp.routeString' value="" />
\r
681 <for index="jidx" start="0" end="`$prop.underlay.routeIds_length`">
\r
682 <block atomic="true">
\r
683 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >
\r
684 <parameter name="source" value='`$prop.underlay.routeIds[$jidx].hubSiteId`'/>
\r
685 <parameter name="outputPath" value="tmp.concat"/>
\r
686 <parameter name="target" value=","/>
\r
688 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >
\r
689 <parameter name="source" value='`$tmp.concat`'/>
\r
690 <parameter name="outputPath" value="tmp.concat1"/>
\r
691 <parameter name="target" value='`$prop.underlay.routeIds[$jidx].hubRouteId`'/>
\r
693 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >
\r
694 <parameter name="source" value='`$tmp.concat1`'/>
\r
695 <parameter name="outputPath" value="tmp.concat2"/>
\r
696 <parameter name="target" value=","/>
\r
698 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >
\r
699 <parameter name="source" value='`$tmp.concat2`'/>
\r
700 <parameter name="outputPath" value="tmp.concat3"/>
\r
701 <parameter name="target" value='`$prop.underlay.routeIds[$jidx].spokeRouteId`'/>
\r
703 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >
\r
704 <parameter name="source" value='`$tmp.concat3`'/>
\r
705 <parameter name="outputPath" value="tmp.concat4"/>
\r
706 <parameter name="target" value=" | "/>
\r
708 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >
\r
709 <parameter name="source" value='`$tmp.routeString`'/>
\r
710 <parameter name="outputPath" value="tmp.routeString"/>
\r
711 <parameter name="target" value='`$tmp.concat4`'/>
\r
716 <parameter name='service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length].name' value="underlayRouteIds" />
\r
717 <parameter name='service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length].value' value='`$tmp.routeString`' />
\r
720 <parameter name='service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length' value='`$service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 1`' />
\r
724 <outcome value='DeactivateSDWANAttachmentInstance'>
\r
725 <block atomic="true">
\r
727 <parameter name='service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length' value='`$service-data.vnfs.vnf[$prop.spoke.siteidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length - 1`' />
\r
737 <for index='providx' start='0' end='`$prop.provision.siteIds_length`' >
\r
738 <block atomic="true">
\r
740 <parameter name='prop.provision.hubSitename' value='`$prop.provision.siteIds[$providx].hubSiteName`' />
\r
741 <parameter name='prop.provision.spokeSitename' value='`$prop.provision.siteIds[$providx].spokeSiteName`' />
\r
742 <parameter name='prop.provision.hubspokesite[0]' value='`$prop.provision.siteIds[$providx].hubSiteId`' />
\r
743 <parameter name='prop.provision.hubspokesite[1]' value='`$prop.provision.siteIds[$providx].spokeSiteId`' />
\r
744 <parameter name='prop.provision.hubspokesite_length' value='2' />
\r
746 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
\r
747 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-site-provision.json'`" />
\r
748 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites/provision-urls'`" />
\r
749 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
\r
750 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
\r
751 <parameter name="format" value="json"/>
\r
752 <parameter name="httpMethod" value="post"/>
\r
753 <parameter name="responsePrefix" value="provisionUrlRsp"/>
\r
754 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
\r
755 <parameter name="trustStorePassword" value="adminadmin"/>
\r
756 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
\r
757 <parameter name="keyStorePassword" value="adminadmin"/>
\r
758 <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
\r
759 <outcome value='failure'>
\r
760 <return status='failure'>
\r
761 <parameter name='ack-final' value='Y'/>
\r
762 <parameter name="error-code" value="500" />
\r
763 <parameter name="error-message" value="Error executing provision url rest api" />
\r
766 <outcome value='success'></outcome>
\r
768 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
\r
769 <parameter name="file" value="`'/opt/opendaylight/current/data/log/' + 'HUB-' + $prop.provision.hubSitename + '-SPOKE-' + $prop.provision.spokeSitename + '-provisionUrl'`"/>
\r
770 <parameter name="field1" value="__TIMESTAMP__"/>
\r
771 <parameter name="field2" value='`$provisionUrlRsp.success[0].url`'/>
\r
775 <return status='success'>
\r
776 <parameter name="ack-final-indicator" value="Y" />
\r
777 <parameter name="error-code" value="200" />
\r
778 <parameter name="error-message" value="`$error-message`" />
\r