Chore: Add gerrit maven verify GHA workflow
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_contrail-route-topology-operation-assign.xml
1 <service-logic
2     xmlns='http://www.onap.org/sdnc/svclogic'
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}'>
4     <method rpc='contrail-route-topology-operation-assign' mode='sync'>
5         <block atomic="true">
6             <set>
7                 <parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
8                 <parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
9                 <parameter name='tmp.ar.contrail-applied-service-instance-id' value='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id`' />
10                 <parameter name='tmp.ar.allotted-resource-type' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`' />
11             </set>
12             <set>
13                 <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'
14  + $tmp.ar.allotted-resource-id
15  + '/allotted-resource-data/contrail-route-topology/'` " />
16             </set>
17             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
18                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
19                 <parameter name='contextPrefix' value='prop' />
20             </execute>
21             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
22                 <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>
23                 <parameter name="outputPath" value="tmp.ar-url"/>
24                 <parameter name="target" value="{allotted-resource-id}"/>
25                 <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
26             </execute>
27             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
28                 <parameter name="source" value="`$prop.restapi.network`"/>
29                 <parameter name="outputPath" value="tmp.ar-parentnetwork-url"/>
30                 <parameter name="target" value="{service-instance-id}"/>
31                 <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
32             </execute>
33             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
34                 <parameter name="source" value="`$prop.restapi.vnf`"/>
35                 <parameter name="outputPath" value="tmp.ar-contrailappliedsvc-url"/>
36                 <parameter name="target" value="{service-instance-id}"/>
37                 <parameter name="replacement" value="`$tmp.ar.contrail-applied-service-instance-id`"/>
38             </execute>
39             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
40                 <parameter name="source" value="`$prop.restapi.parent-provided-resource`"/>
41                 <parameter name="outputPath" value="tmp.parent-ar-url"/>
42                 <parameter name="target" value="{service-instance-id}"/>
43                 <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
44             </execute>
45             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
46                 <parameter name="source" value="`$tmp.parent-ar-url`"/>
47                 <parameter name="outputPath" value="tmp.parent-ar-url"/>
48                 <parameter name="target" value="{allotted-resource-id}"/>
49                 <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
50             </execute>
51             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
52                 <parameter name="source" value="`$prop.restapi.network-provided-resource`"/>
53                 <parameter name="outputPath" value="tmp.network-ar-url"/>
54                 <parameter name="target" value="{service-instance-id}"/>
55                 <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
56             </execute>
57             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
58                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
59                 <parameter name='restapiUser' value='`$prop.controller.user`' />
60                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
61                 <parameter name='format' value='json' />
62                 <parameter name='httpMethod' value='GET' />
63                 <parameter name="responsePrefix" value="mdsal-ar" />
64                 <outcome value='success'>
65                     <block atomic="true">
66                         <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>
67                             <outcome value='1'>
68                                 <return status='failure'>
69                                     <parameter name='ack-final' value='Y'/>
70                                     <parameter name="error-code" value="500" />
71                                     <parameter name="error-message" value="Error: Existing contrail route allotted resource" />
72                                 </return>
73                             </outcome>
74                         </switch>
75                     </block>
76                 </outcome>
77                 <outcome value='Other'>
78                     <block atomic="true"></block>
79                 </outcome>
80             </execute>
81             <set>
82                 <parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
83                 <parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />
84                 <parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />
85                 <parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />
86                 <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />
87                 <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />
88                 <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />
89                 <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />
90                 <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />
91             </set>
92             <set>
93                 <parameter name='ar-identifiers.consuming-service-instance-id' value="`$contrail-route-topology-operation-input.service-information.service-instance-id` " />
94                 <parameter name='ar-identifiers.parent-service-instance-id' value="`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />
95                 <parameter name='ar-identifiers.allotted-resource-type' value="`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type` " />
96                 <parameter name='ar-identifiers.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
97             </set>
98             <set>
99                 <parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.' 
100 value="`$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.`" />
101             </set>
102             <switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid'>
103                 <outcome value=''>
104                     <set>
105                         <parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.model-invariant-uuid' 
106 value="`$ar-model.invariant-uuid`" />
107                     </set>
108                 </outcome>
109             </switch>
110             <switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid'>
111                 <outcome value=''>
112                     <set>
113                         <parameter name='sar.allotted-resource-data.contrail-route-topology.onap-model-information.model-uuid' 
114 value="`$ar-model.uuid`" />
115                     </set>
116                 </outcome>
117             </switch>
118             <switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-version'>
119                 <outcome value=''>
120                     <set>
121                         <parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.model-version' 
122 value="`$ar-model.version`" />
123                     </set>
124                 </outcome>
125             </switch>
126             <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`'>
127                 <outcome value=''>
128                     <return status='failure'>
129                         <parameter name='ack-final' value='Y'/>
130                         <parameter name="error-code" value="500" />
131                         <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />
132                     </return>
133                 </outcome>
134                 <outcome value='Other'>
135                     <block>
136                         <switch test='`$service-data.networks.network_length`'>
137                             <outcome value=''>
138                                 <return status='failure'>
139                                     <parameter name='ack-final' value='Y'/>
140                                     <parameter name="error-code" value="500" />
141                                     <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />
142                                 </return>
143                             </outcome>
144                             <outcome value='Other'>
145                                 <block atomic="true">
146                                     <set>
147                                         <parameter name='source-network-found' value='false' />
148                                     </set>
149                                     <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
150                                         <block>
151                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
152                                                 <parameter name="logger" value="message-log"/>
153                                                 <parameter name="field1" value="__TIMESTAMP__"/>
154                                                 <parameter name="field2" value="tmp.ar-name="/>
155                                                 <parameter name="field3" value="`$tmp.ar-name`"/>
156                                                 <parameter name="field4" value="service-data-network-id" />
157                                                 <parameter name="field5" value="`$service-data.networks.network[$nidx].network-id`" />
158                                                 <parameter name="field6" value="contrail-route-input-network-id" />
159                                                 <parameter name="field7" value="`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`" />
160                                                 <parameter name="field8" value="`$nidx`" />
161                                             </record>
162                                             <switch test="`$service-data.networks.network[$nidx].network-id == $contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`">
163                                                 <outcome value='true'>
164                                                     <block>
165                                                         <set>
166                                                             <parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />
167                                                             <parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />
168                                                             <parameter name='source-network-found' value='true' />
169                                                         </set>
170                                                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
171                 resource="tenant" 
172                 key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND 
173                      cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND
174                      tenant.tenant-id = $tmp.ar.tenant-id"
175         pfx='aai.tenant' local-only='false' >
176                                                             <outcome value='success'>
177                                                                 <block atomic="true">
178                                                                     <set>
179                                                                         <parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />
180                                                                     </set>
181                                                                 </block>
182                                                             </outcome>
183                                                             <outcome value='not-found'>
184                                                                 <return status='failure'>
185                                                                     <parameter name='ack-final' value='Y'/>
186                                                                     <parameter name="error-code" value="500" />
187                                                                     <parameter name="error-message" value="Tenant not found in AAI" />
188                                                                 </return>
189                                                             </outcome>
190                                                             <outcome value='Other'>
191                                                                 <return status='failure'>
192                                                                     <parameter name='ack-final' value='Y'/>
193                                                                     <parameter name="error-code" value="500" />
194                                                                     <parameter name="error-message" value="Tenant not found in AAI" />
195                                                                 </return>
196                                                             </outcome>
197                                                         </get-resource>
198                                                     </block>
199                                                 </outcome>
200                                             </switch>
201                                         </block>
202                                     </for>
203                                     <switch test="`$source-network-found`">
204                                         <outcome value='false'>
205                                             <return status='failure'>
206                                                 <parameter name='ack-final' value='Y'/>
207                                                 <parameter name="error-code" value="500" />
208                                                 <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />
209                                             </return>
210                                         </outcome>
211                                     </switch>
212                                 </block>
213                             </outcome>
214                         </switch>
215                     </block>
216                 </outcome>
217             </switch>
218             <switch test='`$ar-model.ecomp-generated-naming`'>
219                 <outcome value='Y'>
220                     <block atomic="true">
221                         <switch test='`$ar-model.naming-policy`'>
222                             <outcome value='oam_network_policy'>
223                                 <block atomic='true'>
224                                     <set>
225                                         <parameter name='tmp.ar-name' value='$TenantName_$CloudRegionID_$TenantNetworkRole_$LandingNetworkRole_policy_' />
226                                     </set>
227                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
228                                         <parameter name="source" value="`$tmp.ar-name`"/>
229                                         <parameter name="outputPath" value="tmp.ar-name"/>
230                                         <parameter name="target" value="$TenantName"/>
231                                         <parameter name="replacement" value="`$tmp.ar.tenant-name`"/>
232                                     </execute>
233                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
234                                         <parameter name="source" value="`$tmp.ar-name`"/>
235                                         <parameter name="outputPath" value="tmp.ar-name"/>
236                                         <parameter name="target" value="$CloudRegionID"/>
237                                         <parameter name="replacement" value="`$tmp.ar.cloud-region-id`"/>
238                                     </execute>
239                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
240                                         <parameter name="source" value="`$tmp.ar-name`"/>
241                                         <parameter name="outputPath" value="tmp.ar-name"/>
242                                         <parameter name="target" value="$TenantNetworkRole"/>
243                                         <parameter name="replacement" value="`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role`"/>
244                                     </execute>
245                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
246                                         <parameter name="source" value="`$tmp.ar-name`"/>
247                                         <parameter name="outputPath" value="tmp.ar-name"/>
248                                         <parameter name="target" value="$LandingNetworkRole"/>
249                                         <parameter name="replacement" value="`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-role`"/>
250                                     </execute>
251                                     <set>
252                                         <parameter name='generate-unique-name-input.index-table-name' value='CONTRAIL_ROUTE_NAME_INDEX' />
253                                         <parameter name='generate-unique-name-input.index-table-prefix-column' value='contrail_route_name_prefix' />
254                                         <parameter name='generate-unique-name-input.name-table-type' value='CONTRAIL_ROUTE_INSTANCE' />
255                                         <parameter name='generate-unique-name-input.prefix' value="`$tmp.ar-name`" />
256                                         <parameter name='generate-unique-name-input.index-length' value='2' />
257                                     </set>
258                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
259                                         <parameter name="logger" value="message-log"/>
260                                         <parameter name="field1" value="__TIMESTAMP__"/>
261                                         <parameter name="field2" value="tmp.ar-name="/>
262                                         <parameter name="field3" value="`$tmp.ar-name`"/>
263                                         <parameter name="field4" value="generate-unique-name-input.prefix" />
264                                         <parameter name="field5" value="`$generate-unique-name-input.prefix`" />
265                                     </record>
266                                     <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
267                                         <outcome value='failure'>
268                                             <return status='failure'>
269                                                 <parameter name='ack-final' value='Y'/>
270                                                 <parameter name="error-code" value="500" />
271                                                 <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
272                                             </return>
273                                         </outcome>
274                                         <outcome value='success'>
275                                             <set>
276                                                 <parameter name='tmp.ar-name' value='`$generate-unique-name-output.generated-name`' />
277                                             </set>
278                                         </outcome>
279                                     </call>
280                                     <set>
281                                         <parameter name='ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />
282                                     </set>
283                                 </block>
284                             </outcome>
285                             <outcome value='Other'>
286                                 <block atomic='true'>
287                                     <set>
288                                         <parameter name='tmp.ar-name' value='$TenantName_$CloudRegionID_$TenantNetworkRole_$LandingNetworkRole_policy_' />
289                                     </set>
290                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
291                                         <parameter name="source" value="`$tmp.ar-name`"/>
292                                         <parameter name="outputPath" value="tmp.ar-name"/>
293                                         <parameter name="target" value="$TenantName"/>
294                                         <parameter name="replacement" value="`$tmp.ar.tenant-name`"/>
295                                     </execute>
296                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
297                                         <parameter name="source" value="`$tmp.ar-name`"/>
298                                         <parameter name="outputPath" value="tmp.ar-name"/>
299                                         <parameter name="target" value="$CloudRegionID"/>
300                                         <parameter name="replacement" value="`$tmp.ar.cloud-region-id`"/>
301                                     </execute>
302                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
303                                         <parameter name="source" value="`$tmp.ar-name`"/>
304                                         <parameter name="outputPath" value="tmp.ar-name"/>
305                                         <parameter name="target" value="$TenantNetworkRole"/>
306                                         <parameter name="replacement" value="`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role`"/>
307                                     </execute>
308                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
309                                         <parameter name="source" value="`$tmp.ar-name`"/>
310                                         <parameter name="outputPath" value="tmp.ar-name"/>
311                                         <parameter name="target" value="$LandingNetworkRole"/>
312                                         <parameter name="replacement" value="`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-role`"/>
313                                     </execute>
314                                     <set>
315                                         <parameter name='generate-unique-name-input.index-table-name' value='CONTRAIL_ROUTE_NAME_INDEX' />
316                                         <parameter name='generate-unique-name-input.index-table-prefix-column' value='contrail_route_name_prefix' />
317                                         <parameter name='generate-unique-name-input.name-table-type' value='CONTRAIL_ROUTE_INSTANCE' />
318                                         <parameter name='generate-unique-name-input.prefix' value="`$tmp.ar-name`" />
319                                         <parameter name='generate-unique-name-input.index-length' value='2' />
320                                     </set>
321                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
322                                         <parameter name="logger" value="message-log"/>
323                                         <parameter name="field1" value="__TIMESTAMP__"/>
324                                         <parameter name="field2" value="tmp.ar-name="/>
325                                         <parameter name="field3" value="`$tmp.ar-name`"/>
326                                         <parameter name="field4" value="generate-unique-name-input.prefix" />
327                                         <parameter name="field5" value="`$generate-unique-name-input.prefix`" />
328                                     </record>
329                                     <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
330                                         <outcome value='failure'>
331                                             <return status='failure'>
332                                                 <parameter name='ack-final' value='Y'/>
333                                                 <parameter name="error-code" value="500" />
334                                                 <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
335                                             </return>
336                                         </outcome>
337                                         <outcome value='success'>
338                                             <set>
339                                                 <parameter name='tmp.ar-name' value='`$generate-unique-name-output.generated-name`' />
340                                             </set>
341                                         </outcome>
342                                     </call>
343                                     <set>
344                                         <parameter name='ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />
345                                     </set>
346                                 </block>
347                             </outcome>
348                         </switch>
349                     </block>
350                 </outcome>
351                 <outcome value='Other'>
352                     <return status='failure'>
353                         <parameter name='ack-final' value='Y'/>
354                         <parameter name="error-code" value="500" />
355                         <parameter name="error-message" value="Error in allotted-resource-model data.  Ecomp-generated-naming should be true" />
356                     </return>
357                 </outcome>
358             </switch>
359             <set>
360                 <parameter name='ar.allotted-resource-data.contrail-route-topology.allotted-resource-identifiers.' 
361 value="`$ar-identifiers.`" />
362             </set>
363             <set>
364                 <parameter name='ar-assignments.source-network.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.` " />
365                 <parameter name='ar-assignments.dest-network.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.` " />
366                 <parameter name='ar-assignments.contrail-applied-service.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.` " />
367             </set>
368             <set>
369                 <parameter name='tmp.fq-name' value='$defaultDomain.$defaultProject.$sdncNetworkPolicy' />
370             </set>
371             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
372                 <parameter name="source" value="`$tmp.fq-name`"/>
373                 <parameter name="outputPath" value="tmp.fq-name"/>
374                 <parameter name="target" value="$defaultDomain"/>
375                 <parameter name="replacement" value="default-domain"/>
376             </execute>
377             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
378                 <parameter name="source" value="`$tmp.fq-name`"/>
379                 <parameter name="outputPath" value="tmp.fq-name"/>
380                 <parameter name="target" value="$defaultProject"/>
381                 <parameter name="replacement" value="`$tmp.ar.tenant-name`"/>
382             </execute>
383             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
384                 <parameter name="source" value="`$tmp.fq-name`"/>
385                 <parameter name="outputPath" value="tmp.fq-name"/>
386                 <parameter name="target" value="$sdncNetworkPolicy"/>
387                 <parameter name="replacement" value="`$tmp.ar-name`"/>
388             </execute>
389             <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-id`'>
390                 <outcome value=''>
391                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
392                         <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-parentnetwork-url`' />
393                         <parameter name='restapiUser' value='`$prop.controller.user`' />
394                         <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
395                         <parameter name='format' value='json' />
396                         <parameter name='httpMethod' value='GET' />
397                         <parameter name="responsePrefix" value="parent-net" />
398                         <outcome value='success'>
399                             <block atomic="true">
400                                 <switch test='`$parent-net.networks.network_length`'>
401                                     <outcome value='1'>
402                                         <set>
403                                             <parameter name='ar-assignments.dest-network.network-id' value="`$parent-net.networks.network[0].network-id` " />
404                                         </set>
405                                     </outcome>
406                                     <outcome value='Other'>
407                                         <return status='failure'>
408                                             <parameter name='ack-final' value='Y'/>
409                                             <parameter name="error-code" value="500" />
410                                             <parameter name="error-message" value="Error: Network id not found.  Parent Service should only have one network" />
411                                         </return>
412                                     </outcome>
413                                 </switch>
414                             </block>
415                         </outcome>
416                         <outcome value='Other'>
417                             <block atomic="true">
418                                 <return status='failure'>
419                                     <parameter name='ack-final' value='Y'/>
420                                     <parameter name="error-code" value="500" />
421                                     <parameter name="error-message" value="Error: No existing parent netorks" />
422                                 </return>
423                             </block>
424                         </outcome>
425                     </execute>
426                 </outcome>
427                 <outcome value='Other'>
428                     <set>
429                         <parameter name='ar-assignments.dest-network.network-id' value="`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-id` " />
430                     </set>
431                 </outcome>
432             </switch>
433             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
434                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-contrailappliedsvc-url`' />
435                 <parameter name='restapiUser' value='`$prop.controller.user`' />
436                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
437                 <parameter name='format' value='json' />
438                 <parameter name='httpMethod' value='GET' />
439                 <parameter name="responsePrefix" value="vnf" />
440                 <outcome value='success'>
441                     <block atomic="true">
442                         <switch test='`$vnf.vnfs.vnf_length`'>
443                             <outcome value='1'>
444                                 <set>
445                                     <parameter name='ar-assignments.contrail-applied-service.vnf-id' value="`$vnf.vnfs.vnf[0].vnf-id` " />
446                                 </set>
447                             </outcome>
448                             <outcome value='Other'>
449                                 <return status='failure'>
450                                     <parameter name='ack-final' value='Y'/>
451                                     <parameter name="error-code" value="500" />
452                                     <parameter name="error-message" value="Error: vnf id not found.  Contrail applied service should only have one vnf" />
453                                 </return>
454                             </outcome>
455                         </switch>
456                     </block>
457                 </outcome>
458                 <outcome value='Other'>
459                     <block atomic="true">
460                         <return status='failure'>
461                             <parameter name='ack-final' value='Y'/>
462                             <parameter name="error-code" value="500" />
463                             <parameter name="error-message" value="Error: No existing contrail applied service vnfs" />
464                         </return>
465                     </block>
466                 </outcome>
467             </execute>
468             <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn`'>
469                 <outcome value=''>
470                     <block atomic="true">
471                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
472                 resource="generic-vnf" 
473                 key="generic-vnf.vnf-id = $ar-assignments.contrail-applied-service.vnf-id"
474         pfx='aai.vnf' local-only='false' >
475                             <outcome value='not-found'>
476                                 <return status='failure'>
477                                     <parameter name='ack-final' value='Y'/>
478                                     <parameter name="error-code" value="500" />
479                                     <parameter name="error-message" value="Vnf not found in AAI" />
480                                 </return>
481                             </outcome>
482                             <outcome value='failure'>
483                                 <return status='failure'>
484                                     <parameter name='ack-final' value='Y'/>
485                                     <parameter name="error-code" value="500" />
486                                     <parameter name="error-message" value="Error retrieving vnf from AAI" />
487                                 </return>
488                             </outcome>
489                         </get-resource>
490                         <switch test='`$aai.vnf.vf-modules.vf-module_length`'>
491                             <outcome value=''>
492                                 <return status='failure'>
493                                     <parameter name='ack-final' value='Y'/>
494                                     <parameter name="error-code" value="500" />
495                                     <parameter name="error-message" value="VF Module not found in AAI" />
496                                 </return>
497                             </outcome>
498                             <outcome value='Other'>
499                                 <for index='idx' start='0' end='`$aai.vnf.vf-modules.vf-module_length`' >
500                                     <switch test='`$aai.vnf.vf-modules.vf-module[$idx].contrail-service-instance-fqdn`'>
501                                         <outcome value=''>
502                                             <block></block>
503                                         </outcome>
504                                         <outcome value='Other'>
505                                             <block>
506                                                 <set>
507                                                     <parameter name='ar-assignments.contrail-applied-service.contrail-fqdn' value="`$aai.vnf.vf-modules.vf-module[$idx].contrail-service-instance-fqdn` " />
508                                                 </set>
509                                                 <break/>
510                                             </block>
511                                         </outcome>
512                                     </switch>
513                                 </for>
514                             </outcome>
515                         </switch>
516                     </block>
517                 </outcome>
518                 <outcome value='Other'>
519                     <set>
520                         <parameter name='ar-assignments.contrail-applied-service.contrail-fqdn' value="`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn` " />
521                     </set>
522                 </outcome>
523             </switch>
524             <switch test='`$ar-assignments.contrail-applied-service.contrail-fqdn`'>
525                 <outcome value=''>
526                     <return status='failure'>
527                         <parameter name='ack-final' value='Y'/>
528                         <parameter name="error-code" value="500" />
529                         <parameter name="error-message" value="Error: No vf-module with contrail-service-instance-fqdn found in AAI" />
530                     </return>
531                 </outcome>
532             </switch>
533             <set>
534                 <parameter name='ar-assignments.fq-name' value="`$tmp.fq-name` " />
535             </set>
536             <set>
537                 <parameter name='ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.' 
538 value="`$ar-assignments.`" />
539             </set>
540             <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>
541                 <outcome value=''>
542                     <set>
543                         <parameter name='tmp.cidx' value="`0`" />
544                         <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value="1" />
545                     </set>
546                 </outcome>
547                 <outcome value='Other'>
548                     <block atomic="true">
549                         <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >
550                             <switch test="`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">
551                                 <outcome value='true'>
552                                     <block atomic="true">
553                                         <set>
554                                             <parameter name='tmp.cidx' value='`$cidx`' />
555                                             <parameter name='ctx.consumed-ar.' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].`' />
556                                             <parameter name='tmp.found-cidx' value='true' />
557                                         </set>
558                                         <break/>
559                                     </block>
560                                 </outcome>
561                             </switch>
562                         </for>
563                         <switch test='`$tmp.found-cidx`'>
564                             <outcome value='false'>
565                                 <block atomic="true">
566                                     <set>
567                                         <parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />
568                                     </set>
569                                 </block>
570                             </outcome>
571                         </switch>
572                     </block>
573                 </outcome>
574             </switch>
575             <set>
576                 <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
577                 <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value="`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type` " />
578                 <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value="`$tmp.ar.self-link` " />
579                 <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />
580             </set>
581             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >
582                 <parameter name="outputPath" value="tmp.current-time" />
583             </execute>
584             <set>
585                 <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingCreate' />
586                 <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />
587                 <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />
588                 <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />
589                 <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
590             </set>
591             <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
592                 resource="allotted-resource" 
593                 key="customer.global-customer-id = $service-data.service-information.global-customer-id AND
594                         service-subscription.service-type = $service-data.service-information.subscription-service-type AND
595                         service-instance.service-instance-id = $service-data.service-information.service-instance-id AND
596                         allotted-resource.id = $tmp.ar.allotted-resource-id"
597         pfx='pfx' local-only='false' force='false'>
598                 <parameter name="description" value="`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`" />
599                 <parameter name="selflink" value="`$tmp.ar.self-link`" />
600                 <parameter name="model-invariant-id" value="`$ar-model.invariant-uuid`" />
601                 <parameter name="model-version-id" value="`$ar-model.uuid`" />
602                 <parameter name="operational-status" value="null" />
603                 <outcome value='failure'>
604                     <return status='failure'>
605                         <parameter name='ack-final' value='Y'/>
606                         <parameter name="error-code" value="500" />
607                         <parameter name="error-message" value="AAI failed" />
608                     </return>
609                 </outcome>
610                 <outcome value='not-found'>
611                     <return status='failure'>
612                         <parameter name='ack-final' value='Y'/>
613                         <parameter name="error-code" value="500" />
614                         <parameter name="error-message" value="AAI failed" />
615                     </return>
616                 </outcome>
617             </update>
618             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
619                 <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />
620                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />
621                 <parameter name='restapiUser' value='`$prop.controller.user`' />
622                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
623                 <parameter name='format' value='json' />
624                 <parameter name='httpMethod' value='PUT' />
625                 <parameter name="responsePrefix" value="parent" />
626                 <outcome value='success'>
627                     <block></block>
628                 </outcome>
629                 <outcome value='failure'>
630                     <return status='failure'>
631                         <parameter name='ack-final' value='Y'/>
632                         <parameter name="error-code" value="500" />
633                         <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
634                     </return>
635                 </outcome>
636                 <outcome value='not-found'>
637                     <return status='failure'>
638                         <parameter name='ack-final' value='Y'/>
639                         <parameter name="error-code" value="500" />
640                         <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
641                     </return>
642                 </outcome>
643             </execute>
644             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
645                 <parameter name="source" value="`$tmp.network-ar-url`"/>
646                 <parameter name="outputPath" value="tmp.network-ar-url"/>
647                 <parameter name="target" value="{network-id}"/>
648                 <parameter name="replacement" value="`$ar-assignments.dest-network.network-id`"/>
649             </execute>
650             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
651                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
652                 <parameter name='restapiUser' value='`$prop.controller.user`' />
653                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
654                 <parameter name='format' value='json' />
655                 <parameter name='httpMethod' value='GET' />
656                 <parameter name="responsePrefix" value="net-ar" />
657                 <outcome value='success'>
658                     <block atomic="true">
659                         <set>
660                             <parameter name='tmp.found-nidx' value='false' />
661                         </set>
662                         <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>
663                             <outcome value=''>
664                                 <block atomic="true">
665                                     <set>
666                                         <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value="1" />
667                                         <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[0]' value="`$tmp.ar.allotted-resource-id`" />
668                                     </set>
669                                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
670                                         <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
671                                         <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
672                                         <parameter name='restapiUser' value='`$prop.controller.user`' />
673                                         <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
674                                         <parameter name='format' value='json' />
675                                         <parameter name='httpMethod' value='PUT' />
676                                         <parameter name="responsePrefix" value="p-network-ar" />
677                                         <outcome value='success'>
678                                             <block></block>
679                                         </outcome>
680                                         <outcome value='failure'>
681                                             <block></block>
682                                         </outcome>
683                                         <outcome value='not-found'>
684                                             <block></block>
685                                         </outcome>
686                                     </execute>
687                                 </block>
688                             </outcome>
689                             <outcome value='Other'>
690                                 <block atomic="true">
691                                     <for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >
692                                         <switch test="`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`">
693                                             <outcome value='true'>
694                                                 <block atomic="true">
695                                                     <set>
696                                                         <parameter name='tmp.found-nidx' value='true' />
697                                                     </set>
698                                                     <break/>
699                                                 </block>
700                                             </outcome>
701                                         </switch>
702                                     </for>
703                                     <switch test='`$tmp.found-nidx`'>
704                                         <outcome value='false'>
705                                             <block atomic="true">
706                                                 <set>
707                                                     <parameter name='tmp.nidx' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' />
708                                                 </set>
709                                                 <set>
710                                                     <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length + 1`' />
711                                                     <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.nidx]' value="`$tmp.ar.allotted-resource-id`" />
712                                                 </set>
713                                                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
714                                                     <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
715                                                     <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
716                                                     <parameter name='restapiUser' value='`$prop.controller.user`' />
717                                                     <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
718                                                     <parameter name='format' value='json' />
719                                                     <parameter name='httpMethod' value='PUT' />
720                                                     <parameter name="responsePrefix" value="p-network-ar" />
721                                                     <outcome value='success'>
722                                                         <block></block>
723                                                     </outcome>
724                                                     <outcome value='failure'>
725                                                         <block></block>
726                                                     </outcome>
727                                                     <outcome value='not-found'>
728                                                         <block></block>
729                                                     </outcome>
730                                                 </execute>
731                                             </block>
732                                         </outcome>
733                                     </switch>
734                                 </block>
735                             </outcome>
736                         </switch>
737                     </block>
738                 </outcome>
739                 <outcome value='not-found'>
740                     <block atomic="true">
741                         <set>
742                             <parameter name='tmp.found-nidx' value='false' />
743                         </set>
744                         <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>
745                             <outcome value=''>
746                                 <block atomic="true">
747                                     <set>
748                                         <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value="1" />
749                                         <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[0]' value="`$tmp.ar.allotted-resource-id`" />
750                                     </set>
751                                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
752                                         <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
753                                         <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
754                                         <parameter name='restapiUser' value='`$prop.controller.user`' />
755                                         <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
756                                         <parameter name='format' value='json' />
757                                         <parameter name='httpMethod' value='PUT' />
758                                         <parameter name="responsePrefix" value="p-network-ar" />
759                                         <outcome value='success'>
760                                             <block></block>
761                                         </outcome>
762                                         <outcome value='failure'>
763                                             <block></block>
764                                         </outcome>
765                                         <outcome value='not-found'>
766                                             <block></block>
767                                         </outcome>
768                                     </execute>
769                                 </block>
770                             </outcome>
771                             <outcome value='Other'>
772                                 <block atomic="true">
773                                     <for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >
774                                         <switch test="`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`">
775                                             <outcome value='true'>
776                                                 <block atomic="true">
777                                                     <set>
778                                                         <parameter name='tmp.found-nidx' value='true' />
779                                                     </set>
780                                                     <break/>
781                                                 </block>
782                                             </outcome>
783                                         </switch>
784                                     </for>
785                                     <switch test='`$tmp.found-nidx`'>
786                                         <outcome value='false'>
787                                             <block atomic="true">
788                                                 <set>
789                                                     <parameter name='tmp.nidx' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' />
790                                                 </set>
791                                                 <set>
792                                                     <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length + 1`' />
793                                                     <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.nidx]' value="`$tmp.ar.allotted-resource-id`" />
794                                                 </set>
795                                                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
796                                                     <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
797                                                     <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
798                                                     <parameter name='restapiUser' value='`$prop.controller.user`' />
799                                                     <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
800                                                     <parameter name='format' value='json' />
801                                                     <parameter name='httpMethod' value='PUT' />
802                                                     <parameter name="responsePrefix" value="p-network-ar" />
803                                                     <outcome value='success'>
804                                                         <block></block>
805                                                     </outcome>
806                                                     <outcome value='failure'>
807                                                         <block></block>
808                                                     </outcome>
809                                                     <outcome value='not-found'>
810                                                         <block></block>
811                                                     </outcome>
812                                                 </execute>
813                                             </block>
814                                         </outcome>
815                                     </switch>
816                                 </block>
817                             </outcome>
818                         </switch>
819                     </block>
820                 </outcome>
821                 <outcome value='failure'>
822                     <block atomic="true">
823                         <set>
824                             <parameter name='tmp.found-nidx' value='false' />
825                         </set>
826                         <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>
827                             <outcome value=''>
828                                 <block atomic="true">
829                                     <set>
830                                         <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value="1" />
831                                         <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[0]' value="`$tmp.ar.allotted-resource-id`" />
832                                     </set>
833                                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
834                                         <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
835                                         <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
836                                         <parameter name='restapiUser' value='`$prop.controller.user`' />
837                                         <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
838                                         <parameter name='format' value='json' />
839                                         <parameter name='httpMethod' value='PUT' />
840                                         <parameter name="responsePrefix" value="p-network-ar" />
841                                         <outcome value='success'>
842                                             <block></block>
843                                         </outcome>
844                                         <outcome value='failure'>
845                                             <block></block>
846                                         </outcome>
847                                         <outcome value='not-found'>
848                                             <block></block>
849                                         </outcome>
850                                     </execute>
851                                 </block>
852                             </outcome>
853                             <outcome value='Other'>
854                                 <block atomic="true">
855                                     <for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >
856                                         <switch test="`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`">
857                                             <outcome value='true'>
858                                                 <block atomic="true">
859                                                     <set>
860                                                         <parameter name='tmp.found-nidx' value='true' />
861                                                     </set>
862                                                     <break/>
863                                                 </block>
864                                             </outcome>
865                                         </switch>
866                                     </for>
867                                     <switch test='`$tmp.found-nidx`'>
868                                         <outcome value='false'>
869                                             <block atomic="true">
870                                                 <set>
871                                                     <parameter name='tmp.nidx' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' />
872                                                 </set>
873                                                 <set>
874                                                     <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length + 1`' />
875                                                     <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.nidx]' value="`$tmp.ar.allotted-resource-id`" />
876                                                 </set>
877                                                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
878                                                     <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
879                                                     <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
880                                                     <parameter name='restapiUser' value='`$prop.controller.user`' />
881                                                     <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
882                                                     <parameter name='format' value='json' />
883                                                     <parameter name='httpMethod' value='PUT' />
884                                                     <parameter name="responsePrefix" value="p-network-ar" />
885                                                     <outcome value='success'>
886                                                         <block></block>
887                                                     </outcome>
888                                                     <outcome value='failure'>
889                                                         <block></block>
890                                                     </outcome>
891                                                     <outcome value='not-found'>
892                                                         <block></block>
893                                                     </outcome>
894                                                 </execute>
895                                             </block>
896                                         </outcome>
897                                     </switch>
898                                 </block>
899                             </outcome>
900                         </switch>
901                     </block>
902                 </outcome>
903             </execute>
904             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
905                 <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />
906                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
907                 <parameter name='restapiUser' value='`$prop.controller.user`' />
908                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
909                 <parameter name='format' value='json' />
910                 <parameter name='httpMethod' value='PUT' />
911                 <parameter name="responsePrefix" value="mdsal-ar" />
912                 <outcome value='failure'>
913                     <block>
914                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
915                             <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />
916                             <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />
917                             <parameter name='restapiUser' value='`$prop.controller.user`' />
918                             <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
919                             <parameter name='format' value='json' />
920                             <parameter name='httpMethod' value='DELETE' />
921                             <parameter name="responsePrefix" value="parent" />
922                             <outcome value='success'>
923                                 <block></block>
924                             </outcome>
925                             <outcome value='failure'>
926                                 <block></block>
927                             </outcome>
928                             <outcome value='not-found'>
929                                 <block></block>
930                             </outcome>
931                         </execute>
932                         <return status='failure'>
933                             <parameter name='ack-final' value='Y'/>
934                             <parameter name="error-code" value="500" />
935                             <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource.  Parent provided resource rolled back" />
936                         </return>
937                     </block>
938                 </outcome>
939                 <outcome value='not-found'>
940                     <block>
941                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
942                             <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />
943                             <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />
944                             <parameter name='restapiUser' value='`$prop.controller.user`' />
945                             <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
946                             <parameter name='format' value='json' />
947                             <parameter name='httpMethod' value='DELETE' />
948                             <parameter name="responsePrefix" value="parent" />
949                             <outcome value='success'>
950                                 <block></block>
951                             </outcome>
952                             <outcome value='failure'>
953                                 <block></block>
954                             </outcome>
955                             <outcome value='not-found'>
956                                 <block></block>
957                             </outcome>
958                         </execute>
959                         <return status='failure'>
960                             <parameter name='ack-final' value='Y'/>
961                             <parameter name="error-code" value="500" />
962                             <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource.  Parent provided resource rolled back" />
963                         </return>
964                     </block>
965                 </outcome>
966             </execute>
967             <set>
968                 <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
969                 <parameter name='contrail-route-object-path' value="`$tmp.ar.self-link`"/>
970                 <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
971  + $contrail-route-topology-operation-input.service-information.service-instance-id
972  + '/service-data/service-topology/'`"/>
973             </set>
974             <return status='success'>
975                 <parameter name="ack-final-indicator" value="Y" />
976                 <parameter name="error-code" value="200" />
977                 <parameter name="error-message" value="`$error-message`" />
978             </return>
979         </block>
980     </method>
981 </service-logic>