1433b7b5c49809c65695bcd98f6bb31ddea8aff2
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_vnf-topology-operation-assign.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='vnf-topology-operation-assign' mode='sync'>\r
5         <block atomic="true">\r
6             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
7                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
8                 <parameter name='contextPrefix' value='prop' />\r
9             </execute>\r
10             <switch test='`$vnf-topology-operation-input.vnf-request-input.cloud-owner`'>\r
11                 <outcome value=''>\r
12                     <block></block>\r
13                 </outcome>\r
14                 <outcome value='Other'>\r
15                     <set>\r
16                         <parameter name='prop.cloud-region.cloud-owner' value='`$vnf-topology-operation-input.vnf-request-input.cloud-owner`' />\r
17                     </set>\r
18                 </outcome>\r
19             </switch>\r
20             <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
21                 <outcome value='CreateVnfInstance'>\r
22                     <block></block>\r
23                 </outcome>\r
24                 <outcome value='Other'>\r
25                     <return status='failure'>\r
26                         <parameter name='ack-final' value='Y'/>\r
27                         <parameter name="error-code" value="500" />\r
28                         <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateVnfInstance'" />\r
29                     </return>\r
30                 </outcome>\r
31             </switch>\r
32             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
33   key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
34   pfx='db.vf-model'>\r
35                 <outcome value='failure'>\r
36                     <return status='failure'>\r
37                         <parameter name='ack-final' value='Y'/>\r
38                         <parameter name="error-code" value="500" />\r
39                         <parameter name="error-message" value="Error reading VF_MODEL table" />\r
40                     </return>\r
41                 </outcome>\r
42                 <outcome value='not-found'>\r
43                     <return status='failure'>\r
44                         <parameter name='ack-final' value='Y'/>\r
45                         <parameter name="error-code" value="500" />\r
46                         <parameter name="error-message" value="`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`" />\r
47                     </return>\r
48                 </outcome>\r
49             </get-resource>\r
50             <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-forking-logic' mode='sync' ></call>\r
51             <switch test="`$ss.self-serve-flag`">\r
52                 <outcome value='true'>\r
53                     <block atomic="true">\r
54                         <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-assign' mode='sync' >\r
55                             <outcome value='failure'>\r
56                                 <return status='failure'>\r
57                                     <parameter name='ack-final' value='Y'/>\r
58                                     <parameter name="error-code" value="500" />\r
59                                     <parameter name="error-message" value="`'Failed to create self-serve assignment for vnf with vnf-id=' + $vnf-topology-operation-input.vnf-information.vnf-id + ' with error: ' + $error-message`" />\r
60                                 </return>\r
61                             </outcome>\r
62                         </call>\r
63                         <set>\r
64                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\r
65                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
66                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
67                         </set>\r
68                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
69                             <parameter name='filename' value='/var/tmp/ss-vnfend.log' />\r
70                         </execute>\r
71                         <return status='success'>\r
72                             <parameter name="ack-final-indicator" value="Y" />\r
73                             <parameter name="error-code" value="200" />\r
74                             <parameter name="error-message" value="`$error-message`" />\r
75                         </return>\r
76                     </block>\r
77                 </outcome>\r
78                 <outcome value='false'>\r
79                     <block atomic="true">\r
80                         <switch test='`$service-data.vnfs.vnf_length`'>\r
81                             <outcome value=''>\r
82                                 <set>\r
83                                     <parameter name='vnf-index' value='0' />\r
84                                 </set>\r
85                             </outcome>\r
86                             <outcome value='Other'>\r
87                                 <block>\r
88                                     <set>\r
89                                         <parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\r
90                                     </set>\r
91                                     <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
92                                         <switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\r
93                                             <outcome value='true'>\r
94                                                 <return status='failure'>\r
95                                                     <parameter name='ack-final' value='Y'/>\r
96                                                     <parameter name="error-code" value="500" />\r
97                                                     <parameter name="error-message" value="`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id\r
98       + ' already exists'`" />\r
99                                                 </return>\r
100                                             </outcome>\r
101                                         </switch>\r
102                                     </for>\r
103                                 </block>\r
104                             </outcome>\r
105                         </switch>\r
106                         <set>\r
107                             <parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\r
108                         </set>\r
109                         <set>\r
110                             <parameter name='tmp.vnf-network-collection_length' value='0' />\r
111                         </set>\r
112                         <for silentFailure='true' index='inst-group-index' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids_length`' >\r
113                             <block atomic="true">\r
114                                 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
115                 resource="instance-group" \r
116                 key="instance-group.id = $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id"\r
117         pfx='aai.instance-group' local-only='false' >\r
118                                     <outcome value='not-found'>\r
119                                         <return status='failure'>\r
120                                             <parameter name='ack-final' value='Y'/>\r
121                                             <parameter name="error-code" value="500" />\r
122                                             <parameter name="error-message" value="`'Cannot find instance group id ' +\r
123       $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\r
124       + ' in AAI'`" />\r
125                                         </return>\r
126                                     </outcome>\r
127                                     <outcome value='failure'>\r
128                                         <return status='failure'>\r
129                                             <parameter name='ack-final' value='Y'/>\r
130                                             <parameter name="error-code" value="500" />\r
131                                             <parameter name="error-message" value="Error retrieving instance-group from AAI" />\r
132                                         </return>\r
133                                     </outcome>\r
134                                 </get-resource>\r
135                                 <for index='rel-index' start='0' end='`$aai.instance-group.relationship-list.relationship_length`' >\r
136                                     <switch test='`$aai.instance-group.relationship-list.relationship[$rel-index].related-to`'>\r
137                                         <outcome value='collection'>\r
138                                             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
139                 resource="collection" \r
140                 key="collection.collection-id = $aai.instance-group.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value"\r
141         pfx='aai.collection' local-only='false' >\r
142                                                 <outcome value='not-found'>\r
143                                                     <return status='failure'>\r
144                                                         <parameter name='ack-final' value='Y'/>\r
145                                                         <parameter name="error-code" value="500" />\r
146                                                         <parameter name="error-message" value="`'Cannot find collection ' +\r
147       $aai.instance-group.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value\r
148       + ' in AAI'`" />\r
149                                                     </return>\r
150                                                 </outcome>\r
151                                                 <outcome value='failure'>\r
152                                                     <return status='failure'>\r
153                                                         <parameter name='ack-final' value='Y'/>\r
154                                                         <parameter name="error-code" value="500" />\r
155                                                         <parameter name="error-message" value="System error retrieving collection from AAI" />\r
156                                                     </return>\r
157                                                 </outcome>\r
158                                                 <outcome value='success'>\r
159                                                     <block atomic="true">\r
160                                                         <set>\r
161                                                             <parameter name='found-network-instance-group' value='false' />\r
162                                                         </set>\r
163                                                         <for silentFailure='true' index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\r
164                                                             <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\r
165   == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\r
166                                                                 <outcome value='true'>\r
167                                                                     <block>\r
168                                                                         <set>\r
169                                                                             <parameter name='found-network-instance-group' value='true' />\r
170                                                                         </set>\r
171                                                                         <break/>\r
172                                                                     </block>\r
173                                                                 </outcome>\r
174                                                             </switch>\r
175                                                         </for>\r
176                                                         <switch test='`$found-network-instance-group`'>\r
177                                                             <outcome value='false'>\r
178                                                                 <return status='failure'>\r
179                                                                     <parameter name='ack-final' value='Y'/>\r
180                                                                     <parameter name="error-code" value="500" />\r
181                                                                     <parameter name="error-message" value="`'Could not find network instance group ' +\r
182       $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\r
183       + ' in MD-SAL'`" />\r
184                                                                 </return>\r
185                                                             </outcome>\r
186                                                         </switch>\r
187                                                         <set>\r
188                                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-instance-group-function'\r
189   value='`$aai.instance-group.instance-group-function`' />\r
190                                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-instance-group-id'\r
191   value='`$aai.instance-group.id`' />\r
192                                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-collection-service-instance-id'\r
193   value='`$service-data.network-instance-groups.network-instance-group[$nig-index].service-instance-id`' />\r
194                                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-collection-customization-uuid'\r
195   value='`$aai.collection.collection-customization-id`' />\r
196                                                         </set>\r
197                                                         <set>\r
198                                                             <parameter name='tmp.vnf-network-collection_length' value='`$tmp.vnf-network-collection_length + 1`' />\r
199                                                         </set>\r
200                                                     </block>\r
201                                                 </outcome>\r
202                                             </get-resource>\r
203                                         </outcome>\r
204                                     </switch>\r
205                                 </for>\r
206                             </block>\r
207                         </for>\r
208                         <set>\r
209                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection_length'\r
210   value='`$tmp.vnf-network-collection_length`' />\r
211                         </set>\r
212                         <set>\r
213                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'\r
214  value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
215                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'\r
216  value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />\r
217                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'\r
218  value='`$db.vf-model.nf-type`' />\r
219                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'\r
220  value='`$db.vf-model.nf-role`' />\r
221                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'\r
222  value='`$db.vf-model.nf-function`' />\r
223                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'\r
224  value='`$db.vf-model.nf-code`' />\r
225                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'\r
226  value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />\r
227                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'\r
228  value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />\r
229                         </set>\r
230                         <switch test='`$vnf-topology-operation-input.vnf-information.vnf-name`'>\r
231                             <outcome value=''>\r
232                                 <block atomic="true">\r
233                                     <switch test='`$db.vf-model.ecomp-generated-naming`'>\r
234                                         <outcome value='Y'>\r
235                                             <block></block>\r
236                                         </outcome>\r
237                                         <outcome value='N'>\r
238                                             <return status='failure'>\r
239                                                 <parameter name='ack-final' value='Y'/>\r
240                                                 <parameter name="error-code" value="500" />\r
241                                                 <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />\r
242                                             </return>\r
243                                         </outcome>\r
244                                         <outcome value='Other'>\r
245                                             <return status='failure'>\r
246                                                 <parameter name='ack-final' value='Y'/>\r
247                                                 <parameter name="error-code" value="500" />\r
248                                                 <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />\r
249                                             </return>\r
250                                         </outcome>\r
251                                     </switch>\r
252                                     <switch test='`$db.vf-model.naming-policy`'>\r
253                                         <outcome value=''>\r
254                                             <block atomic="true">\r
255                                                 <set>\r
256                                                     <parameter name='generate-unique-name-input.action' value='ASSIGN' />\r
257                                                     <parameter name='generate-unique-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
258                                                     <parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />\r
259                                                     <parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\r
260                                                     <parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\r
261                                                     <parameter name='generate-unique-name-input.prefix' value="`'z' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + $db.vf-model.nf-code`" />\r
262                                                 </set>\r
263                                                 <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
264                                                     <outcome value='failure'>\r
265                                                         <return status='failure'>\r
266                                                             <parameter name='ack-final' value='Y'/>\r
267                                                             <parameter name="error-code" value="500" />\r
268                                                             <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
269                                                         </return>\r
270                                                     </outcome>\r
271                                                     <outcome value='success'>\r
272                                                         <set>\r
273                                                             <parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />\r
274                                                         </set>\r
275                                                     </outcome>\r
276                                                 </call>\r
277                                             </block>\r
278                                         </outcome>\r
279                                         <outcome value='Other'>\r
280                                             <block atomic="true">\r
281                                                 <set>\r
282                                                     <parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.vf-model.naming-policy`' />\r
283                                                     <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
284                                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
285                                                     <parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\r
286                                                     <parameter name='naming-policy-generate-name-input.query-parameter' value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\r
287                                                 </set>\r
288                                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\r
289                                                     <outcome value='failure'>\r
290                                                         <return status='failure'>\r
291                                                             <parameter name='ack-final' value='Y'/>\r
292                                                             <parameter name="error-code" value="500" />\r
293                                                             <parameter name="error-message" value="Unable to generate VNF name" />\r
294                                                         </return>\r
295                                                     </outcome>\r
296                                                     <outcome value='success'>\r
297                                                         <set>\r
298                                                             <parameter name='tmp.vnf-name' value='`$naming-policy-generate-name-output.vnf-name`' />\r
299                                                         </set>\r
300                                                     </outcome>\r
301                                                 </call>\r
302                                             </block>\r
303                                         </outcome>\r
304                                     </switch>\r
305                                 </block>\r
306                             </outcome>\r
307                             <outcome value='Other'>\r
308                                 <set>\r
309                                     <parameter name='tmp.vnf-name' value="`$vnf-topology-operation-input.vnf-information.vnf-name`" />\r
310                                 </set>\r
311                             </outcome>\r
312                         </switch>\r
313                         <set>\r
314                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\r
315    value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
316                         </set>\r
317                         <set>\r
318                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'\r
319    value='`$tmp.vnf-name`' />\r
320                         </set>\r
321                         <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>\r
322                             <outcome value=''>\r
323                                 <set>\r
324                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
325   value='`$db.vf-model.invariant-uuid`' />\r
326                                 </set>\r
327                             </outcome>\r
328                             <outcome value='Other'>\r
329                                 <set>\r
330                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
331   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\r
332                                 </set>\r
333                             </outcome>\r
334                         </switch>\r
335                         <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>\r
336                             <outcome value=''>\r
337                                 <set>\r
338                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
339   value='`$db.vf-model.uuid`' />\r
340                                 </set>\r
341                             </outcome>\r
342                             <outcome value='Other'>\r
343                                 <set>\r
344                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
345   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\r
346                                 </set>\r
347                             </outcome>\r
348                         </switch>\r
349                         <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>\r
350                             <outcome value=''>\r
351                                 <set>\r
352                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
353   value='`$db.vf-model.version`' />\r
354                                 </set>\r
355                             </outcome>\r
356                             <outcome value='Other'>\r
357                                 <set>\r
358                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
359   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />\r
360                                 </set>\r
361                             </outcome>\r
362                         </switch>\r
363                         <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>\r
364                             <outcome value=''>\r
365                                 <set>\r
366                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
367   value='`$db.vf-model.name`' />\r
368                                 </set>\r
369                             </outcome>\r
370                             <outcome value='Other'>\r
371                                 <set>\r
372                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
373   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />\r
374                                 </set>\r
375                             </outcome>\r
376                         </switch>\r
377                         <set>\r
378                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\r
379   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\r
380                         </set>\r
381                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
382                 resource="cloud-region" \r
383                 key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
384                      cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\r
385                      depth='all'"\r
386         pfx='aai.cloud-region' local-only='false' >\r
387                             <outcome value='not-found'>\r
388                                 <block>\r
389                                     <block atomic="true">\r
390                                         <set>\r
391                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
392                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
393                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
394                                         </set>\r
395                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
396                                     </block>\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="Cloud region not found in AAI" />\r
401                                     </return>\r
402                                 </block>\r
403                             </outcome>\r
404                             <outcome value='failure'>\r
405                                 <block>\r
406                                     <block atomic="true">\r
407                                         <set>\r
408                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
409                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
410                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
411                                         </set>\r
412                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
413                                     </block>\r
414                                     <return status='failure'>\r
415                                         <parameter name='ack-final' value='Y'/>\r
416                                         <parameter name="error-code" value="500" />\r
417                                         <parameter name="error-message" value="Error retrieving cloud region from AAI" />\r
418                                     </return>\r
419                                 </block>\r
420                             </outcome>\r
421                         </get-resource>\r
422                         <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
423                             <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
424                                 <outcome value='complex'>\r
425                                     <block atomic="true">\r
426                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
427                                             <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
428                                             <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
429                                             <parameter name='regex' value='/' />\r
430                                         </execute>\r
431                                         <set>\r
432                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'\r
433   value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\r
434                                         </set>\r
435                                         <break/>\r
436                                     </block>\r
437                                 </outcome>\r
438                             </switch>\r
439                         </for>\r
440                         <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>\r
441                             <outcome value=''>\r
442                                 <block>\r
443                                     <block atomic="true">\r
444                                         <set>\r
445                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
446                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
447                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
448                                         </set>\r
449                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
450                                     </block>\r
451                                     <return status='failure'>\r
452                                         <parameter name='ack-final' value='Y'/>\r
453                                         <parameter name="error-code" value="500" />\r
454                                         <parameter name="error-message" value="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
455                                     </return>\r
456                                 </block>\r
457                             </outcome>\r
458                         </switch>\r
459                         <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
460   key='SELECT * from VF_TO_NETWORK_ROLE_MAPPING WHERE vf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
461   pfx='db.vf-network-role-mapping[]'>\r
462                             <outcome value='failure'>\r
463                                 <block>\r
464                                     <block atomic="true">\r
465                                         <set>\r
466                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
467                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
468                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
469                                         </set>\r
470                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
471                                     </block>\r
472                                     <return status='failure'>\r
473                                         <parameter name='ack-final' value='Y'/>\r
474                                         <parameter name="error-code" value="500" />\r
475                                         <parameter name="error-message" value="Error reading VF_TO_NETWORK_ROLE_MAPPING table" />\r
476                                     </return>\r
477                                 </block>\r
478                             </outcome>\r
479                             <outcome value='not-found'>\r
480                                 <set>\r
481                                     <parameter name='db.vf-network-role-mapping_length' value='0' />\r
482                                 </set>\r
483                             </outcome>\r
484                         </get-resource>\r
485                         <set>\r
486                             <parameter name='network-index' value='0' />\r
487                         </set>\r
488                         <for silentFailure='true' index='role-index' start='0' end='`$db.vf-network-role-mapping_length`'>\r
489                             <switch test='`$db.vf-network-role-mapping[$role-index].network-role`'>\r
490                                 <outcome value=''>\r
491                                     <block></block>\r
492                                 </outcome>\r
493                                 <outcome value='null'>\r
494                                     <block></block>\r
495                                 </outcome>\r
496                                 <outcome value='NULL'>\r
497                                     <block></block>\r
498                                 </outcome>\r
499                                 <outcome value='Other'>\r
500                                     <block atomic="true">\r
501                                         <set>\r
502                                             <parameter name='aai.l3-network.' value='' />\r
503                                         </set>\r
504                                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
505                 resource="l3-networks" \r
506                 key="l3-network.network-role = $db.vf-network-role-mapping[$role-index].network-role"\r
507         pfx='aai.l3-network' local-only='false'\r
508 >\r
509                                             <outcome value='not-found'>\r
510                                                 <block>\r
511                                                     <block atomic="true">\r
512                                                         <set>\r
513                                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
514                                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
515                                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
516                                                         </set>\r
517                                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
518                                                     </block>\r
519                                                     <return status='failure'>\r
520                                                         <parameter name='ack-final' value='Y'/>\r
521                                                         <parameter name="error-code" value="500" />\r
522                                                         <parameter name="error-message" value="`'No active l3-network found in AAI with cloud_region_id '\r
523           + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + ' and network_role '\r
524           + $db.vf-network-role-mapping[$network-index].network-role`" />\r
525                                                     </return>\r
526                                                 </block>\r
527                                             </outcome>\r
528                                             <outcome value='failure'>\r
529                                                 <block>\r
530                                                     <block atomic="true">\r
531                                                         <set>\r
532                                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
533                                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
534                                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
535                                                         </set>\r
536                                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
537                                                     </block>\r
538                                                     <return status='failure'>\r
539                                                         <parameter name='ack-final' value='Y'/>\r
540                                                         <parameter name="error-code" value="500" />\r
541                                                         <parameter name="error-message" value="Error retrieving l3-network from AAI" />\r
542                                                     </return>\r
543                                                 </block>\r
544                                             </outcome>\r
545                                         </get-resource>\r
546                                         <set>\r
547                                             <parameter name='l3-network-id' value='-1' />\r
548                                         </set>\r
549                                         <block>\r
550                                             <set>\r
551                                                 <parameter name='found-network' value='false' />\r
552                                             </set>\r
553                                             <for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >\r
554                                                 <block atomic="true">\r
555                                                     <switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>\r
556                                                         <outcome value='PendingCreate'>\r
557                                                             <block></block>\r
558                                                         </outcome>\r
559                                                         <outcome value='Pending Create'>\r
560                                                             <block></block>\r
561                                                         </outcome>\r
562                                                         <outcome value='PendingDelete'>\r
563                                                             <block></block>\r
564                                                         </outcome>\r
565                                                         <outcome value='Pending Delete'>\r
566                                                             <block></block>\r
567                                                         </outcome>\r
568                                                         <outcome value='Other'>\r
569                                                             <for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >\r
570                                                                 <block atomic="true">\r
571                                                                     <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>\r
572                                                                         <outcome value='service-instance'>\r
573                                                                             <for silentFailure='true' index='db-data-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data_length`' >\r
574                                                                                 <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\r
575                                                                                     <outcome value='service-instance.service-instance-id'>\r
576                                                                                         <set>\r
577                                                                                             <parameter name='network-service-instance-id'\r
578   value='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value`' />\r
579                                                                                         </set>\r
580                                                                                     </outcome>\r
581                                                                                 </switch>\r
582                                                                             </for>\r
583                                                                         </outcome>\r
584                                                                         <outcome value='cloud-region'>\r
585                                                                             <for silentFailure='true' index='db-data-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data_length`' >\r
586                                                                                 <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\r
587                                                                                     <outcome value='cloud-region.cloud-region-id'>\r
588                                                                                         <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value == $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>\r
589                                                                                             <outcome value='true'>\r
590                                                                                                 <block atomic="true">\r
591                                                                                                     <set>\r
592                                                                                                         <parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\r
593                                                                                                     </set>\r
594                                                                                                     <set>\r
595                                                                                                         <parameter name='found-network' value='true' />\r
596                                                                                                     </set>\r
597                                                                                                     <break/>\r
598                                                                                                 </block>\r
599                                                                                             </outcome>\r
600                                                                                         </switch>\r
601                                                                                     </outcome>\r
602                                                                                 </switch>\r
603                                                                             </for>\r
604                                                                         </outcome>\r
605                                                                     </switch>\r
606                                                                     <switch test='`$found-network`'>\r
607                                                                         <outcome value='true'>\r
608                                                                             <break/>\r
609                                                                         </outcome>\r
610                                                                     </switch>\r
611                                                                 </block>\r
612                                                             </for>\r
613                                                         </outcome>\r
614                                                     </switch>\r
615                                                     <switch test='`$found-network`'>\r
616                                                         <outcome value='true'>\r
617                                                             <break/>\r
618                                                         </outcome>\r
619                                                     </switch>\r
620                                                 </block>\r
621                                             </for>\r
622                                         </block>\r
623                                         <switch test='`$l3-network-id`'>\r
624                                             <outcome value='-1'>\r
625                                                 <block>\r
626                                                     <block atomic="true">\r
627                                                         <set>\r
628                                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
629                                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
630                                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
631                                                         </set>\r
632                                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
633                                                     </block>\r
634                                                     <return status='failure'>\r
635                                                         <parameter name='ack-final' value='Y'/>\r
636                                                         <parameter name="error-code" value="500" />\r
637                                                         <parameter name="error-message" value="`'Unable to find l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`" />\r
638                                                     </return>\r
639                                                 </block>\r
640                                             </outcome>\r
641                                         </switch>\r
642                                         <set>\r
643                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'\r
644     value='`$db.vf-network-role-mapping[$role-index].network-role`' />\r
645                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'\r
646     value='`$aai.l3-network.l3-network[$db-network-index].network-name`' />\r
647                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'\r
648     value='`$aai.l3-network.l3-network[$db-network-index].neutron-network-id`' />\r
649                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'\r
650     value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\r
651                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].contrail-network-fqdn'\r
652     value='`$aai.l3-network.l3-network[$db-network-index].contrail-network-fqdn`' />\r
653                                         </set>\r
654                                         <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet_length`'>\r
655                                             <outcome value=''>\r
656                                                 <set>\r
657                                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\r
658    value='0' />\r
659                                                 </set>\r
660                                             </outcome>\r
661                                             <outcome value='0'>\r
662                                                 <set>\r
663                                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\r
664    value='0' />\r
665                                                 </set>\r
666                                             </outcome>\r
667                                             <outcome value='Other'>\r
668                                                 <block>\r
669                                                     <for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet_length`' >\r
670                                                         <block>\r
671                                                             <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role`'>\r
672                                                                 <outcome value=''>\r
673                                                                     <set>\r
674                                                                         <parameter name='aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role' value='NONE' />\r
675                                                                     </set>\r
676                                                                 </outcome>\r
677                                                             </switch>\r
678                                                             <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`'>\r
679                                                                 <outcome value='4'>\r
680                                                                     <set>\r
681                                                                         <parameter name='tmp.ip-version' value='ipv4' />\r
682                                                                     </set>\r
683                                                                 </outcome>\r
684                                                                 <outcome value='6'>\r
685                                                                     <set>\r
686                                                                         <parameter name='tmp.ip-version' value='ipv6' />\r
687                                                                     </set>\r
688                                                                 </outcome>\r
689                                                             </switch>\r
690                                                             <set>\r
691                                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].ip-version'\r
692    value='`$tmp.ip-version`' />\r
693                                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-id'\r
694    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].neutron-subnet-id`' />\r
695                                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].sdnc-subnet-id'\r
696    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-id`' />\r
697                                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-role'\r
698    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role`' />\r
699                                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-name'\r
700    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-name`' />\r
701                                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].network-start-address'\r
702    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].network-start-address`' />\r
703                                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].gateway-address'\r
704    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].gateway-address`' />\r
705                                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].cidr-mask'\r
706    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].cidr-mask`' />\r
707                                                             </set>\r
708                                                             <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].dhcp-enabled`'>\r
709                                                                 <outcome value='true'>\r
710                                                                     <set>\r
711                                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].dhcp-enabled'\r
712    value='Y' />\r
713                                                                     </set>\r
714                                                                 </outcome>\r
715                                                                 <outcome value='false'>\r
716                                                                     <set>\r
717                                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].dhcp-enabled'\r
718    value='N' />\r
719                                                                     </set>\r
720                                                                 </outcome>\r
721                                                             </switch>\r
722                                                         </block>\r
723                                                     </for>\r
724                                                     <set>\r
725                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\r
726    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet_length`' />\r
727                                                     </set>\r
728                                                 </block>\r
729                                             </outcome>\r
730                                         </switch>\r
731                                         <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
732   key='SELECT * from VNF_RELATED_NETWORK_ROLE where vnf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid\r
733     and network_role = $db.vf-network-role-mapping[$role-index].network-role'\r
734   pfx='db.vnf-related-network-role[]'>\r
735                                             <outcome value='failure'>\r
736                                                 <block>\r
737                                                     <block atomic="true">\r
738                                                         <set>\r
739                                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
740                                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
741                                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
742                                                         </set>\r
743                                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
744                                                     </block>\r
745                                                     <return status='failure'>\r
746                                                         <parameter name='ack-final' value='Y'/>\r
747                                                         <parameter name="error-code" value="500" />\r
748                                                         <parameter name="error-message" value="Error reading VNF_RELATED_NETWORK_ROLE table" />\r
749                                                     </return>\r
750                                                 </block>\r
751                                             </outcome>\r
752                                             <outcome value='success'>\r
753                                                 <block atomic="true">\r
754                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
755                                                         <parameter name="source" value="`$prop.restapi.network-topology-identifier-structure`"/>\r
756                                                         <parameter name="outputPath" value="tmp.part"/>\r
757                                                         <parameter name="target" value="{service-instance-id}"/>\r
758                                                         <parameter name="replacement" value="`$network-service-instance-id`"/>\r
759                                                     </execute>\r
760                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
761                                                         <parameter name="source" value="`$tmp.part`"/>\r
762                                                         <parameter name="outputPath" value="tmp.ntis-url"/>\r
763                                                         <parameter name="target" value="{network-id}"/>\r
764                                                         <parameter name="replacement" value="`$l3-network-id`"/>\r
765                                                     </execute>\r
766                                                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
767                                                         <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ntis-url`' />\r
768                                                         <parameter name='restapiUser' value='`$prop.controller.user`' />\r
769                                                         <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
770                                                         <parameter name='format' value='json' />\r
771                                                         <parameter name='httpMethod' value='GET' />\r
772                                                         <parameter name="responsePrefix" value="mdsal-ntis" />\r
773                                                         <outcome value='failure'>\r
774                                                             <block>\r
775                                                                 <block atomic="true">\r
776                                                                     <set>\r
777                                                                         <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
778                                                                         <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
779                                                                         <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
780                                                                     </set>\r
781                                                                     <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
782                                                                 </block>\r
783                                                                 <return status='failure'>\r
784                                                                     <parameter name='ack-final' value='Y'/>\r
785                                                                     <parameter name="error-code" value="500" />\r
786                                                                     <parameter name="error-message" value="`\r
787     'Error retrieving network-topology-identifier-structure for service instance '\r
788     + $network-service-instance-id\r
789     + ' and network-id '\r
790     + $l3-network-id`" />\r
791                                                                 </return>\r
792                                                             </block>\r
793                                                         </outcome>\r
794                                                     </execute>\r
795                                                     <set>\r
796                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].is-trunked'\r
797     value='`$mdsal-ntis.network-topology-identifier-structure.is-trunked`' />\r
798                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].segmentation-id'\r
799     value='`$mdsal-ntis.network-topology-identifier-structure.segmentation-id`' />\r
800                                                     </set>\r
801                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
802       resource="custom-query"\r
803       key="format = 'resource'"\r
804       force="true"\r
805       local-only="false"\r
806       pfx="tmp.AnAI-data.oe">\r
807                                                         <parameter name="start[0]" value="`'nodes/service-instances/service-instance?service-instance-id=' + $network-service-instance-id `" />\r
808                                                         <parameter name="start_length" value="1" />\r
809                                                         <parameter name="query" value="/query/owning-entity-fromService-instance" />\r
810                                                         <outcome value='failure'>\r
811                                                             <block>\r
812                                                                 <block atomic="true">\r
813                                                                     <set>\r
814                                                                         <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
815                                                                         <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
816                                                                         <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
817                                                                     </set>\r
818                                                                     <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
819                                                                 </block>\r
820                                                                 <return status='failure'>\r
821                                                                     <parameter name='ack-final' value='Y'/>\r
822                                                                     <parameter name="error-code" value="500" />\r
823                                                                     <parameter name="error-message" value="Error getting owning entity from service instance" />\r
824                                                                 </return>\r
825                                                             </block>\r
826                                                         </outcome>\r
827                                                         <outcome value='not-found'>\r
828                                                             <block>\r
829                                                                 <block atomic="true">\r
830                                                                     <set>\r
831                                                                         <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
832                                                                         <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
833                                                                         <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
834                                                                     </set>\r
835                                                                     <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
836                                                                 </block>\r
837                                                                 <return status='failure'>\r
838                                                                     <parameter name='ack-final' value='Y'/>\r
839                                                                     <parameter name="error-code" value="500" />\r
840                                                                     <parameter name="error-message" value="Unable to find owning entity from service instance" />\r
841                                                                 </return>\r
842                                                             </block>\r
843                                                         </outcome>\r
844                                                     </save>\r
845                                                     <set>\r
846                                                         <parameter name='rn-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network_length`' />\r
847                                                     </set>\r
848                                                     <switch test='`$rn-index`'>\r
849                                                         <outcome value=''>\r
850                                                             <set>\r
851                                                                 <parameter name='rn-index' value='0' />\r
852                                                             </set>\r
853                                                         </outcome>\r
854                                                     </switch>\r
855                                                     <for index='rel-network-role-index' start='0' end='`$db.vnf-related-network-role_length`' >\r
856                                                         <block atomic="true">\r
857                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
858       resource="custom-query"\r
859       key="format = 'resource'"\r
860       force="true"\r
861       local-only="false"\r
862       pfx="tmp.AnAI-data.get-networks">\r
863                                                                 <parameter name="start[0]" value="`'/business/owning-entities/owning-entity/' + $tmp.AnAI-data.oe.results[0].owning-entity.owning-entity-id `" />\r
864                                                                 <parameter name="start_length" value="1" />\r
865                                                                 <parameter name="query" value="`'/query/getNetworks?networkRole=' + $db.vnf-related-network-role[$rel-network-role-index].related-network-role\r
866   + '&amp;cloudRegionId=' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
867                                                                 <outcome value='failure'>\r
868                                                                     <block>\r
869                                                                         <block atomic="true">\r
870                                                                             <set>\r
871                                                                                 <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
872                                                                                 <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
873                                                                                 <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
874                                                                             </set>\r
875                                                                             <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
876                                                                         </block>\r
877                                                                         <return status='failure'>\r
878                                                                             <parameter name='ack-final' value='Y'/>\r
879                                                                             <parameter name="error-code" value="500" />\r
880                                                                             <parameter name="error-message" value="Error calling getNetworks custom query in AAI" />\r
881                                                                         </return>\r
882                                                                     </block>\r
883                                                                 </outcome>\r
884                                                                 <outcome value='not-found'>\r
885                                                                     <block>\r
886                                                                         <block atomic="true">\r
887                                                                             <set>\r
888                                                                                 <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
889                                                                                 <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
890                                                                                 <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
891                                                                             </set>\r
892                                                                             <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
893                                                                         </block>\r
894                                                                         <return status='failure'>\r
895                                                                             <parameter name='ack-final' value='Y'/>\r
896                                                                             <parameter name="error-code" value="500" />\r
897                                                                             <parameter name="error-message" value="`'No l3-network returned from getNetworks custom query for related network role '\r
898       + $db.vnf-related-network-role[0].related-network-role`" />\r
899                                                                         </return>\r
900                                                                     </block>\r
901                                                                 </outcome>\r
902                                                             </save>\r
903                                                             <set>\r
904                                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network[$rn-index].network-id'\r
905   value='`$tmp.AnAI-data.get-networks.results[0].l3-network.network-id`' />\r
906                                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network[$rn-index].network-role'\r
907   value='`$tmp.AnAI-data.get-networks.results[0].l3-network.network-role`' />\r
908                                                             </set>\r
909                                                             <for index='rel-index' start='0' end='`$tmp.AnAI-data.get-networks.results[0].l3-network.relationship-list.relationship_length`' >\r
910                                                                 <switch test='`$tmp.AnAI-data.get-networks.results[0].l3-network.relationship-list.relationship[$rel-index].related-to`'>\r
911                                                                     <outcome value='vlan-tag'>\r
912                                                                         <block atomic="true">\r
913                                                                             <set>\r
914                                                                                 <parameter name='vlan-tag-id' value='`$tmp.AnAI-data.get-networks.results[0].l3-network.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value`' />\r
915                                                                             </set>\r
916                                                                             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
917                 resource="vlan-tag" \r
918                 key="vlan-tag.vlan-tag-id = $vlan-tag-id"\r
919         pfx='aai.vlan-tag' local-only='false'\r
920 >\r
921                                                                                 <outcome value='failure'>\r
922                                                                                     <block>\r
923                                                                                         <block atomic="true">\r
924                                                                                             <set>\r
925                                                                                                 <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
926                                                                                                 <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
927                                                                                                 <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
928                                                                                             </set>\r
929                                                                                             <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
930                                                                                         </block>\r
931                                                                                         <return status='failure'>\r
932                                                                                             <parameter name='ack-final' value='Y'/>\r
933                                                                                             <parameter name="error-code" value="500" />\r
934                                                                                             <parameter name="error-message" value="Error getting vlan-tag object from AAI" />\r
935                                                                                         </return>\r
936                                                                                     </block>\r
937                                                                                 </outcome>\r
938                                                                                 <outcome value='success'>\r
939                                                                                     <set>\r
940                                                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network[$rn-index].vlan-tags.vlan-interface'\r
941   value='`$aai.vlan-tag.vlan-tag-id`' />\r
942                                                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network[$rn-index].vlan-tags.upper-tag-id'\r
943   value='`$aai.vlan-tag.vlan-id-outer`' />\r
944                                                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network[$rn-index].vlan-tags.lower-tag-id'\r
945   value='`$aai.vlan-tag.vlan-id-inner`' />\r
946                                                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network[$rn-index].vlan-tags.is-private'\r
947   value='`$aai.vlan-tag.is-private`' />\r
948                                                                                     </set>\r
949                                                                                 </outcome>\r
950                                                                             </get-resource>\r
951                                                                             <break/>\r
952                                                                         </block>\r
953                                                                     </outcome>\r
954                                                                 </switch>\r
955                                                             </for>\r
956                                                         </block>\r
957                                                     </for>\r
958                                                     <set>\r
959                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network_length'\r
960   value='`$rn-index + 1`' />\r
961                                                     </set>\r
962                                                 </block>\r
963                                             </outcome>\r
964                                         </get-resource>\r
965                                         <set>\r
966                                             <parameter name='network-index' value='`$network-index + 1`' />\r
967                                         </set>\r
968                                     </block>\r
969                                 </outcome>\r
970                             </switch>\r
971                         </for>\r
972                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
973                             <parameter name='filename' value='/var/tmp/bgb-vnfa.log' />\r
974                         </execute>\r
975                         <set>\r
976                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\r
977   value='`$network-index`' />\r
978                         </set>\r
979                         <set>\r
980                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\r
981   value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />\r
982                         </set>\r
983                         <switch test='`$aai.cloud-region.availability-zones.availability-zone_length`'>\r
984                             <outcome value=''>\r
985                                 <switch test='`$db.vf-model.avail-zone-max-count &gt; 0`'>\r
986                                     <outcome value='true'>\r
987                                         <block>\r
988                                             <block atomic="true">\r
989                                                 <set>\r
990                                                     <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
991                                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
992                                                     <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
993                                                 </set>\r
994                                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
995                                             </block>\r
996                                             <return status='failure'>\r
997                                                 <parameter name='ack-final' value='Y'/>\r
998                                                 <parameter name="error-code" value="500" />\r
999                                                 <parameter name="error-message" value="`'No availability zones found in AAI for cloud region '\r
1000        + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
1001                                             </return>\r
1002                                         </block>\r
1003                                     </outcome>\r
1004                                     <outcome value='false'>\r
1005                                         <set>\r
1006                                             <parameter name='aai.cloud-region.availability-zones.availability-zone_length' value='0' />\r
1007                                         </set>\r
1008                                     </outcome>\r
1009                                 </switch>\r
1010                             </outcome>\r
1011                         </switch>\r
1012                         <for index='idx' start='0' end='`$aai.cloud-region.availability-zones.availability-zone_length`' >\r
1013                             <block atomic="true">\r
1014                                 <set>\r
1015                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'\r
1016   value='`$aai.cloud-region.availability-zones.availability-zone[$idx].availability-zone-name`' />\r
1017                                 </set>\r
1018                                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
1019    resource="generic-vnf:relationship-list"\r
1020    key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
1021    force="true" pfx="tmp.AnAI-data">\r
1022                                     <parameter name="relationship-list.relationship[0].related-to" value="availability-zone" />\r
1023                                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />\r
1024                                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.cloud-region.cloud-owner`" />\r
1025                                     <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />\r
1026                                     <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
1027                                     <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="availability-zone.availability-zone-name" />\r
1028                                     <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$aai.cloud-region.availability-zones.availability-zone[$idx].availability-zone-name`" />\r
1029                                     <outcome value='failure'>\r
1030                                         <block>\r
1031                                             <block atomic="true">\r
1032                                                 <set>\r
1033                                                     <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
1034                                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
1035                                                     <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
1036                                                 </set>\r
1037                                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
1038                                             </block>\r
1039                                             <return status='failure'>\r
1040                                                 <parameter name='ack-final' value='Y'/>\r
1041                                                 <parameter name="error-code" value="500" />\r
1042                                                 <parameter name="error-message" value="Error updating generic-vnf in AAI" />\r
1043                                             </return>\r
1044                                         </block>\r
1045                                     </outcome>\r
1046                                     <outcome value='not-found'>\r
1047                                         <block>\r
1048                                             <block atomic="true">\r
1049                                                 <set>\r
1050                                                     <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
1051                                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
1052                                                     <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
1053                                                 </set>\r
1054                                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
1055                                             </block>\r
1056                                             <return status='failure'>\r
1057                                                 <parameter name='ack-final' value='Y'/>\r
1058                                                 <parameter name="error-code" value="500" />\r
1059                                                 <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
1060                                             </return>\r
1061                                         </block>\r
1062                                     </outcome>\r
1063                                 </save>\r
1064                             </block>\r
1065                         </for>\r
1066                         <set>\r
1067                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'\r
1068    value='`$db.vf-model.avail-zone-max-count`' />\r
1069                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'\r
1070    value='`$aai.cloud-region.availability-zones.availability-zone_length`' />\r
1071                         </set>\r
1072                         <for index='vnf-nw-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
1073                             <block atomic="true">\r
1074                                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
1075    resource="generic-vnf:relationship-list"\r
1076    key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
1077    force="true" pfx="tmp.AnAI-data">\r
1078                                     <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
1079                                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="l3-network.network-id" />\r
1080                                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-nw-index].network-id`" />\r
1081                                     <outcome value='failure'>\r
1082                                         <block>\r
1083                                             <block atomic="true">\r
1084                                                 <set>\r
1085                                                     <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
1086                                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
1087                                                     <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
1088                                                 </set>\r
1089                                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
1090                                             </block>\r
1091                                             <return status='failure'>\r
1092                                                 <parameter name='ack-final' value='Y'/>\r
1093                                                 <parameter name="error-code" value="500" />\r
1094                                                 <parameter name="error-message" value="Error updating generic-vnf in AAI" />\r
1095                                             </return>\r
1096                                         </block>\r
1097                                     </outcome>\r
1098                                     <outcome value='not-found'>\r
1099                                         <block>\r
1100                                             <block atomic="true">\r
1101                                                 <set>\r
1102                                                     <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
1103                                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
1104                                                     <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
1105                                                 </set>\r
1106                                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
1107                                             </block>\r
1108                                             <return status='failure'>\r
1109                                                 <parameter name='ack-final' value='Y'/>\r
1110                                                 <parameter name="error-code" value="500" />\r
1111                                                 <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
1112                                             </return>\r
1113                                         </block>\r
1114                                     </outcome>\r
1115                                 </save>\r
1116                             </block>\r
1117                         </for>\r
1118                         <set>\r
1119                             <parameter name='vnf-object-path'\r
1120  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
1121  + $vnf-topology-operation-input.service-information.service-instance-id\r
1122  + '/service-data/vnfs/vnf/'\r
1123  + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
1124  + '/vnf-data/vnf-topology/'`"/>\r
1125                             <parameter name='service-object-path'\r
1126  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
1127  + $vnf-topology-operation-input.service-information.service-instance-id\r
1128  + '/service-data/service-topology/'`"/>\r
1129                         </set>\r
1130                         <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
1131    resource="generic-vnf"\r
1132    key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id"\r
1133    force="true" pfx="tmp.AnAI-data">\r
1134                             <parameter name="vnf-name" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`" />\r
1135                             <parameter name="prov-status" value="PREPROV" />\r
1136                             <!-- <parameter name="operational-status" value="out-of-service-path" /> -->\r
1137                             <parameter name="equipment-role" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`" />\r
1138                             <parameter name="model-invariant-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`" />\r
1139                             <parameter name="model-version-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`" />\r
1140                             <parameter name="model-customization-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`" />\r
1141                             <parameter name="in-maint" value="true" />\r
1142                             <parameter name="selflink" value="`$vnf-object-path`" />\r
1143                             <outcome value='failure'>\r
1144                                 <block>\r
1145                                     <block atomic="true">\r
1146                                         <set>\r
1147                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
1148                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
1149                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
1150                                         </set>\r
1151                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
1152                                     </block>\r
1153                                     <return status='failure'>\r
1154                                         <parameter name='ack-final' value='Y'/>\r
1155                                         <parameter name="error-code" value="500" />\r
1156                                         <parameter name="error-message" value="Error updating selflink in generic-vnf in AAI" />\r
1157                                     </return>\r
1158                                 </block>\r
1159                             </outcome>\r
1160                             <outcome value='not-found'>\r
1161                                 <block>\r
1162                                     <block atomic="true">\r
1163                                         <set>\r
1164                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
1165                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
1166                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
1167                                         </set>\r
1168                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
1169                                     </block>\r
1170                                     <return status='failure'>\r
1171                                         <parameter name='ack-final' value='Y'/>\r
1172                                         <parameter name="error-code" value="500" />\r
1173                                         <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
1174                                     </return>\r
1175                                 </block>\r
1176                             </outcome>\r
1177                         </update>\r
1178                         <for silentFailure='true' index='inst-group-index' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids_length`' >\r
1179                             <block atomic="true">\r
1180                                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
1181    resource="generic-vnf:relationship-list"\r
1182    key="generic-vnf.vnf-id = $vnf-topology-operation-input.vnf-information.vnf-id"\r
1183    force="true" pfx="tmp.AnAI-data">\r
1184                                     <parameter name="relationship-list.relationship[0].related-to" value="instance-group" />\r
1185                                     <parameter name="relationship-list.relationship[0].related-link"\r
1186       value="`'/aai/v$/network/instance-groups/instance-group/'\r
1187         + $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id`" />\r
1188                                     <outcome value='failure'>\r
1189                                         <block>\r
1190                                             <block atomic="true">\r
1191                                                 <set>\r
1192                                                     <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
1193                                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
1194                                                     <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
1195                                                 </set>\r
1196                                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
1197                                             </block>\r
1198                                             <return status='failure'>\r
1199                                                 <parameter name='ack-final' value='Y'/>\r
1200                                                 <parameter name="error-code" value="500" />\r
1201                                                 <parameter name="error-message" value="Error updating relationship in generic-vnf in AAI" />\r
1202                                             </return>\r
1203                                         </block>\r
1204                                     </outcome>\r
1205                                     <outcome value='not-found'>\r
1206                                         <block>\r
1207                                             <block atomic="true">\r
1208                                                 <set>\r
1209                                                     <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
1210                                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
1211                                                     <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
1212                                                 </set>\r
1213                                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
1214                                             </block>\r
1215                                             <return status='failure'>\r
1216                                                 <parameter name='ack-final' value='Y'/>\r
1217                                                 <parameter name="error-code" value="500" />\r
1218                                                 <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
1219                                             </return>\r
1220                                         </block>\r
1221                                     </outcome>\r
1222                                 </save>\r
1223                             </block>\r
1224                         </for>\r
1225                         <set>\r
1226                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
1227                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
1228                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
1229                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\r
1230                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\r
1231                         </set>\r
1232                         <set>\r
1233                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\r
1234                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
1235                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
1236                         </set>\r
1237                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
1238                             <parameter name='filename' value='/var/tmp/bgb-vnf.log' />\r
1239                         </execute>\r
1240                         <return status='success'>\r
1241                             <parameter name="ack-final-indicator" value="Y" />\r
1242                             <parameter name="error-code" value="200" />\r
1243                             <parameter name="error-message" value="`$error-message`" />\r
1244                         </return>\r
1245                     </block>\r
1246                 </outcome>\r
1247             </switch>\r
1248         </block>\r
1249     </method>\r
1250 </service-logic>