SDWAN flow based end-end test and issue fix
[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.underlay.routeIds_length' value='0' />\r
8             </set>\r
9             <set>\r
10                 <parameter name='prop.provision.siteIds_length' value='0' />\r
11             </set>\r
12             <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\r
13                 <block atomic="true">\r
14                     <set>\r
15                         <parameter name='prop.ar.allotted-resource-id' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id`' />\r
16                     </set>\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
22                     </execute>\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
33                                     <outcome value='1'>\r
34                                         <block atomic='true'>\r
35                                             <set>\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
37                                             </set>\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
39                                                 <block>\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
42                                                             <set>\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
44                                                             </set>\r
45                                                         </outcome>\r
46                                                     </switch>\r
47                                                 </block>\r
48                                             </for>\r
49                                         </block>\r
50                                     </outcome>\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
56                                         </return>\r
57                                     </outcome>\r
58                                 </switch>\r
59                             </block>\r
60                         </outcome>\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
67                                 </return>\r
68                             </block>\r
69                         </outcome>\r
70                     </execute>\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
83                                                                     <set>\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
85                                                                     </set>\r
86                                                                 </outcome>\r
87                                                             </switch>\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
90                                                                     <set>\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
92                                                                     </set>\r
93                                                                 </outcome>\r
94                                                             </switch>\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
97                                                                     <set>\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
99                                                                     </set>\r
100                                                                 </outcome>\r
101                                                             </switch>\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
104                                                                     <set>\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
106                                                                     </set>\r
107                                                                 </outcome>\r
108                                                             </switch>\r
109                                                         </block>\r
110                                                     </for>\r
111                                                 </block>\r
112                                             </outcome>\r
113                                         </switch>\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
121                                                                     <set>\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
123                                                                     </set>\r
124                                                                 </outcome>\r
125                                                             </switch>\r
126                                                         </block>\r
127                                                     </for>\r
128                                                 </block>\r
129                                             </outcome>\r
130                                         </switch>\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
134                                                     <set>\r
135                                                         <parameter name='prop.spoke.siteidx' value='`$i`' />\r
136                                                     </set>\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
141                                                                     <set>\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
143                                                                     </set>\r
144                                                                 </outcome>\r
145                                                             </switch>\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
148                                                                     <set>\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
150                                                                     </set>\r
151                                                                 </outcome>\r
152                                                             </switch>\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
156                                                                         <set>\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
158                                                                         </set>\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
173                                                                                                         <block></block>\r
174                                                                                                     </outcome>\r
175                                                                                                     <outcome value='3'>\r
176                                                                                                         <block atomic="true">\r
177                                                                                                             <set>\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
181                                                                                                             </set>\r
182                                                                                                             <set>\r
183                                                                                                                 <parameter name='prop.underlay.routeIds_length' value='`$prop.underlay.routeIds_length + 1`' />\r
184                                                                                                             </set>\r
185                                                                                                         </block>\r
186                                                                                                     </outcome>\r
187                                                                                                 </switch>\r
188                                                                                             </outcome>\r
189                                                                                             <outcome value='failure'>\r
190                                                                                                 <block></block>\r
191                                                                                             </outcome>\r
192                                                                                         </execute>\r
193                                                                                     </block>\r
194                                                                                 </for>\r
195                                                                             </outcome>\r
196                                                                             <outcome value='failure'>\r
197                                                                                 <block></block>\r
198                                                                             </outcome>\r
199                                                                         </execute>\r
200                                                                     </block>\r
201                                                                 </outcome>\r
202                                                             </switch>\r
203                                                         </block>\r
204                                                     </for>\r
205                                                 </block>\r
206                                             </outcome>\r
207                                         </switch>\r
208                                     </block>\r
209                                 </for>\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
215                                 </execute>\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
224                                         <block></block>\r
225                                     </outcome>\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
231                                         </return>\r
232                                     </outcome>\r
233                                 </execute>\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
238                                                 <set>\r
239                                                     <parameter name='tmp.pnidx' value='`$pnidx`' />\r
240                                                 </set>\r
241                                             </outcome>\r
242                                         </switch>\r
243                                     </block>\r
244                                 </for>\r
245                                 <switch test="`$tmp.pnidx`">\r
246                                     <outcome value=''>\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
251                                         </return>\r
252                                     </outcome>\r
253                                 </switch>\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
258                                                 <set>\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
260                                                 </set>\r
261                                             </outcome>\r
262                                         </switch>\r
263                                         <switch test="`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'vpnId'`">\r
264                                             <outcome value='true'>\r
265                                                 <set>\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
267                                                 </set>\r
268                                             </outcome>\r
269                                         </switch>\r
270                                     </block>\r
271                                 </for>\r
272                                 <switch test="`$prop.topology == 'hub-spoke'`">\r
273                                     <outcome value='false'>\r
274                                         <block></block>\r
275                                     </outcome>\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
280                                                     <set>\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
282                                                     </set>\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
288                                                     </execute>\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
297                                                             <block></block>\r
298                                                         </outcome>\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
304                                                             </return>\r
305                                                         </outcome>\r
306                                                     </execute>\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
311                                                                     <set>\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
313                                                                     </set>\r
314                                                                 </outcome>\r
315                                                             </switch>\r
316                                                         </block>\r
317                                                     </for>\r
318                                                     <switch test="`$prop.role == hub`">\r
319                                                         <outcome value='false'>\r
320                                                             <block></block>\r
321                                                         </outcome>\r
322                                                         <outcome value='true'>\r
323                                                             <block atomic="true">\r
324                                                                 <set>\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
326                                                                 </set>\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
332                                                                 </execute>\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
341                                                                         <block></block>\r
342                                                                     </outcome>\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
348                                                                         </return>\r
349                                                                     </outcome>\r
350                                                                 </execute>\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                                                                                 <set>\r
356                                                                                     <parameter name='tmp.portvidx' value='`$arvidx`' />\r
357                                                                                 </set>\r
358                                                                             </outcome>\r
359                                                                         </switch>\r
360                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`">\r
361                                                                             <outcome value='true'>\r
362                                                                                 <set>\r
363                                                                                     <parameter name='tmp.devicevidx' value='`$arvidx`' />\r
364                                                                                 </set>\r
365                                                                             </outcome>\r
366                                                                         </switch>\r
367                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSiteInstance'`">\r
368                                                                             <outcome value='true'>\r
369                                                                                 <set>\r
370                                                                                     <parameter name='tmp.sitevidx' value='`$arvidx`' />\r
371                                                                                 </set>\r
372                                                                             </outcome>\r
373                                                                         </switch>\r
374                                                                     </block>\r
375                                                                 </for>\r
376                                                                 <block atomic="true">\r
377                                                                     <switch test="`$tmp.portvidx`">\r
378                                                                         <outcome value=''>\r
379                                                                             <return status='failure'>\r
380                                                                                 <parameter name='ack-final' value='Y'/>\r
381                                                                                 <parameter name="error-code" value="500" />\r
382                                                                                 <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id (port) not found in service-data" />\r
383                                                                             </return>\r
384                                                                         </outcome>\r
385                                                                     </switch>\r
386                                                                     <switch test="`$tmp.devicevidx`">\r
387                                                                         <outcome value=''>\r
388                                                                             <return status='failure'>\r
389                                                                                 <parameter name='ack-final' value='Y'/>\r
390                                                                                 <parameter name="error-code" value="500" />\r
391                                                                                 <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id (device) not found in service-data" />\r
392                                                                             </return>\r
393                                                                         </outcome>\r
394                                                                     </switch>\r
395                                                                     <switch test="`$tmp.sitevidx`">\r
396                                                                         <outcome value=''>\r
397                                                                             <return status='failure'>\r
398                                                                                 <parameter name='ack-final' value='Y'/>\r
399                                                                                 <parameter name="error-code" value="500" />\r
400                                                                                 <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id (site) not found in service-data" />\r
401                                                                             </return>\r
402                                                                         </outcome>\r
403                                                                     </switch>\r
404                                                                 </block>\r
405                                                                 <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
406                                                                     <block atomic="true">\r
407                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'transportNetworkName'`">\r
408                                                                             <outcome value='true'>\r
409                                                                                 <set>\r
410                                                                                     <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
411                                                                                 </set>\r
412                                                                             </outcome>\r
413                                                                         </switch>\r
414                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'wanPortId'`">\r
415                                                                             <outcome value='true'>\r
416                                                                                 <set>\r
417                                                                                     <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
418                                                                                 </set>\r
419                                                                             </outcome>\r
420                                                                         </switch>\r
421                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'providerIpAddress'`">\r
422                                                                             <outcome value='true'>\r
423                                                                                 <set>\r
424                                                                                     <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
425                                                                                 </set>\r
426                                                                             </outcome>\r
427                                                                         </switch>\r
428                                                                         <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'ipAddress'`">\r
429                                                                             <outcome value='true'>\r
430                                                                                 <set>\r
431                                                                                     <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
432                                                                                 </set>\r
433                                                                             </outcome>\r
434                                                                         </switch>\r
435                                                                     </block>\r
436                                                                 </for>\r
437                                                                 <switch test="`$prop.hub.transportNetworkName == $prop.spoke.transportNetworkName`">\r
438                                                                     <outcome value='false'>\r
439                                                                         <block></block>\r
440                                                                     </outcome>\r
441                                                                     <outcome value='true'>\r
442                                                                         <block atomic="true">\r
443                                                                             <set>\r
444                                                                                 <parameter name='prop.hubTnpId' value='$prop.hub.wanPortId' />\r
445                                                                             </set>\r
446                                                                             <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
447                                                                                 <block atomic="true">\r
448                                                                                     <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.devicevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$deviceidx].name == 'deviceId'`">\r
449                                                                                         <outcome value='true'>\r
450                                                                                             <set>\r
451                                                                                                 <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
452                                                                                             </set>\r
453                                                                                         </outcome>\r
454                                                                                     </switch>\r
455                                                                                 </block>\r
456                                                                             </for>\r
457                                                                             <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
458                                                                                 <block atomic="true">\r
459                                                                                     <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'name'`">\r
460                                                                                         <outcome value='true'>\r
461                                                                                             <set>\r
462                                                                                                 <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
463                                                                                             </set>\r
464                                                                                         </outcome>\r
465                                                                                     </switch>\r
466                                                                                     <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'siteId'`">\r
467                                                                                         <outcome value='true'>\r
468                                                                                             <set>\r
469                                                                                                 <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
470                                                                                             </set>\r
471                                                                                         </outcome>\r
472                                                                                     </switch>\r
473                                                                                 </block>\r
474                                                                             </for>\r
475                                                                             <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
476                                                                                 <outcome value='ActivateSDWANAttachmentInstance'>\r
477                                                                                     <block atomic="true">\r
478                                                                                         <set>\r
479                                                                                             <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
480                                                                                             <parameter name='prop.route.siteId' value='`$prop.hub.siteId`' />\r
481                                                                                             <parameter name='prop.route.deviceId' value='`$prop.hub.deviceId`' />\r
482                                                                                             <parameter name='prop.route.providerIpAddress' value='`$prop.hub.providerIpAddress`' />\r
483                                                                                             <parameter name='prop.route.wanportId' value='`$prop.spoke.wanPortId`' />\r
484                                                                                             <parameter name='prop.route.ipAddress' value='`$prop.hub.ipAddress`' />\r
485                                                                                         </set>\r
486                                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
487                                                                                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
488                                                                                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static'`" />\r
489                                                                                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
490                                                                                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
491                                                                                             <parameter name="format" value="json"/>\r
492                                                                                             <parameter name="httpMethod" value="post"/>\r
493                                                                                             <parameter name="responsePrefix" value="underlayHubResp"/>\r
494                                                                                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
495                                                                                             <parameter name="trustStorePassword" value="adminadmin"/>\r
496                                                                                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
497                                                                                             <parameter name="keyStorePassword" value="adminadmin"/>\r
498                                                                                             <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
499                                                                                             <outcome value='failure'>\r
500                                                                                                 <return status='failure'>\r
501                                                                                                     <parameter name='ack-final' value='Y'/>\r
502                                                                                                     <parameter name="error-code" value="500" />\r
503                                                                                                     <parameter name="error-message" value="Error executing sdwan hub route underlay rest api" />\r
504                                                                                                 </return>\r
505                                                                                             </outcome>\r
506                                                                                             <outcome value='success'></outcome>\r
507                                                                                         </execute>\r
508                                                                                         <set>\r
509                                                                                             <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
510                                                                                             <parameter name='prop.route.siteId' value='`$prop.spoke.siteId`' />\r
511                                                                                             <parameter name='prop.route.deviceId' value='`$prop.spoke.deviceId`' />\r
512                                                                                             <parameter name='prop.route.providerIpAddress' value='`$prop.spoke.providerIpAddress`' />\r
513                                                                                             <parameter name='prop.route.wanportId' value='`$prop.hub.wanPortId`' />\r
514                                                                                             <parameter name='prop.route.ipAddress' value='`$prop.spoke.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'`" />\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="underlayspokeResp"/>\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 spoke 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.underlay.routeIds[$prop.underlay.routeIds_length].hubSiteId' value='`$prop.hub.siteId`' />\r
540                                                                                             <!--parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].spokeSiteId' value='`$prop.spoke.siteId`' /-->\r
541                                                                                             <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].hubRouteId' value='`$underlayHubResp.success[0].id`' />\r
542                                                                                             <parameter name='prop.underlay.routeIds[$prop.underlay.routeIds_length].spokeRouteId' value='`$underlayspokeResp.success[0].id`' />\r
543                                                                                         </set>\r
544                                                                                         <set>\r
545                                                                                             <parameter name='prop.underlay.routeIds_length' value='`$prop.underlay.routeIds_length + 1`' />\r
546                                                                                         </set>\r
547                                                                                         <set>\r
548                                                                                             <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteName' value='`$prop.hub.siteName`' />\r
549                                                                                             <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteId' value='`$prop.hub.siteId`' />\r
550                                                                                             <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteName' value='`$prop.spoke.siteName`' />\r
551                                                                                             <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteId' value='`$prop.spoke.siteId`' />\r
552                                                                                         </set>\r
553                                                                                         <set>\r
554                                                                                             <parameter name='prop.provision.siteIds_length' value='`$prop.provision.siteIds_length + 1`' />\r
555                                                                                         </set>\r
556                                                                                     </block>\r
557                                                                                 </outcome>\r
558                                                                                 <outcome value='DeactivateSDWANAttachmentInstance'>\r
559                                                                                     <block atomic="true">\r
560                                                                                         <for index="uidx" start="0" end="`$prop.underlay.routeIds_length`">\r
561                                                                                             <block atomic="true">\r
562                                                                                                 <switch test="`$prop.underlay.routeIds[$uidx].hubSiteId == $prop.hub.siteId`">\r
563                                                                                                     <outcome value='true'>\r
564                                                                                                         <block atomic="true">\r
565                                                                                                             <set>\r
566                                                                                                                 <parameter name='prop.hubRouteId' value='`$prop.underlay.routeIds[$uidx].hubRouteId`' />\r
567                                                                                                                 <parameter name='prop.spokeRouteId' value='`$prop.underlay.routeIds[$uidx].spokeRouteId`' />\r
568                                                                                                             </set>\r
569                                                                                                         </block>\r
570                                                                                                     </outcome>\r
571                                                                                                 </switch>\r
572                                                                                             </block>\r
573                                                                                         </for>\r
574                                                                                         <set>\r
575                                                                                             <parameter name='prop.route.id' value='`$prop.hubRouteId`' />\r
576                                                                                             <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
577                                                                                             <parameter name='prop.route.siteId' value='`$prop.hub.siteId`' />\r
578                                                                                             <parameter name='prop.route.deviceId' value='`$prop.hub.deviceId`' />\r
579                                                                                             <parameter name='prop.route.providerIpAddress' value='`$prop.hub.providerIpAddress`' />\r
580                                                                                             <parameter name='prop.route.wanportId' value='`$prop.spoke.wanPortId`' />\r
581                                                                                             <parameter name='prop.route.ipAddress' value='`$prop.hub.ipAddress`' />\r
582                                                                                         </set>\r
583                                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
584                                                                                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
585                                                                                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`" />\r
586                                                                                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
587                                                                                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
588                                                                                             <parameter name="format" value="json"/>\r
589                                                                                             <parameter name="httpMethod" value="post"/>\r
590                                                                                             <parameter name="responsePrefix" value="underlayHubResp"/>\r
591                                                                                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
592                                                                                             <parameter name="trustStorePassword" value="adminadmin"/>\r
593                                                                                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
594                                                                                             <parameter name="keyStorePassword" value="adminadmin"/>\r
595                                                                                             <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
596                                                                                             <outcome value='failure'>\r
597                                                                                                 <return status='failure'>\r
598                                                                                                     <parameter name='ack-final' value='Y'/>\r
599                                                                                                     <parameter name="error-code" value="500" />\r
600                                                                                                     <parameter name="error-message" value="Error executing sdwan hub route underlay rest api" />\r
601                                                                                                 </return>\r
602                                                                                             </outcome>\r
603                                                                                             <outcome value='success'></outcome>\r
604                                                                                         </execute>\r
605                                                                                         <set>\r
606                                                                                             <parameter name='prop.route.id' value='`$prop.spokeRouteId`' />\r
607                                                                                             <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
608                                                                                             <parameter name='prop.route.siteId' value='`$prop.spoke.siteId`' />\r
609                                                                                             <parameter name='prop.route.deviceId' value='`$prop.spoke.deviceId`' />\r
610                                                                                             <parameter name='prop.route.providerIpAddress' value='`$prop.spoke.providerIpAddress`' />\r
611                                                                                             <parameter name='prop.route.wanportId' value='`$prop.hub.wanPortId`' />\r
612                                                                                             <parameter name='prop.route.ipAddress' value='`$prop.spoke.ipAddress`' />\r
613                                                                                         </set>\r
614                                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
615                                                                                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
616                                                                                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`" />\r
617                                                                                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
618                                                                                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
619                                                                                             <parameter name="format" value="json"/>\r
620                                                                                             <parameter name="httpMethod" value="post"/>\r
621                                                                                             <parameter name="responsePrefix" value="underlayspokeResp"/>\r
622                                                                                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
623                                                                                             <parameter name="trustStorePassword" value="adminadmin"/>\r
624                                                                                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
625                                                                                             <parameter name="keyStorePassword" value="adminadmin"/>\r
626                                                                                             <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
627                                                                                             <outcome value='failure'>\r
628                                                                                                 <return status='failure'>\r
629                                                                                                     <parameter name='ack-final' value='Y'/>\r
630                                                                                                     <parameter name="error-code" value="500" />\r
631                                                                                                     <parameter name="error-message" value="Error executing sdwan spoke route underlay rest api" />\r
632                                                                                                 </return>\r
633                                                                                             </outcome>\r
634                                                                                             <outcome value='success'></outcome>\r
635                                                                                         </execute>\r
636                                                                                     </block>\r
637                                                                                 </outcome>\r
638                                                                             </switch>\r
639                                                                         </block>\r
640                                                                     </outcome>\r
641                                                                 </switch>\r
642                                                             </block>\r
643                                                         </outcome>\r
644                                                     </switch>\r
645                                                 </block>\r
646                                             </for>\r
647                                         </block>\r
648                                     </outcome>\r
649                                 </switch>\r
650                                 <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
651                                     <outcome value='ActivateSDWANAttachmentInstance'>\r
652                                         <block atomic="true">\r
653                                             <set>\r
654                                                 <parameter name='tmp.routeString' value="" />\r
655                                             </set>\r
656                                             <for index="jidx" start="0" end="`$prop.underlay.routeIds_length`">\r
657                                                 <block atomic="true">\r
658                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
659                                                         <parameter name="source" value='`$prop.underlay.routeIds[$jidx].hubSiteId`'/>\r
660                                                         <parameter name="outputPath" value="tmp.concat"/>\r
661                                                         <parameter name="target" value=","/>\r
662                                                     </execute>\r
663                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
664                                                         <parameter name="source" value='`$tmp.concat`'/>\r
665                                                         <parameter name="outputPath" value="tmp.concat1"/>\r
666                                                         <parameter name="target" value='`$prop.underlay.routeIds[$jidx].hubRouteId`'/>\r
667                                                     </execute>\r
668                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
669                                                         <parameter name="source" value='`$tmp.concat1`'/>\r
670                                                         <parameter name="outputPath" value="tmp.concat2"/>\r
671                                                         <parameter name="target" value=","/>\r
672                                                     </execute>\r
673                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
674                                                         <parameter name="source" value='`$tmp.concat2`'/>\r
675                                                         <parameter name="outputPath" value="tmp.concat3"/>\r
676                                                         <parameter name="target" value='`$prop.underlay.routeIds[$jidx].spokeRouteId`'/>\r
677                                                     </execute>\r
678                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
679                                                         <parameter name="source" value='`$tmp.concat3`'/>\r
680                                                         <parameter name="outputPath" value="tmp.concat4"/>\r
681                                                         <parameter name="target" value=" | "/>\r
682                                                     </execute>\r
683                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
684                                                         <parameter name="source" value='`$tmp.routeString`'/>\r
685                                                         <parameter name="outputPath" value="tmp.routeString"/>\r
686                                                         <parameter name="target" value='`$tmp.concat4`'/>\r
687                                                     </execute>\r
688                                                 </block>\r
689                                             </for>\r
690                                             <set>\r
691                                                 <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
692                                                 <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
693                                             </set>\r
694                                             <set>\r
695                                                 <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
696                                             </set>\r
697                                         </block>\r
698                                     </outcome>\r
699                                     <outcome value='DeactivateSDWANAttachmentInstance'>\r
700                                         <block atomic="true">\r
701                                             <set>\r
702                                                 <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
703                                             </set>\r
704                                         </block>\r
705                                     </outcome>\r
706                                 </switch>\r
707                             </block>\r
708                         </outcome>\r
709                     </switch>\r
710                 </block>\r
711             </for>\r
712             <for index='providx' start='0' end='`$prop.provision.siteIds_length`' >\r
713                 <block atomic="true">\r
714                     <set>\r
715                         <parameter name='prop.provision.hubSitename' value='`$prop.provision.siteIds[$providx].hubSiteName`' />\r
716                         <parameter name='prop.provision.spokeSitename' value='`$prop.provision.siteIds[$providx].spokeSiteName`' />\r
717                         <parameter name='prop.provision.hubspokesite[0]' value='`$prop.provision.siteIds[$providx].hubSiteId`' />\r
718                         <parameter name='prop.provision.hubspokesite[1]' value='`$prop.provision.siteIds[$providx].spokeSiteId`' />\r
719                         <parameter name='prop.provision.hubspokesite_length' value='2' />\r
720                     </set>\r
721                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
722                         <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-site-provision.json'`" />\r
723                         <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites/provision-urls'`" />\r
724                         <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
725                         <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
726                         <parameter name="format" value="json"/>\r
727                         <parameter name="httpMethod" value="post"/>\r
728                         <parameter name="responsePrefix" value="provisionUrlRsp"/>\r
729                         <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
730                         <parameter name="trustStorePassword" value="adminadmin"/>\r
731                         <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
732                         <parameter name="keyStorePassword" value="adminadmin"/>\r
733                         <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
734                         <outcome value='failure'>\r
735                             <return status='failure'>\r
736                                 <parameter name='ack-final' value='Y'/>\r
737                                 <parameter name="error-code" value="500" />\r
738                                 <parameter name="error-message" value="Error executing provision url rest api" />\r
739                             </return>\r
740                         </outcome>\r
741                         <outcome value='success'></outcome>\r
742                     </execute>\r
743                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
744                         <parameter name="file" value="`'/opt/opendaylight/current/data/log/' + 'HUB-' + $prop.provision.hubSitename + '-SPOKE-' + $prop.provision.spokeSitename + '-provisionUrl'`"/>\r
745                         <parameter name="field1" value="__TIMESTAMP__"/>\r
746                         <parameter name="field2" value='`$provisionUrlRsp.success[0].url`'/>\r
747                     </record>\r
748                 </block>\r
749             </for>\r
750             <return status='success'>\r
751                 <parameter name="ack-final-indicator" value="Y" />\r
752                 <parameter name="error-code" value="200" />\r
753                 <parameter name="error-message" value="`$error-message`" />\r
754             </return>\r
755         </block>\r
756     </method>\r
757 </service-logic>\r