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