Chore: Add gerrit maven verify GHA workflow
[sdnc/oam.git] / csit / plans / sdnc / testdata / GENERIC-RESOURCE-API_vnf-topology-operation-assign-sync.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='aai-disabled'>\r
4     <method rpc='vnf-topology-operation-assign-sync' mode='sync'>\r
5         <block atomic="true">\r
6             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
7                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
8                 <parameter name='contextPrefix' value='prop' />\r
9             </execute>\r
10             <switch test='`$vnf-topology-operation-input.vnf-request-input.cloud-owner`'>\r
11                 <outcome value=''>\r
12                     <block></block>\r
13                 </outcome>\r
14                 <outcome value='Other'>\r
15                     <set>\r
16                         <parameter name='prop.cloud-region.cloud-owner' value='`$vnf-topology-operation-input.vnf-request-input.cloud-owner`' />\r
17                     </set>\r
18                 </outcome>\r
19             </switch>\r
20             <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
21                 <outcome value='CreateVnfInstance'>\r
22                     <block></block>\r
23                 </outcome>\r
24                 <outcome value='Other'>\r
25                     <return status='failure'>\r
26                         <parameter name='ack-final' value='Y'/>\r
27                         <parameter name="error-code" value="500" />\r
28                         <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateVnfInstance'" />\r
29                     </return>\r
30                 </outcome>\r
31             </switch>\r
32             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
33   key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
34   pfx='db.vf-model'>\r
35                 <outcome value='failure'>\r
36                     <return status='failure'>\r
37                         <parameter name='ack-final' value='Y'/>\r
38                         <parameter name="error-code" value="500" />\r
39                         <parameter name="error-message" value="Error reading VF_MODEL table" />\r
40                     </return>\r
41                 </outcome>\r
42                 <outcome value='not-found'>\r
43                     <return status='failure'>\r
44                         <parameter name='ack-final' value='Y'/>\r
45                         <parameter name="error-code" value="500" />\r
46                         <parameter name="error-message" value="`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`" />\r
47                     </return>\r
48                 </outcome>\r
49             </get-resource>\r
50             <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-forking-logic' mode='sync' ></call>\r
51             <switch test="`$ss.self-serve-flag`">\r
52                 <outcome value='true'>\r
53                     <block atomic="true">\r
54                         <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-assign' mode='sync' >\r
55                             <outcome value='failure'>\r
56                                 <return status='failure'>\r
57                                     <parameter name='ack-final' value='Y'/>\r
58                                     <parameter name="error-code" value="500" />\r
59                                     <parameter name="error-message" value="`'Failed to create self-serve assignment for vnf with vnf-id=' + $vnf-topology-operation-input.vnf-information.vnf-id + ' with error: ' + $error-message`" />\r
60                                 </return>\r
61                             </outcome>\r
62                         </call>\r
63                         <set>\r
64                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\r
65                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
66                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
67                         </set>\r
68                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
69                             <parameter name='filename' value='/var/tmp/ss-vnfend.log' />\r
70                         </execute>\r
71                         <return status='success'>\r
72                             <parameter name="ack-final-indicator" value="Y" />\r
73                             <parameter name="error-code" value="200" />\r
74                             <parameter name="error-message" value="`$error-message`" />\r
75                         </return>\r
76                     </block>\r
77                 </outcome>\r
78                 <outcome value='false'>\r
79                     <block atomic="true">\r
80                         <switch test='`$service-data.vnfs.vnf_length`'>\r
81                             <outcome value=''>\r
82                                 <set>\r
83                                     <parameter name='vnf-index' value='0' />\r
84                                 </set>\r
85                             </outcome>\r
86                             <outcome value='Other'>\r
87                                 <block>\r
88                                     <set>\r
89                                         <parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\r
90                                     </set>\r
91                                     <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
92                                         <switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\r
93                                             <outcome value='true'>\r
94                                                 <return status='failure'>\r
95                                                     <parameter name='ack-final' value='Y'/>\r
96                                                     <parameter name="error-code" value="500" />\r
97                                                     <parameter name="error-message" value="`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id\r
98       + ' already exists'`" />\r
99                                                 </return>\r
100                                             </outcome>\r
101                                         </switch>\r
102                                     </for>\r
103                                 </block>\r
104                             </outcome>\r
105                         </switch>\r
106                         <set>\r
107                             <parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\r
108                         </set>\r
109                         <set>\r
110                             <parameter name='tmp.vnf-network-collection_length' value='0' />\r
111                         </set>\r
112                         <set>\r
113                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection_length'\r
114   value='`$tmp.vnf-network-collection_length`' />\r
115                         </set>\r
116                         <set>\r
117                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'\r
118  value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
119                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'\r
120  value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />\r
121                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'\r
122  value='`$db.vf-model.nf-type`' />\r
123                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'\r
124  value='`$db.vf-model.nf-role`' />\r
125                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'\r
126  value='`$db.vf-model.nf-function`' />\r
127                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'\r
128  value='`$db.vf-model.nf-code`' />\r
129                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'\r
130  value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />\r
131                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'\r
132  value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />\r
133                         </set>\r
134                         <switch test='`$vnf-topology-operation-input.vnf-information.vnf-name`'>\r
135                             <outcome value=''>\r
136                                 <block atomic="true">\r
137                                     <switch test='`$db.vf-model.ecomp-generated-naming`'>\r
138                                         <outcome value='Y'>\r
139                                             <block></block>\r
140                                         </outcome>\r
141                                         <outcome value='N'>\r
142                                             <return status='failure'>\r
143                                                 <parameter name='ack-final' value='Y'/>\r
144                                                 <parameter name="error-code" value="500" />\r
145                                                 <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />\r
146                                             </return>\r
147                                         </outcome>\r
148                                         <outcome value='Other'>\r
149                                             <return status='failure'>\r
150                                                 <parameter name='ack-final' value='Y'/>\r
151                                                 <parameter name="error-code" value="500" />\r
152                                                 <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />\r
153                                             </return>\r
154                                         </outcome>\r
155                                     </switch>\r
156                                     <switch test='`$db.vf-model.naming-policy`'>\r
157                                         <outcome value=''>\r
158                                             <block atomic="true">\r
159                                                 <set>\r
160                                                     <parameter name='generate-unique-name-input.action' value='ASSIGN' />\r
161                                                     <parameter name='generate-unique-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
162                                                     <parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />\r
163                                                     <parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\r
164                                                     <parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\r
165                                                     <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
166                                                 </set>\r
167                                                 <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
168                                                     <outcome value='failure'>\r
169                                                         <return status='failure'>\r
170                                                             <parameter name='ack-final' value='Y'/>\r
171                                                             <parameter name="error-code" value="500" />\r
172                                                             <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
173                                                         </return>\r
174                                                     </outcome>\r
175                                                     <outcome value='success'>\r
176                                                         <set>\r
177                                                             <parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />\r
178                                                         </set>\r
179                                                     </outcome>\r
180                                                 </call>\r
181                                             </block>\r
182                                         </outcome>\r
183                                         <outcome value='Other'>\r
184                                             <block atomic="true">\r
185                                                 <set>\r
186                                                     <parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.vf-model.naming-policy`' />\r
187                                                     <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
188                                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
189                                                     <parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\r
190                                                     <parameter name='naming-policy-generate-name-input.query-parameter' value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\r
191                                                 </set>\r
192                                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\r
193                                                     <outcome value='failure'>\r
194                                                         <return status='failure'>\r
195                                                             <parameter name='ack-final' value='Y'/>\r
196                                                             <parameter name="error-code" value="500" />\r
197                                                             <parameter name="error-message" value="Unable to generate VNF name" />\r
198                                                         </return>\r
199                                                     </outcome>\r
200                                                     <outcome value='success'>\r
201                                                         <set>\r
202                                                             <parameter name='tmp.vnf-name' value='`$naming-policy-generate-name-output.vnf-name`' />\r
203                                                         </set>\r
204                                                     </outcome>\r
205                                                 </call>\r
206                                             </block>\r
207                                         </outcome>\r
208                                     </switch>\r
209                                 </block>\r
210                             </outcome>\r
211                             <outcome value='Other'>\r
212                                 <set>\r
213                                     <parameter name='tmp.vnf-name' value="`$vnf-topology-operation-input.vnf-information.vnf-name`" />\r
214                                 </set>\r
215                             </outcome>\r
216                         </switch>\r
217                         <set>\r
218                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\r
219    value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
220                         </set>\r
221                         <set>\r
222                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'\r
223    value='`$tmp.vnf-name`' />\r
224                         </set>\r
225                         <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>\r
226                             <outcome value=''>\r
227                                 <set>\r
228                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
229   value='`$db.vf-model.invariant-uuid`' />\r
230                                 </set>\r
231                             </outcome>\r
232                             <outcome value='Other'>\r
233                                 <set>\r
234                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
235   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\r
236                                 </set>\r
237                             </outcome>\r
238                         </switch>\r
239                         <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>\r
240                             <outcome value=''>\r
241                                 <set>\r
242                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
243   value='`$db.vf-model.uuid`' />\r
244                                 </set>\r
245                             </outcome>\r
246                             <outcome value='Other'>\r
247                                 <set>\r
248                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
249   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\r
250                                 </set>\r
251                             </outcome>\r
252                         </switch>\r
253                         <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>\r
254                             <outcome value=''>\r
255                                 <set>\r
256                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
257   value='`$db.vf-model.version`' />\r
258                                 </set>\r
259                             </outcome>\r
260                             <outcome value='Other'>\r
261                                 <set>\r
262                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
263   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />\r
264                                 </set>\r
265                             </outcome>\r
266                         </switch>\r
267                         <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>\r
268                             <outcome value=''>\r
269                                 <set>\r
270                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
271   value='`$db.vf-model.name`' />\r
272                                 </set>\r
273                             </outcome>\r
274                             <outcome value='Other'>\r
275                                 <set>\r
276                                     <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
277   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />\r
278                                 </set>\r
279                             </outcome>\r
280                         </switch>\r
281                         <set>\r
282                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\r
283   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\r
284                         </set>\r
285                         <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
286   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
287   pfx='db.vf-network-role-mapping[]'>\r
288                             <outcome value='failure'>\r
289                                 <block>\r
290                                     <block atomic="true">\r
291                                         <set>\r
292                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
293                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
294                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
295                                         </set>\r
296                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
297                                     </block>\r
298                                     <return status='failure'>\r
299                                         <parameter name='ack-final' value='Y'/>\r
300                                         <parameter name="error-code" value="500" />\r
301                                         <parameter name="error-message" value="Error reading VF_TO_NETWORK_ROLE_MAPPING table" />\r
302                                     </return>\r
303                                 </block>\r
304                             </outcome>\r
305                             <outcome value='not-found'>\r
306                                 <set>\r
307                                     <parameter name='db.vf-network-role-mapping_length' value='0' />\r
308                                 </set>\r
309                             </outcome>\r
310                         </get-resource>\r
311                         <set>\r
312                             <parameter name='network-index' value='0' />\r
313                         </set>\r
314                         <for silentFailure='true' index='role-index' start='0' end='`$db.vf-network-role-mapping_length`'>\r
315                             <switch test='`$db.vf-network-role-mapping[$role-index].network-role`'>\r
316                                 <outcome value=''>\r
317                                     <block></block>\r
318                                 </outcome>\r
319                                 <outcome value='null'>\r
320                                     <block></block>\r
321                                 </outcome>\r
322                                 <outcome value='NULL'>\r
323                                     <block></block>\r
324                                 </outcome>\r
325                                 <outcome value='Other'>\r
326                                     <block atomic="true">\r
327                                         <set>\r
328                                             <parameter name='aai.l3-network.' value='' />\r
329                                         </set>\r
330                                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
331                 resource="l3-networks" \r
332                 key="l3-network.network-role = $db.vf-network-role-mapping[$role-index].network-role"\r
333         pfx='aai.l3-network' local-only='false'\r
334 >\r
335                                             <outcome value='not-found'>\r
336                                                 <block>\r
337                                                     <block atomic="true">\r
338                                                         <set>\r
339                                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
340                                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
341                                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
342                                                         </set>\r
343                                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
344                                                     </block>\r
345                                                     <return status='failure'>\r
346                                                         <parameter name='ack-final' value='Y'/>\r
347                                                         <parameter name="error-code" value="500" />\r
348                                                         <parameter name="error-message" value="`'No active l3-network found in AAI with cloud_region_id '\r
349           + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + ' and network_role '\r
350           + $db.vf-network-role-mapping[$network-index].network-role`" />\r
351                                                     </return>\r
352                                                 </block>\r
353                                             </outcome>\r
354                                             <outcome value='failure'>\r
355                                                 <block>\r
356                                                     <block atomic="true">\r
357                                                         <set>\r
358                                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
359                                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
360                                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
361                                                         </set>\r
362                                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
363                                                     </block>\r
364                                                     <return status='failure'>\r
365                                                         <parameter name='ack-final' value='Y'/>\r
366                                                         <parameter name="error-code" value="500" />\r
367                                                         <parameter name="error-message" value="Error retrieving l3-network from AAI" />\r
368                                                     </return>\r
369                                                 </block>\r
370                                             </outcome>\r
371                                         </get-resource>\r
372                                         <set>\r
373                                             <parameter name='l3-network-id' value='-1' />\r
374                                         </set>\r
375                                         <block>\r
376                                             <set>\r
377                                                 <parameter name='found-network' value='false' />\r
378                                             </set>\r
379                                             <for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >\r
380                                                 <block atomic="true">\r
381                                                     <switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>\r
382                                                         <outcome value='PendingCreate'>\r
383                                                             <block></block>\r
384                                                         </outcome>\r
385                                                         <outcome value='Pending Create'>\r
386                                                             <block></block>\r
387                                                         </outcome>\r
388                                                         <outcome value='PendingDelete'>\r
389                                                             <block></block>\r
390                                                         </outcome>\r
391                                                         <outcome value='Pending Delete'>\r
392                                                             <block></block>\r
393                                                         </outcome>\r
394                                                         <outcome value='Other'>\r
395                                                             <for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >\r
396                                                                 <block atomic="true">\r
397                                                                     <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>\r
398                                                                         <outcome value='service-instance'>\r
399                                                                             <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
400                                                                                 <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\r
401                                                                                     <outcome value='service-instance.service-instance-id'>\r
402                                                                                         <set>\r
403                                                                                             <parameter name='network-service-instance-id'\r
404   value='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value`' />\r
405                                                                                         </set>\r
406                                                                                     </outcome>\r
407                                                                                 </switch>\r
408                                                                             </for>\r
409                                                                         </outcome>\r
410                                                                         <outcome value='cloud-region'>\r
411                                                                             <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
412                                                                                 <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\r
413                                                                                     <outcome value='cloud-region.cloud-region-id'>\r
414                                                                                         <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
415                                                                                             <outcome value='true'>\r
416                                                                                                 <block atomic="true">\r
417                                                                                                     <set>\r
418                                                                                                         <parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\r
419                                                                                                     </set>\r
420                                                                                                     <set>\r
421                                                                                                         <parameter name='found-network' value='true' />\r
422                                                                                                     </set>\r
423                                                                                                     <break/>\r
424                                                                                                 </block>\r
425                                                                                             </outcome>\r
426                                                                                         </switch>\r
427                                                                                     </outcome>\r
428                                                                                 </switch>\r
429                                                                             </for>\r
430                                                                         </outcome>\r
431                                                                     </switch>\r
432                                                                     <switch test='`$found-network`'>\r
433                                                                         <outcome value='true'>\r
434                                                                             <break/>\r
435                                                                         </outcome>\r
436                                                                     </switch>\r
437                                                                 </block>\r
438                                                             </for>\r
439                                                         </outcome>\r
440                                                     </switch>\r
441                                                     <switch test='`$found-network`'>\r
442                                                         <outcome value='true'>\r
443                                                             <break/>\r
444                                                         </outcome>\r
445                                                     </switch>\r
446                                                 </block>\r
447                                             </for>\r
448                                         </block>\r
449                                         <switch test='`$l3-network-id`'>\r
450                                             <outcome value='-1'>\r
451                                                 <block>\r
452                                                     <block atomic="true">\r
453                                                         <set>\r
454                                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
455                                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
456                                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
457                                                         </set>\r
458                                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
459                                                     </block>\r
460                                                     <return status='failure'>\r
461                                                         <parameter name='ack-final' value='Y'/>\r
462                                                         <parameter name="error-code" value="500" />\r
463                                                         <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
464                                                     </return>\r
465                                                 </block>\r
466                                             </outcome>\r
467                                         </switch>\r
468                                         <set>\r
469                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'\r
470     value='`$db.vf-network-role-mapping[$role-index].network-role`' />\r
471                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'\r
472     value='`$aai.l3-network.l3-network[$db-network-index].network-name`' />\r
473                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'\r
474     value='`$aai.l3-network.l3-network[$db-network-index].neutron-network-id`' />\r
475                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'\r
476     value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\r
477                                             <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
478     value='`$aai.l3-network.l3-network[$db-network-index].contrail-network-fqdn`' />\r
479                                         </set>\r
480                                         <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet_length`'>\r
481                                             <outcome value=''>\r
482                                                 <set>\r
483                                                     <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
484    value='0' />\r
485                                                 </set>\r
486                                             </outcome>\r
487                                             <outcome value='0'>\r
488                                                 <set>\r
489                                                     <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
490    value='0' />\r
491                                                 </set>\r
492                                             </outcome>\r
493                                             <outcome value='Other'>\r
494                                                 <block>\r
495                                                     <for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet_length`' >\r
496                                                         <block>\r
497                                                             <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role`'>\r
498                                                                 <outcome value=''>\r
499                                                                     <set>\r
500                                                                         <parameter name='aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role' value='NONE' />\r
501                                                                     </set>\r
502                                                                 </outcome>\r
503                                                             </switch>\r
504                                                             <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`'>\r
505                                                                 <outcome value='4'>\r
506                                                                     <set>\r
507                                                                         <parameter name='tmp.ip-version' value='ipv4' />\r
508                                                                     </set>\r
509                                                                 </outcome>\r
510                                                                 <outcome value='6'>\r
511                                                                     <set>\r
512                                                                         <parameter name='tmp.ip-version' value='ipv6' />\r
513                                                                     </set>\r
514                                                                 </outcome>\r
515                                                             </switch>\r
516                                                             <set>\r
517                                                                 <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
518    value='`$tmp.ip-version`' />\r
519                                                                 <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
520    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].neutron-subnet-id`' />\r
521                                                                 <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
522    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-id`' />\r
523                                                                 <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
524    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role`' />\r
525                                                                 <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
526    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-name`' />\r
527                                                                 <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
528    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].network-start-address`' />\r
529                                                                 <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
530    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].gateway-address`' />\r
531                                                                 <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
532    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].cidr-mask`' />\r
533                                                             </set>\r
534                                                             <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].dhcp-enabled`'>\r
535                                                                 <outcome value='true'>\r
536                                                                     <set>\r
537                                                                         <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
538    value='Y' />\r
539                                                                     </set>\r
540                                                                 </outcome>\r
541                                                                 <outcome value='false'>\r
542                                                                     <set>\r
543                                                                         <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
544    value='N' />\r
545                                                                     </set>\r
546                                                                 </outcome>\r
547                                                             </switch>\r
548                                                         </block>\r
549                                                     </for>\r
550                                                     <set>\r
551                                                         <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
552    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet_length`' />\r
553                                                     </set>\r
554                                                 </block>\r
555                                             </outcome>\r
556                                         </switch>\r
557                                         <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
558   key='SELECT * from VNF_RELATED_NETWORK_ROLE where vnf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid\r
559     and network_role = $db.vf-network-role-mapping[$role-index].network-role'\r
560   pfx='db.vnf-related-network-role[]'>\r
561                                             <outcome value='failure'>\r
562                                                 <block>\r
563                                                     <block atomic="true">\r
564                                                         <set>\r
565                                                             <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
566                                                             <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
567                                                             <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
568                                                         </set>\r
569                                                         <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
570                                                     </block>\r
571                                                     <return status='failure'>\r
572                                                         <parameter name='ack-final' value='Y'/>\r
573                                                         <parameter name="error-code" value="500" />\r
574                                                         <parameter name="error-message" value="Error reading VNF_RELATED_NETWORK_ROLE table" />\r
575                                                     </return>\r
576                                                 </block>\r
577                                             </outcome>\r
578                                             <outcome value='success'>\r
579                                                 <block atomic="true">\r
580                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
581                                                         <parameter name="source" value="`$prop.restapi.network-topology-identifier-structure`"/>\r
582                                                         <parameter name="outputPath" value="tmp.part"/>\r
583                                                         <parameter name="target" value="{service-instance-id}"/>\r
584                                                         <parameter name="replacement" value="`$network-service-instance-id`"/>\r
585                                                     </execute>\r
586                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
587                                                         <parameter name="source" value="`$tmp.part`"/>\r
588                                                         <parameter name="outputPath" value="tmp.ntis-url"/>\r
589                                                         <parameter name="target" value="{network-id}"/>\r
590                                                         <parameter name="replacement" value="`$l3-network-id`"/>\r
591                                                     </execute>\r
592                                                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
593                                                         <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ntis-url`' />\r
594                                                         <parameter name='restapiUser' value='`$prop.controller.user`' />\r
595                                                         <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
596                                                         <parameter name='format' value='json' />\r
597                                                         <parameter name='httpMethod' value='GET' />\r
598                                                         <parameter name="responsePrefix" value="mdsal-ntis" />\r
599                                                         <outcome value='failure'>\r
600                                                             <block>\r
601                                                                 <block atomic="true">\r
602                                                                     <set>\r
603                                                                         <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
604                                                                         <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
605                                                                         <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
606                                                                     </set>\r
607                                                                     <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
608                                                                 </block>\r
609                                                                 <return status='failure'>\r
610                                                                     <parameter name='ack-final' value='Y'/>\r
611                                                                     <parameter name="error-code" value="500" />\r
612                                                                     <parameter name="error-message" value="`\r
613     'Error retrieving network-topology-identifier-structure for service instance '\r
614     + $network-service-instance-id\r
615     + ' and network-id '\r
616     + $l3-network-id`" />\r
617                                                                 </return>\r
618                                                             </block>\r
619                                                         </outcome>\r
620                                                     </execute>\r
621                                                     <set>\r
622                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].is-trunked'\r
623     value='`$mdsal-ntis.network-topology-identifier-structure.is-trunked`' />\r
624                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].segmentation-id'\r
625     value='`$mdsal-ntis.network-topology-identifier-structure.segmentation-id`' />\r
626                                                     </set>\r
627                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
628       resource="custom-query"\r
629       key="format = 'resource'"\r
630       force="true"\r
631       local-only="false"\r
632       pfx="tmp.AnAI-data.oe">\r
633                                                         <parameter name="start[0]" value="`'nodes/service-instances/service-instance?service-instance-id=' + $network-service-instance-id `" />\r
634                                                         <parameter name="start_length" value="1" />\r
635                                                         <parameter name="query" value="/query/owning-entity-fromService-instance" />\r
636                                                         <outcome value='failure'>\r
637                                                             <block>\r
638                                                                 <block atomic="true">\r
639                                                                     <set>\r
640                                                                         <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
641                                                                         <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
642                                                                         <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
643                                                                     </set>\r
644                                                                     <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
645                                                                 </block>\r
646                                                                 <return status='failure'>\r
647                                                                     <parameter name='ack-final' value='Y'/>\r
648                                                                     <parameter name="error-code" value="500" />\r
649                                                                     <parameter name="error-message" value="Error getting owning entity from service instance" />\r
650                                                                 </return>\r
651                                                             </block>\r
652                                                         </outcome>\r
653                                                         <outcome value='not-found'>\r
654                                                             <block>\r
655                                                                 <block atomic="true">\r
656                                                                     <set>\r
657                                                                         <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
658                                                                         <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
659                                                                         <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
660                                                                     </set>\r
661                                                                     <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
662                                                                 </block>\r
663                                                                 <return status='failure'>\r
664                                                                     <parameter name='ack-final' value='Y'/>\r
665                                                                     <parameter name="error-code" value="500" />\r
666                                                                     <parameter name="error-message" value="Unable to find owning entity from service instance" />\r
667                                                                 </return>\r
668                                                             </block>\r
669                                                         </outcome>\r
670                                                     </save>\r
671                                                     <set>\r
672                                                         <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
673                                                     </set>\r
674                                                     <switch test='`$rn-index`'>\r
675                                                         <outcome value=''>\r
676                                                             <set>\r
677                                                                 <parameter name='rn-index' value='0' />\r
678                                                             </set>\r
679                                                         </outcome>\r
680                                                     </switch>\r
681                                                     <for index='rel-network-role-index' start='0' end='`$db.vnf-related-network-role_length`' >\r
682                                                         <block atomic="true">\r
683                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
684       resource="custom-query"\r
685       key="format = 'resource'"\r
686       force="true"\r
687       local-only="false"\r
688       pfx="tmp.AnAI-data.get-networks">\r
689                                                                 <parameter name="start[0]" value="`'/business/owning-entities/owning-entity/' + $tmp.AnAI-data.oe.results[0].owning-entity.owning-entity-id `" />\r
690                                                                 <parameter name="start_length" value="1" />\r
691                                                                 <parameter name="query" value="`'/query/getNetworks?networkRole=' + $db.vnf-related-network-role[$rel-network-role-index].related-network-role\r
692   + '&amp;cloudRegionId=' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
693                                                                 <outcome value='failure'>\r
694                                                                     <block>\r
695                                                                         <block atomic="true">\r
696                                                                             <set>\r
697                                                                                 <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
698                                                                                 <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
699                                                                                 <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
700                                                                             </set>\r
701                                                                             <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
702                                                                         </block>\r
703                                                                         <return status='failure'>\r
704                                                                             <parameter name='ack-final' value='Y'/>\r
705                                                                             <parameter name="error-code" value="500" />\r
706                                                                             <parameter name="error-message" value="Error calling getNetworks custom query in AAI" />\r
707                                                                         </return>\r
708                                                                     </block>\r
709                                                                 </outcome>\r
710                                                                 <outcome value='not-found'>\r
711                                                                     <block>\r
712                                                                         <block atomic="true">\r
713                                                                             <set>\r
714                                                                                 <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
715                                                                                 <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
716                                                                                 <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
717                                                                             </set>\r
718                                                                             <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
719                                                                         </block>\r
720                                                                         <return status='failure'>\r
721                                                                             <parameter name='ack-final' value='Y'/>\r
722                                                                             <parameter name="error-code" value="500" />\r
723                                                                             <parameter name="error-message" value="`'No l3-network returned from getNetworks custom query for related network role '\r
724       + $db.vnf-related-network-role[0].related-network-role`" />\r
725                                                                         </return>\r
726                                                                     </block>\r
727                                                                 </outcome>\r
728                                                             </save>\r
729                                                             <set>\r
730                                                                 <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
731   value='`$tmp.AnAI-data.get-networks.results[0].l3-network.network-id`' />\r
732                                                                 <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
733   value='`$tmp.AnAI-data.get-networks.results[0].l3-network.network-role`' />\r
734                                                             </set>\r
735                                                             <for index='rel-index' start='0' end='`$tmp.AnAI-data.get-networks.results[0].l3-network.relationship-list.relationship_length`' >\r
736                                                                 <switch test='`$tmp.AnAI-data.get-networks.results[0].l3-network.relationship-list.relationship[$rel-index].related-to`'>\r
737                                                                     <outcome value='vlan-tag'>\r
738                                                                         <block atomic="true">\r
739                                                                             <set>\r
740                                                                                 <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
741                                                                             </set>\r
742                                                                             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
743                 resource="vlan-tag" \r
744                 key="vlan-tag.vlan-tag-id = $vlan-tag-id"\r
745         pfx='aai.vlan-tag' local-only='false'\r
746 >\r
747                                                                                 <outcome value='failure'>\r
748                                                                                     <block>\r
749                                                                                         <block atomic="true">\r
750                                                                                             <set>\r
751                                                                                                 <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
752                                                                                                 <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
753                                                                                                 <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
754                                                                                             </set>\r
755                                                                                             <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
756                                                                                         </block>\r
757                                                                                         <return status='failure'>\r
758                                                                                             <parameter name='ack-final' value='Y'/>\r
759                                                                                             <parameter name="error-code" value="500" />\r
760                                                                                             <parameter name="error-message" value="Error getting vlan-tag object from AAI" />\r
761                                                                                         </return>\r
762                                                                                     </block>\r
763                                                                                 </outcome>\r
764                                                                                 <outcome value='success'>\r
765                                                                                     <set>\r
766                                                                                         <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
767   value='`$aai.vlan-tag.vlan-tag-id`' />\r
768                                                                                         <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
769   value='`$aai.vlan-tag.vlan-id-outer`' />\r
770                                                                                         <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
771   value='`$aai.vlan-tag.vlan-id-inner`' />\r
772                                                                                         <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
773   value='`$aai.vlan-tag.is-private`' />\r
774                                                                                     </set>\r
775                                                                                 </outcome>\r
776                                                                             </get-resource>\r
777                                                                             <break/>\r
778                                                                         </block>\r
779                                                                     </outcome>\r
780                                                                 </switch>\r
781                                                             </for>\r
782                                                         </block>\r
783                                                     </for>\r
784                                                     <set>\r
785                                                         <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
786   value='`$rn-index + 1`' />\r
787                                                     </set>\r
788                                                 </block>\r
789                                             </outcome>\r
790                                         </get-resource>\r
791                                         <set>\r
792                                             <parameter name='network-index' value='`$network-index + 1`' />\r
793                                         </set>\r
794                                     </block>\r
795                                 </outcome>\r
796                             </switch>\r
797                         </for>\r
798                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
799                             <parameter name='filename' value='/var/tmp/bgb-vnfa.log' />\r
800                         </execute>\r
801                         <set>\r
802                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\r
803   value='`$network-index`' />\r
804                         </set>\r
805                         <set>\r
806                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\r
807   value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />\r
808                         </set>\r
809                         <set>\r
810                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'\r
811    value='`$db.vf-model.avail-zone-max-count`' />\r
812                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'\r
813    value='`$aai.cloud-region.availability-zones.availability-zone_length`' />\r
814                         </set>\r
815                         <set>\r
816                             <parameter name='vnf-object-path'\r
817  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
818  + $vnf-topology-operation-input.service-information.service-instance-id\r
819  + '/service-data/vnfs/vnf/'\r
820  + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
821  + '/vnf-data/vnf-topology/'`"/>\r
822                             <parameter name='service-object-path'\r
823  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
824  + $vnf-topology-operation-input.service-information.service-instance-id\r
825  + '/service-data/service-topology/'`"/>\r
826                         </set>\r
827                         <for silentFailure='true' index='inst-group-index' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids_length`' >\r
828                             <block atomic="true">\r
829                                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
830    resource="generic-vnf:relationship-list"\r
831    key="generic-vnf.vnf-id = $vnf-topology-operation-input.vnf-information.vnf-id"\r
832    force="true" pfx="tmp.AnAI-data">\r
833                                     <parameter name="relationship-list.relationship[0].related-to" value="instance-group" />\r
834                                     <parameter name="relationship-list.relationship[0].related-link"\r
835       value="`'/aai/v$/network/instance-groups/instance-group/'\r
836         + $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id`" />\r
837                                     <outcome value='failure'>\r
838                                         <block>\r
839                                             <block atomic="true">\r
840                                                 <set>\r
841                                                     <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
842                                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
843                                                     <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
844                                                 </set>\r
845                                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
846                                             </block>\r
847                                             <return status='failure'>\r
848                                                 <parameter name='ack-final' value='Y'/>\r
849                                                 <parameter name="error-code" value="500" />\r
850                                                 <parameter name="error-message" value="Error updating relationship in generic-vnf in AAI" />\r
851                                             </return>\r
852                                         </block>\r
853                                     </outcome>\r
854                                     <outcome value='not-found'>\r
855                                         <block>\r
856                                             <block atomic="true">\r
857                                                 <set>\r
858                                                     <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
859                                                     <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
860                                                     <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
861                                                 </set>\r
862                                                 <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
863                                             </block>\r
864                                             <return status='failure'>\r
865                                                 <parameter name='ack-final' value='Y'/>\r
866                                                 <parameter name="error-code" value="500" />\r
867                                                 <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
868                                             </return>\r
869                                         </block>\r
870                                     </outcome>\r
871                                 </save>\r
872                             </block>\r
873                         </for>\r
874                         <set>\r
875                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
876                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
877                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
878                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\r
879                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\r
880                         </set>\r
881                         <set>\r
882                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\r
883                             <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
884                             <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
885                         </set>\r
886                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
887                             <parameter name='filename' value='/var/tmp/bgb-vnf.log' />\r
888                         </execute>\r
889                         <return status='success'>\r
890                             <parameter name="ack-final-indicator" value="Y" />\r
891                             <parameter name="error-code" value="200" />\r
892                             <parameter name="error-message" value="`$error-message`" />\r
893                         </return>\r
894                     </block>\r
895                 </outcome>\r
896             </switch>\r
897         </block>\r
898     </method>\r
899 </service-logic>