Generic resource API DG catch up
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_vf-module-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='vf-module-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='`$vf-module-topology-operation-input.request-information.request-action`'>\r
11                 <outcome value='CreateVfModuleInstance'>\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 'CreateVfModuleInstance'" />\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_MODULE_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\r
24   pfx='db.vf-module-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_MODULE_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 VF module customization UUID ' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`" />\r
37                     </return>\r
38                 </outcome>\r
39             </get-resource>\r
40             <set>\r
41                 <parameter name='vnf-index' value='-1' />\r
42             </set>\r
43             <switch test='`$service-data.vnfs.vnf_length`'>\r
44                 <outcome value=''>\r
45                     <return status='failure'>\r
46                         <parameter name='ack-final' value='Y'/>\r
47                         <parameter name="error-code" value="500" />\r
48                         <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
49                     </return>\r
50                 </outcome>\r
51                 <outcome value='Other'>\r
52                     <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
53                         <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
54                             <outcome value='true'>\r
55                                 <block>\r
56                                     <set>\r
57                                         <parameter name='vnf-index' value='`$idx`' />\r
58                                     </set>\r
59                                     <break/>\r
60                                 </block>\r
61                             </outcome>\r
62                         </switch>\r
63                     </for>\r
64                 </outcome>\r
65             </switch>\r
66             <switch test='`$vnf-index`'>\r
67                 <outcome value='-1'>\r
68                     <return status='failure'>\r
69                         <parameter name='ack-final' value='Y'/>\r
70                         <parameter name="error-code" value="500" />\r
71                         <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />\r
72                     </return>\r
73                 </outcome>\r
74             </switch>\r
75             <block atomic="true">\r
76                 <set>\r
77                     <parameter name='tmp.exist.sdnc-model-name' value='false' />\r
78                     <parameter name='tmp.exist.vf_module_label' value='false' />\r
79                 </set>\r
80                 <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
81                     <outcome value=''>\r
82                         <set>\r
83                             <parameter name='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length' value='0' />\r
84                         </set>\r
85                     </outcome>\r
86                 </switch>\r
87                 <for silentFailure='true' index='p' start='0' end='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
88                     <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$p].name`">\r
89                         <outcome value='sdnc_model_name'>\r
90                             <set>\r
91                                 <parameter name='tmp.exist.sdnc-model-name' value='true' />\r
92                             </set>\r
93                         </outcome>\r
94                         <outcome value='vf_module_label'>\r
95                             <set>\r
96                                 <parameter name='tmp.exist.vf_module_label' value='true' />\r
97                             </set>\r
98                         </outcome>\r
99                     </switch>\r
100                 </for>\r
101             </block>\r
102             <switch test="`$tmp.exist.sdnc-model-name == 'true' and $tmp.exist.vf_module_label == 'true'`">\r
103                 <outcome value='true'>\r
104                     <block atomic="true">\r
105                         <call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-assign' mode='sync' >\r
106                             <outcome value='failure'>\r
107                                 <return status='failure'>\r
108                                     <parameter name='ack-final' value='Y'/>\r
109                                     <parameter name="error-code" value="500" />\r
110                                     <parameter name="error-message" value="`'Failed to create self-serve assignment for vf-module with vf-module-id=' + $vf-module-topology-operation-input.vf-module-information.vf-module-id`" />\r
111                                 </return>\r
112                             </outcome>\r
113                         </call>\r
114                         <set>\r
115                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
116   value='PendingCreate' />\r
117                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
118   value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
119                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
120   value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
121                         </set>\r
122                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
123                             <parameter name='filename' value='/var/tmp/ss-vnfend.log' />\r
124                         </execute>\r
125                         <return status='success'>\r
126                             <parameter name="ack-final-indicator" value="Y" />\r
127                             <parameter name="error-code" value="200" />\r
128                             <parameter name="error-message" value="`$error-message`" />\r
129                         </return>\r
130                     </block>\r
131                 </outcome>\r
132                 <outcome value='false'>\r
133                     <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
134   key='SELECT sdnc_model_name from VF_MODEL \r
135         WHERE customization_uuid = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.onap-model-information.model-customization-uuid \r
136         AND sdnc_model_name is not null'\r
137   pfx='db.vf-model-name'>\r
138                         <outcome value='failure'>\r
139                             <return status='failure'>\r
140                                 <parameter name='ack-final' value='Y'/>\r
141                                 <parameter name="error-code" value="500" />\r
142                                 <parameter name="error-message" value="Error reading VF_MODEL table" />\r
143                             </return>\r
144                         </outcome>\r
145                         <outcome value='success'>\r
146                             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
147   key='SELECT vf_module_label from VF_MODULE_MODEL \r
148         WHERE vf_customization_uuid = $vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid\r
149         AND vf_module_label is not null '\r
150   pfx='db.vf-module-label'>\r
151                                 <outcome value='success'>\r
152                                     <block atomic="true">\r
153                                         <call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-assign' mode='sync' >\r
154                                             <outcome value='failure'>\r
155                                                 <return status='failure'>\r
156                                                     <parameter name='ack-final' value='Y'/>\r
157                                                     <parameter name="error-code" value="500" />\r
158                                                     <parameter name="error-message" value="`'Failed to create self-serve assignment for vf-module with vf-module-id=' + $vf-module-topology-operation-input.vf-module-information.vf-module-id`" />\r
159                                                 </return>\r
160                                             </outcome>\r
161                                         </call>\r
162                                         <set>\r
163                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
164   value='PendingCreate' />\r
165                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
166   value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
167                                             <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
168   value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
169                                         </set>\r
170                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
171                                             <parameter name='filename' value='/var/tmp/ss-vnfend.log' />\r
172                                         </execute>\r
173                                         <return status='success'>\r
174                                             <parameter name="ack-final-indicator" value="Y" />\r
175                                             <parameter name="error-code" value="200" />\r
176                                             <parameter name="error-message" value="`$error-message`" />\r
177                                         </return>\r
178                                     </block>\r
179                                 </outcome>\r
180                                 <outcome value='failure'>\r
181                                     <return status='failure'>\r
182                                         <parameter name='ack-final' value='Y'/>\r
183                                         <parameter name="error-code" value="500" />\r
184                                         <parameter name="error-message" value="Error reading VF_MODULE_MODEL table" />\r
185                                     </return>\r
186                                 </outcome>\r
187                                 <outcome value='not-found'>\r
188                                     <block atomic="true">\r
189                                         <block atomic="true">\r
190                                             <switch test='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`'>\r
191                                                 <outcome value=''>\r
192                                                     <return status='failure'>\r
193                                                         <parameter name='ack-final' value='Y'/>\r
194                                                         <parameter name="error-code" value="500" />\r
195                                                         <parameter name="error-message" value="vf-module-information.vf-module-request-input.vf-module-name is a required input" />\r
196                                                     </return>\r
197                                                 </outcome>\r
198                                             </switch>\r
199                                             <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
200                                                 <outcome value=''>\r
201                                                     <set>\r
202                                                         <parameter name='vf-module-index' value='0' />\r
203                                                     </set>\r
204                                                 </outcome>\r
205                                                 <outcome value='Other'>\r
206                                                     <block>\r
207                                                         <set>\r
208                                                             <parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
209                                                         </set>\r
210                                                         <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
211                                                             <switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\r
212                                                                 <outcome value='true'>\r
213                                                                     <return status='failure'>\r
214                                                                         <parameter name='ack-final' value='Y'/>\r
215                                                                         <parameter name="error-code" value="500" />\r
216                                                                         <parameter name="error-message" value="`'VF module id ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id\r
217        + ' already exists, and status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
218                                                                     </return>\r
219                                                                 </outcome>\r
220                                                             </switch>\r
221                                                         </for>\r
222                                                     </block>\r
223                                                 </outcome>\r
224                                             </switch>\r
225                                             <set>\r
226                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\r
227                                             </set>\r
228                                             <set>\r
229                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\r
230    value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
231                                             </set>\r
232                                             <set>\r
233                                                 <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
234                                                 <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\r
235                                                 <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-type' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\r
236                                                 <parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\r
237                                                 <parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\r
238                                             </set>\r
239                                             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
240                 resource="cloud-region" \r
241                 key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
242                      cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region"\r
243         pfx='aai.cloud-region' local-only='false' >\r
244                                                 <outcome value='not-found'>\r
245                                                     <return status='failure'>\r
246                                                         <parameter name='ack-final' value='Y'/>\r
247                                                         <parameter name="error-code" value="500" />\r
248                                                         <parameter name="error-message" value="Cloud region not found in AAI" />\r
249                                                     </return>\r
250                                                 </outcome>\r
251                                                 <outcome value='failure'>\r
252                                                     <return status='failure'>\r
253                                                         <parameter name='ack-final' value='Y'/>\r
254                                                         <parameter name="error-code" value="500" />\r
255                                                         <parameter name="error-message" value="Error retrieving cloud region from AAI" />\r
256                                                     </return>\r
257                                                 </outcome>\r
258                                             </get-resource>\r
259                                             <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
260                                                 <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
261                                                     <outcome value='complex'>\r
262                                                         <block atomic="true">\r
263                                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
264                                                                 <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
265                                                                 <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
266                                                                 <parameter name='regex' value='/' />\r
267                                                             </execute>\r
268                                                             <set>\r
269                                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\r
270    value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\r
271                                                             </set>\r
272                                                             <break/>\r
273                                                         </block>\r
274                                                     </outcome>\r
275                                                 </switch>\r
276                                             </for>\r
277                                             <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli`'>\r
278                                                 <outcome value=''>\r
279                                                     <return status='failure'>\r
280                                                         <parameter name='ack-final' value='Y'/>\r
281                                                         <parameter name="error-code" value="500" />\r
282                                                         <parameter name="error-message" value="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`" />\r
283                                                     </return>\r
284                                                 </outcome>\r
285                                             </switch>\r
286                                             <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\r
287                                                 <outcome value=''>\r
288                                                     <set>\r
289                                                         <parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
290   value='`$db.vf-module-model.invariant-uuid`' />\r
291                                                     </set>\r
292                                                 </outcome>\r
293                                                 <outcome value='Other'>\r
294                                                     <set>\r
295                                                         <parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
296   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
297                                                     </set>\r
298                                                 </outcome>\r
299                                             </switch>\r
300                                             <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\r
301                                                 <outcome value=''>\r
302                                                     <set>\r
303                                                         <parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
304   value='`$db.vf-module-model.uuid`' />\r
305                                                     </set>\r
306                                                 </outcome>\r
307                                                 <outcome value='Other'>\r
308                                                     <set>\r
309                                                         <parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
310   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />\r
311                                                     </set>\r
312                                                 </outcome>\r
313                                             </switch>\r
314                                             <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\r
315                                                 <outcome value=''>\r
316                                                     <set>\r
317                                                         <parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
318   value='`$db.vf-module-model.version`' />\r
319                                                     </set>\r
320                                                 </outcome>\r
321                                                 <outcome value='Other'>\r
322                                                     <set>\r
323                                                         <parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
324   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
325                                                     </set>\r
326                                                 </outcome>\r
327                                             </switch>\r
328                                             <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\r
329                                                 <outcome value=''>\r
330                                                     <set>\r
331                                                         <parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
332   value='`$db.vf-module-model.name`' />\r
333                                                     </set>\r
334                                                 </outcome>\r
335                                                 <outcome value='Other'>\r
336                                                     <set>\r
337                                                         <parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
338   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />\r
339                                                     </set>\r
340                                                 </outcome>\r
341                                             </switch>\r
342                                             <set>\r
343                                                 <parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'\r
344   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
345                                             </set>\r
346                                             <set>\r
347                                                 <parameter name='tmp.vf-module-topology.vf-module-parameters.'\r
348   value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />\r
349                                             </set>\r
350                                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
351                                                 <parameter name='restapiUrl' value="`$prop.controller.url + $prop.restapi.preloadinformation + $vf-module-topology-operation-input.vf-module-request-input.vf-module-name + '/vf-module'`" />\r
352                                                 <parameter name='restapiUser' value='`$prop.controller.user`' />\r
353                                                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
354                                                 <parameter name='format' value='json' />\r
355                                                 <parameter name='httpMethod' value='GET' />\r
356                                                 <parameter name="responsePrefix" value="mdsal-preload" />\r
357                                                 <outcome value='failure'>\r
358                                                     <block>\r
359                                                         <switch test='`$mdsal-preload.response-code`'>\r
360                                                             <outcome value='404'>\r
361                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign-no-preload' mode='sync' >\r
362                                                                     <outcome value='failure'>\r
363                                                                         <return status='failure'></return>\r
364                                                                     </outcome>\r
365                                                                 </call>\r
366                                                             </outcome>\r
367                                                             <outcome value='Other'>\r
368                                                                 <return status='failure'>\r
369                                                                     <parameter name='ack-final' value='Y'/>\r
370                                                                     <parameter name="error-code" value="500" />\r
371                                                                     <parameter name="error-message" value="Error retrieving preload-information" />\r
372                                                                 </return>\r
373                                                             </outcome>\r
374                                                         </switch>\r
375                                                     </block>\r
376                                                 </outcome>\r
377                                                 <outcome value='success'>\r
378                                                     <block>\r
379                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign-preload' mode='sync' >\r
380                                                             <outcome value='failure'>\r
381                                                                 <return status='failure'></return>\r
382                                                             </outcome>\r
383                                                         </call>\r
384                                                     </block>\r
385                                                 </outcome>\r
386                                             </execute>\r
387                                             <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
388                                                 <block atomic="true">\r
389                                                     <for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
390                                                         <for silentFailure='true' index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data_length`' >\r
391                                                             <block>\r
392                                                                 <set>\r
393                                                                     <parameter name='tmp.network-role' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-network-role`' />\r
394                                                                 </set>\r
395                                                                 <set>\r
396                                                                     <parameter name='found-network-role' value='false' />\r
397                                                                 </set>\r
398                                                                 <for index='vnf-network-index' start='0'\r
399   end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
400                                                                     <switch test='`$tmp.network-role\r
401   == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`'>\r
402                                                                         <outcome value='true'>\r
403                                                                             <block>\r
404                                                                                 <set>\r
405                                                                                     <parameter name='found-network-role' value='true' />\r
406                                                                                 </set>\r
407                                                                                 <break/>\r
408                                                                             </block>\r
409                                                                         </outcome>\r
410                                                                     </switch>\r
411                                                                 </for>\r
412                                                                 <switch test='`$found-network-role`'>\r
413                                                                     <outcome value='false'>\r
414                                                                         <block atomic="true">\r
415                                                                             <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
416                                                                             <return status='failure'>\r
417                                                                                 <parameter name='ack-final' value='Y'/>\r
418                                                                                 <parameter name="error-code" value="500" />\r
419                                                                                 <parameter name="error-message"\r
420       value="`'Cannot find VNF network role ' + $tmp.network-role`" />\r
421                                                                             </return>\r
422                                                                         </block>\r
423                                                                     </outcome>\r
424                                                                 </switch>\r
425                                                                 <set>\r
426                                                                     <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id'\r
427   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-id`' />\r
428                                                                 </set>\r
429                                                                 <for index='subnet-role-index' start='0'\r
430   end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length`' >\r
431                                                                     <for index='address-family-index' start='0'\r
432   end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length`' >\r
433                                                                         <block atomic="true">\r
434                                                                             <set>\r
435                                                                                 <parameter name='tmp.address-family'\r
436   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-address-family`' />\r
437                                                                                 <parameter name='tmp.subnet-role'\r
438   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-subnet-role`' />\r
439                                                                             </set>\r
440                                                                             <set>\r
441                                                                                 <parameter name='found-subnet' value='false' />\r
442                                                                             </set>\r
443                                                                             <for silentFailure='true' index='vnf-address-family-index' start='0'\r
444   end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
445                                                                                 <switch test='`$tmp.address-family\r
446   == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\r
447                                                                                     <outcome value='true'>\r
448                                                                                         <switch test='`$tmp.subnet-role\r
449   == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].subnet-role`'>\r
450                                                                                             <outcome value='true'>\r
451                                                                                                 <block>\r
452                                                                                                     <set>\r
453                                                                                                         <parameter name='found-subnet' value='true' />\r
454                                                                                                     </set>\r
455                                                                                                     <break/>\r
456                                                                                                 </block>\r
457                                                                                             </outcome>\r
458                                                                                         </switch>\r
459                                                                                     </outcome>\r
460                                                                                 </switch>\r
461                                                                             </for>\r
462                                                                             <switch test='`$found-subnet`'>\r
463                                                                                 <outcome value='false'>\r
464                                                                                     <block atomic="true">\r
465                                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
466                                                                                         <return status='failure'>\r
467                                                                                             <parameter name='ack-final' value='Y'/>\r
468                                                                                             <parameter name="error-code" value="500" />\r
469                                                                                             <parameter name="error-message" value="`'Cannot find VNF address family '\r
470       + $tmp.address-family\r
471       + ' for subnet role '\r
472       + $tmp.subnet-role`" />\r
473                                                                                         </return>\r
474                                                                                     </block>\r
475                                                                                 </outcome>\r
476                                                                             </switch>\r
477                                                                             <set>\r
478                                                                                 <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].subnet-id'\r
479   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\r
480                                                                             </set>\r
481                                                                         </block>\r
482                                                                     </for>\r
483                                                                 </for>\r
484                                                             </block>\r
485                                                         </for>\r
486                                                     </for>\r
487                                                     <for silentFailure='true' index='vm-network-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
488                                                         <block>\r
489                                                             <set>\r
490                                                                 <parameter name='tmp.network-role' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-role`' />\r
491                                                             </set>\r
492                                                             <for index='vnf-network-index' start='0'\r
493   end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
494                                                                 <switch test='`$tmp.network-role\r
495   == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`'>\r
496                                                                     <outcome value='true'>\r
497                                                                         <break/>\r
498                                                                     </outcome>\r
499                                                                 </switch>\r
500                                                             </for>\r
501                                                             <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length &gt; 0`'>\r
502                                                                 <outcome value='true'>\r
503                                                                     <block atomic="true">\r
504                                                                         <set>\r
505                                                                             <parameter name='tmp.address-family' value='ipv4' />\r
506                                                                         </set>\r
507                                                                         <set>\r
508                                                                             <parameter name='found-address-family' value='false' />\r
509                                                                         </set>\r
510                                                                         <for silentFailure='true' index='vnf-address-family-index' start='0'\r
511   end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
512                                                                             <switch test='`$tmp.address-family\r
513   == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\r
514                                                                                 <outcome value='true'>\r
515                                                                                     <block>\r
516                                                                                         <set>\r
517                                                                                             <parameter name='found-address-family' value='true' />\r
518                                                                                         </set>\r
519                                                                                         <break/>\r
520                                                                                     </block>\r
521                                                                                 </outcome>\r
522                                                                             </switch>\r
523                                                                         </for>\r
524                                                                         <switch test='`$found-address-family`'>\r
525                                                                             <outcome value='false'>\r
526                                                                                 <block atomic="true">\r
527                                                                                     <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
528                                                                                     <return status='failure'>\r
529                                                                                         <parameter name='ack-final' value='Y'/>\r
530                                                                                         <parameter name="error-code" value="500" />\r
531                                                                                         <parameter name="error-message" value="`'Cannot find VNF address family '\r
532       + $tmp.address-family\r
533       + ' for network role '\r
534       + $tmp.network-role`" />\r
535                                                                                     </return>\r
536                                                                                 </block>\r
537                                                                             </outcome>\r
538                                                                         </switch>\r
539                                                                         <set>\r
540                                                                             <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv4-subnet-id'\r
541   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\r
542                                                                         </set>\r
543                                                                     </block>\r
544                                                                 </outcome>\r
545                                                             </switch>\r
546                                                             <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length &gt; 0`'>\r
547                                                                 <outcome value='true'>\r
548                                                                     <block atomic="true">\r
549                                                                         <set>\r
550                                                                             <parameter name='tmp.address-family' value='ipv6' />\r
551                                                                         </set>\r
552                                                                         <set>\r
553                                                                             <parameter name='found-address-family' value='false' />\r
554                                                                         </set>\r
555                                                                         <for silentFailure='true' index='vnf-address-family-index' start='0'\r
556   end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
557                                                                             <switch test='`$tmp.address-family\r
558   == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\r
559                                                                                 <outcome value='true'>\r
560                                                                                     <block>\r
561                                                                                         <set>\r
562                                                                                             <parameter name='found-address-family' value='true' />\r
563                                                                                         </set>\r
564                                                                                         <break/>\r
565                                                                                     </block>\r
566                                                                                 </outcome>\r
567                                                                             </switch>\r
568                                                                         </for>\r
569                                                                         <switch test='`$found-address-family`'>\r
570                                                                             <outcome value='false'>\r
571                                                                                 <block atomic="true">\r
572                                                                                     <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
573                                                                                     <return status='failure'>\r
574                                                                                         <parameter name='ack-final' value='Y'/>\r
575                                                                                         <parameter name="error-code" value="500" />\r
576                                                                                         <parameter name="error-message" value="`'Cannot find VNF address family '\r
577       + $tmp.address-family\r
578       + ' for network role '\r
579       + $tmp.network-role`" />\r
580                                                                                     </return>\r
581                                                                                 </block>\r
582                                                                             </outcome>\r
583                                                                         </switch>\r
584                                                                         <set>\r
585                                                                             <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv6-subnet-id'\r
586   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\r
587                                                                         </set>\r
588                                                                     </block>\r
589                                                                 </outcome>\r
590                                                             </switch>\r
591                                                         </block>\r
592                                                     </for>\r
593                                                 </block>\r
594                                             </for>\r
595                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
596                                                 <parameter name='filename' value='/var/tmp/bgb-vfmoduleb.log' />\r
597                                             </execute>\r
598                                             <set>\r
599                                                 <parameter name='vf-module-object-path'\r
600  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
601  + $service-data.service-topology.service-topology-identifier.service-instance-id\r
602  + '/service-data/vnfs/vnf/'\r
603  + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
604  + '/vnf-data/vf-modules/vf-module/'\r
605  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
606  + '/vf-module-data/vf-module-topology/'`"/>\r
607                                             </set>\r
608                                             <switch test='`$from-preload`'>\r
609                                                 <outcome value='false'>\r
610                                                     <set>\r
611                                                         <parameter name='automated-assignment' value='true' />\r
612                                                     </set>\r
613                                                 </outcome>\r
614                                                 <outcome value='true'>\r
615                                                     <set>\r
616                                                         <parameter name='automated-assignment' value='false' />\r
617                                                     </set>\r
618                                                 </outcome>\r
619                                             </switch>\r
620                                             <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
621    resource="vf-module"\r
622    key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
623       AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
624    force="true" pfx="tmp.AnAI-data">\r
625                                                 <parameter name="vf-module-name" value="`$tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name`" />\r
626                                                 <parameter name="model-invariant-id" value="`$tmp.vf-module-topology.onap-model-information.model-invariant-uuid`" />\r
627                                                 <parameter name="model-version-id" value="`$tmp.vf-module-topology.onap-model-information.model-uuid`" />\r
628                                                 <parameter name="model-customization-id" value="`$tmp.vf-module-topology.onap-model-information.model-customization-uuid`" />\r
629                                                 <parameter name="selflink" value="`$vf-module-object-path`" />\r
630                                                 <parameter name="automated-assignment" value="`$automated-assignment`" />\r
631                                                 <outcome value='failure'>\r
632                                                     <block atomic="true">\r
633                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
634                                                         <return status='failure'>\r
635                                                             <parameter name='ack-final' value='Y'/>\r
636                                                             <parameter name="error-code" value="500" />\r
637                                                             <parameter name="error-message" value="Error updating vf-module in AAI" />\r
638                                                         </return>\r
639                                                     </block>\r
640                                                 </outcome>\r
641                                                 <outcome value='not-found'>\r
642                                                     <block atomic="true">\r
643                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
644                                                         <return status='failure'>\r
645                                                             <parameter name='ack-final' value='Y'/>\r
646                                                             <parameter name="error-code" value="500" />\r
647                                                             <parameter name="error-message" value="`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
648                                                         </return>\r
649                                                     </block>\r
650                                                 </outcome>\r
651                                             </update>\r
652                                             <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
653                                                 <block atomic="true">\r
654                                                     <for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
655                                                         <block atomic="true">\r
656                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
657         resource="vnfc" \r
658         key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name" >\r
659                                                                 <parameter name="vnfc-name" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
660                                                                 <parameter name="nfc-naming-code" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code`" />\r
661                                                                 <parameter name="nfc-function" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-function`" />\r
662                                                                 <parameter name="model-invariant-id" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].invariant-uuid`" />\r
663                                                                 <parameter name="model-version-id" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].uuid`" />\r
664                                                                 <parameter name="orchestration-status" value="`PendingCreate`" />\r
665                                                                 <parameter name="prov-status" value="`PREPROV`" />\r
666                                                                 <outcome value='failure'>\r
667                                                                     <block atomic="true">\r
668                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
669                                                                         <return status='failure'>\r
670                                                                             <parameter name='ack-final' value='Y'/>\r
671                                                                             <parameter name="error-code" value="500" />\r
672                                                                             <parameter name="error-message" value="Error saving vnfc to AAI" />\r
673                                                                         </return>\r
674                                                                     </block>\r
675                                                                 </outcome>\r
676                                                                 <outcome value='not-found'>\r
677                                                                     <block atomic="true">\r
678                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
679                                                                         <return status='failure'>\r
680                                                                             <parameter name='ack-final' value='Y'/>\r
681                                                                             <parameter name="error-code" value="500" />\r
682                                                                             <parameter name="error-message" value="Error saving vnfc to AAI" />\r
683                                                                         </return>\r
684                                                                     </block>\r
685                                                                 </outcome>\r
686                                                             </save>\r
687                                                             <set>\r
688                                                                 <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].created_flag' value='true' />\r
689                                                             </set>\r
690                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
691    resource="vnfc:relationship-list"\r
692    key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name"\r
693    force="true" pfx="tmp.AnAI-data">\r
694                                                                 <parameter name="relationship-list.relationship[0].related-to" value="generic-vnf" />\r
695                                                                 <parameter name="relationship-list.relationship[0].related-link"\r
696       value="`'/aai/v$/network/generic-vnfs/generic-vnf/' +\r
697         $vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
698                                                                 <parameter name="relationship-list.relationship[1].related-to" value="vf-module" />\r
699                                                                 <parameter name="relationship-list.relationship[1].related-link"\r
700       value="`'/aai/v$/network/generic-vnfs/generic-vnf/' +\r
701         $vf-module-topology-operation-input.vnf-information.vnf-id +\r
702         '/vf-modules/vf-module/' +\r
703         $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
704                                                                 <outcome value='failure'>\r
705                                                                     <block atomic="true">\r
706                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
707                                                                         <return status='failure'>\r
708                                                                             <parameter name='ack-final' value='Y'/>\r
709                                                                             <parameter name="error-code" value="500" />\r
710                                                                             <parameter name="error-message" value="Error updating vnfc relationships in AAI" />\r
711                                                                         </return>\r
712                                                                     </block>\r
713                                                                 </outcome>\r
714                                                                 <outcome value='not-found'>\r
715                                                                     <block atomic="true">\r
716                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
717                                                                         <return status='failure'>\r
718                                                                             <parameter name='ack-final' value='Y'/>\r
719                                                                             <parameter name="error-code" value="500" />\r
720                                                                             <parameter name="error-message" value="Not-found error updating vnfc relationships" />\r
721                                                                         </return>\r
722                                                                     </block>\r
723                                                                 </outcome>\r
724                                                             </save>\r
725                                                             <for silentFailure='true' index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data_length`' >\r
726                                                                 <for silentFailure='true' index='subnet-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length`' >\r
727                                                                     <for silentFailure='true' index='address-family-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length`' >\r
728                                                                         <block atomic="true">\r
729                                                                             <set>\r
730                                                                                 <parameter name='tmp.address-family'\r
731   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-address-family`' />\r
732                                                                             </set>\r
733                                                                             <for silentFailure='true' index='address-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length`' >\r
734                                                                                 <switch test='`$tmp.address-family`'>\r
735                                                                                     <outcome value='ipv4'>\r
736                                                                                         <block atomic="true">\r
737                                                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
738         resource="l3-interface-ipv4-address-list" \r
739         key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
740           AND l3-interface-ipv4-address-list.l3-interface-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address" >\r
741                                                                                                 <parameter name="l3-interface-ipv4-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address`" />\r
742                                                                                                 <parameter name="l3-interface-ipv4-prefix-length" value="32" />\r
743                                                                                                 <parameter name="is-floating" value="false" />\r
744                                                                                                 <outcome value='failure'>\r
745                                                                                                     <block atomic="true">\r
746                                                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
747                                                                                                         <return status='failure'>\r
748                                                                                                             <parameter name='ack-final' value='Y'/>\r
749                                                                                                             <parameter name="error-code" value="500" />\r
750                                                                                                             <parameter name="error-message" value="Error creating l3-interface-ipv4-address-list object in AAI" />\r
751                                                                                                         </return>\r
752                                                                                                     </block>\r
753                                                                                                 </outcome>\r
754                                                                                             </save>\r
755                                                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
756    resource="l3-interface-ipv4-address-list:relationship-list"\r
757    key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
758           AND l3-interface-ipv4-address-list.l3-interface-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address"\r
759    force="true" pfx="tmp.AnAI-data">\r
760                                                                                                 <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
761                                                                                                 <parameter name="relationship-list.relationship[0].related-link"\r
762       value="`'/aai/v$/network/l3-networks/l3-network/' +\r
763         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id`" />\r
764                                                                                                 <parameter name="relationship-list.relationship[1].related-to" value="subnet" />\r
765                                                                                                 <parameter name="relationship-list.relationship[1].related-link"\r
766       value="`'/aai/v$/network/l3-networks/l3-network/' +\r
767         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id +\r
768         '/subnets/subnet/' +\r
769         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].subnet-id`" />\r
770                                                                                                 <outcome value='failure'>\r
771                                                                                                     <block atomic="true">\r
772                                                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
773                                                                                                         <return status='failure'>\r
774                                                                                                             <parameter name='ack-final' value='Y'/>\r
775                                                                                                             <parameter name="error-code" value="500" />\r
776                                                                                                             <parameter name="error-message" value="Error updating l3-interface-ipv4-address-list relationships in AAI" />\r
777                                                                                                         </return>\r
778                                                                                                     </block>\r
779                                                                                                 </outcome>\r
780                                                                                                 <outcome value='not-found'>\r
781                                                                                                     <block atomic="true">\r
782                                                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
783                                                                                                         <return status='failure'>\r
784                                                                                                             <parameter name='ack-final' value='Y'/>\r
785                                                                                                             <parameter name="error-code" value="500" />\r
786                                                                                                             <parameter name="error-message" value="Not-found error updating l3-interface-ipv4-address-list relationships" />\r
787                                                                                                         </return>\r
788                                                                                                     </block>\r
789                                                                                                 </outcome>\r
790                                                                                             </save>\r
791                                                                                         </block>\r
792                                                                                     </outcome>\r
793                                                                                     <outcome value='ipv6'>\r
794                                                                                         <block atomic="true">\r
795                                                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
796         resource="l3-interface-ipv6-address-list" \r
797         key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
798           AND l3-interface-ipv6-address-list.l3-interface-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address" >\r
799                                                                                                 <parameter name="l3-interface-ipv6-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address`" />\r
800                                                                                                 <parameter name="l3-interface-ipv6-prefix-length" value="128" />\r
801                                                                                                 <parameter name="is-floating" value="false" />\r
802                                                                                                 <outcome value='failure'>\r
803                                                                                                     <block atomic="true">\r
804                                                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
805                                                                                                         <return status='failure'>\r
806                                                                                                             <parameter name='ack-final' value='Y'/>\r
807                                                                                                             <parameter name="error-code" value="500" />\r
808                                                                                                             <parameter name="error-message" value="Error creating l3-interface-ipv6-address-list object in AAI" />\r
809                                                                                                         </return>\r
810                                                                                                     </block>\r
811                                                                                                 </outcome>\r
812                                                                                             </save>\r
813                                                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
814    resource="l3-interface-ipv6-address-list:relationship-list"\r
815    key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
816           AND l3-interface-ipv6-address-list.l3-interface-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address"\r
817    force="true" pfx="tmp.AnAI-data">\r
818                                                                                                 <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
819                                                                                                 <parameter name="relationship-list.relationship[0].related-link"\r
820       value="`'/aai/v$/network/l3-networks/l3-network/' +\r
821         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id`" />\r
822                                                                                                 <parameter name="relationship-list.relationship[1].related-to" value="subnet" />\r
823                                                                                                 <parameter name="relationship-list.relationship[1].related-link"\r
824       value="`'/aai/v$/network/l3-networks/l3-network/' +\r
825         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id +\r
826         '/subnets/subnet/' +\r
827         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].subnet-id`" />\r
828                                                                                                 <outcome value='failure'>\r
829                                                                                                     <block atomic="true">\r
830                                                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
831                                                                                                         <return status='failure'>\r
832                                                                                                             <parameter name='ack-final' value='Y'/>\r
833                                                                                                             <parameter name="error-code" value="500" />\r
834                                                                                                             <parameter name="error-message" value="Error updating l3-interface-ipv6-address-list relationships in AAI" />\r
835                                                                                                         </return>\r
836                                                                                                     </block>\r
837                                                                                                 </outcome>\r
838                                                                                                 <outcome value='not-found'>\r
839                                                                                                     <block atomic="true">\r
840                                                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
841                                                                                                         <return status='failure'>\r
842                                                                                                             <parameter name='ack-final' value='Y'/>\r
843                                                                                                             <parameter name="error-code" value="500" />\r
844                                                                                                             <parameter name="error-message" value="Not-found error updating l3-interface-ipv6-address-list relationships" />\r
845                                                                                                         </return>\r
846                                                                                                     </block>\r
847                                                                                                 </outcome>\r
848                                                                                             </save>\r
849                                                                                         </block>\r
850                                                                                     </outcome>\r
851                                                                                 </switch>\r
852                                                                             </for>\r
853                                                                         </block>\r
854                                                                     </for>\r
855                                                                 </for>\r
856                                                             </for>\r
857                                                         </block>\r
858                                                     </for>\r
859                                                     <for silentFailure='true' index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
860                                                         <block atomic="true">\r
861                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
862    resource="vf-module:relationship-list"\r
863    key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
864       AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
865    force="true" pfx="tmp.AnAI-data">\r
866                                                                 <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
867                                                                 <parameter name="relationship-list.relationship[0].related-link"\r
868       value="`'/aai/v$/network/l3-networks/l3-network/' +\r
869         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`" />\r
870                                                                 <outcome value='failure'>\r
871                                                                     <block atomic="true">\r
872                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
873                                                                         <return status='failure'>\r
874                                                                             <parameter name='ack-final' value='Y'/>\r
875                                                                             <parameter name="error-code" value="500" />\r
876                                                                             <parameter name="error-message" value="Error updating vf-module relationships in AAI" />\r
877                                                                         </return>\r
878                                                                     </block>\r
879                                                                 </outcome>\r
880                                                                 <outcome value='not-found'>\r
881                                                                     <block atomic="true">\r
882                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
883                                                                         <return status='failure'>\r
884                                                                             <parameter name='ack-final' value='Y'/>\r
885                                                                             <parameter name="error-code" value="500" />\r
886                                                                             <parameter name="error-message" value="`'No l3-network found in AAI for network ID '\r
887       + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`" />\r
888                                                                         </return>\r
889                                                                     </block>\r
890                                                                 </outcome>\r
891                                                             </save>\r
892                                                             <set>\r
893                                                                 <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].created-flag' value='true' />\r
894                                                             </set>\r
895                                                             <for silentFailure='true' index='ipv4-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length`' >\r
896                                                                 <block atomic="true">\r
897                                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
898         resource="vip-ipv4-address-list" \r
899         key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
900           AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
901           AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]" >\r
902                                                                         <parameter name="vip-ipv4-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]`" />\r
903                                                                         <parameter name="vip-ipv4-prefix-length" value="32" />\r
904                                                                         <parameter name="is-floating" value="false" />\r
905                                                                         <outcome value='failure'>\r
906                                                                             <block atomic="true">\r
907                                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
908                                                                                 <return status='failure'>\r
909                                                                                     <parameter name='ack-final' value='Y'/>\r
910                                                                                     <parameter name="error-code" value="500" />\r
911                                                                                     <parameter name="error-message" value="Error saving vip-ipv4-address-list in AAI" />\r
912                                                                                 </return>\r
913                                                                             </block>\r
914                                                                         </outcome>\r
915                                                                         <outcome value='not-found'>\r
916                                                                             <block atomic="true">\r
917                                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
918                                                                                 <return status='failure'>\r
919                                                                                     <parameter name='ack-final' value='Y'/>\r
920                                                                                     <parameter name="error-code" value="500" />\r
921                                                                                     <parameter name="error-message" value="Not-found error saving vip-ipv4-address-list" />\r
922                                                                                 </return>\r
923                                                                             </block>\r
924                                                                         </outcome>\r
925                                                                     </save>\r
926                                                                     <set>\r
927                                                                         <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv4-flag' value='true' />\r
928                                                                     </set>\r
929                                                                     <for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
930                                                                         <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
931    resource="vip-ipv4-address-list:relationship-list"\r
932    key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
933           AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
934           AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]"\r
935    force="true" pfx="tmp.AnAI-data">\r
936                                                                             <parameter name="relationship-list.relationship[0].related-to" value="subnet" />\r
937                                                                             <parameter name="relationship-list.relationship[0].related-link"\r
938       value="`'/aai/v$/network/l3-networks/l3-network/'\r
939         + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-id\r
940         + '/subnets/subnet/'\r
941         + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv4-subnet-id`" />\r
942                                                                             <parameter name="relationship-list.relationship[1].related-to" value="vnfc" />\r
943                                                                             <parameter name="relationship-list.relationship[1].related-link"\r
944       value="`'/aai/v$/network/vnfcs/vnfc/'\r
945         + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
946                                                                             <outcome value='failure'>\r
947                                                                                 <block atomic="true">\r
948                                                                                     <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
949                                                                                     <return status='failure'>\r
950                                                                                         <parameter name='ack-final' value='Y'/>\r
951                                                                                         <parameter name="error-code" value="500" />\r
952                                                                                         <parameter name="error-message" value="Error updating vip-ipv4-address-list relationships in AAI" />\r
953                                                                                     </return>\r
954                                                                                 </block>\r
955                                                                             </outcome>\r
956                                                                             <outcome value='not-found'>\r
957                                                                                 <block atomic="true">\r
958                                                                                     <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
959                                                                                     <return status='failure'>\r
960                                                                                         <parameter name='ack-final' value='Y'/>\r
961                                                                                         <parameter name="error-code" value="500" />\r
962                                                                                         <parameter name="error-message" value="Not-found error updating vip-ipv4-address-list relationships" />\r
963                                                                                     </return>\r
964                                                                                 </block>\r
965                                                                             </outcome>\r
966                                                                         </save>\r
967                                                                     </for>\r
968                                                                 </block>\r
969                                                             </for>\r
970                                                             <for silentFailure='true' index='ipv6-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length`' >\r
971                                                                 <block atomic="true">\r
972                                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
973         resource="vip-ipv6-address-list" \r
974         key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
975           AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
976           AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]" >\r
977                                                                         <parameter name="vip-ipv6-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]`" />\r
978                                                                         <parameter name="vip-ipv6-prefix-length" value="128" />\r
979                                                                         <parameter name="is-floating" value="false" />\r
980                                                                         <outcome value='failure'>\r
981                                                                             <block atomic="true">\r
982                                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
983                                                                                 <return status='failure'>\r
984                                                                                     <parameter name='ack-final' value='Y'/>\r
985                                                                                     <parameter name="error-code" value="500" />\r
986                                                                                     <parameter name="error-message" value="Error saving vip-ipv6-address-list in AAI" />\r
987                                                                                 </return>\r
988                                                                             </block>\r
989                                                                         </outcome>\r
990                                                                         <outcome value='not-found'>\r
991                                                                             <block atomic="true">\r
992                                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
993                                                                                 <return status='failure'>\r
994                                                                                     <parameter name='ack-final' value='Y'/>\r
995                                                                                     <parameter name="error-code" value="500" />\r
996                                                                                     <parameter name="error-message" value="Not-found error saving vip-ipv6-address-list" />\r
997                                                                                 </return>\r
998                                                                             </block>\r
999                                                                         </outcome>\r
1000                                                                     </save>\r
1001                                                                     <set>\r
1002                                                                         <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag' value='true' />\r
1003                                                                     </set>\r
1004                                                                     <for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
1005                                                                         <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
1006    resource="vip-ipv6-address-list:relationship-list"\r
1007    key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
1008           AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
1009           AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]"\r
1010    force="true" pfx="tmp.AnAI-data">\r
1011                                                                             <parameter name="relationship-list.relationship[0].related-to" value="subnet" />\r
1012                                                                             <parameter name="relationship-list.relationship[0].related-link"\r
1013       value="`'/aai/v$/network/l3-networks/l3-network/'\r
1014         + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-id\r
1015         + '/subnets/subnet/'\r
1016         + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv6-subnet-id`" />\r
1017                                                                             <parameter name="relationship-list.relationship[1].related-to" value="vnfc" />\r
1018                                                                             <parameter name="relationship-list.relationship[1].related-link"\r
1019       value="`'/aai/v$/network/vnfcs/vnfc/'\r
1020         + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
1021                                                                             <outcome value='failure'>\r
1022                                                                                 <block atomic="true">\r
1023                                                                                     <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1024                                                                                     <return status='failure'>\r
1025                                                                                         <parameter name='ack-final' value='Y'/>\r
1026                                                                                         <parameter name="error-code" value="500" />\r
1027                                                                                         <parameter name="error-message" value="Error updating vip-ipv6-address-list relationships in AAI" />\r
1028                                                                                     </return>\r
1029                                                                                 </block>\r
1030                                                                             </outcome>\r
1031                                                                             <outcome value='not-found'>\r
1032                                                                                 <block atomic="true">\r
1033                                                                                     <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1034                                                                                     <return status='failure'>\r
1035                                                                                         <parameter name='ack-final' value='Y'/>\r
1036                                                                                         <parameter name="error-code" value="500" />\r
1037                                                                                         <parameter name="error-message" value="Not-found error updating vip-ipv6-address-list relationships" />\r
1038                                                                                     </return>\r
1039                                                                                 </block>\r
1040                                                                             </outcome>\r
1041                                                                         </save>\r
1042                                                                     </for>\r
1043                                                                 </block>\r
1044                                                             </for>\r
1045                                                         </block>\r
1046                                                     </for>\r
1047                                                 </block>\r
1048                                             </for>\r
1049                                             <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-assign' mode='sync' >\r
1050                                                 <outcome value='failure'>\r
1051                                                     <block atomic="true">\r
1052                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1053                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
1054                                                             <parameter name='filename' value='/var/tmp/bgb-vlantaggingfailure.log' />\r
1055                                                         </execute>\r
1056                                                         <return status='failure'></return>\r
1057                                                     </block>\r
1058                                                 </outcome>\r
1059                                             </call>\r
1060                                             <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
1061                                                 <for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\r
1062                                                     <block atomic="true">\r
1063                                                         <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
1064   key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id\r
1065      AND ecomp_service_instance_id = $service-data.service-information.service-instance-id\r
1066      AND vm_name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >\r
1067                                                             <outcome value='failure'>\r
1068                                                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
1069                                                                     <parameter name="logger" value="message-log"/>\r
1070                                                                     <parameter name="field1" value="__TIMESTAMP__"/>\r
1071                                                                     <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
1072                                                                     <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
1073                                                                     <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
1074                                                                 </record>\r
1075                                                             </outcome>\r
1076                                                         </delete>\r
1077                                                         <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
1078 key="INSERT INTO VIPR_CONFIGURATION (vnf_id, vnf_name, ecomp_service_instance_id, vm_name, cloud_region_id, cloud_owner) VALUES ( $service-data.vnfs.vnf[$vnf-index].vnf-id , $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name , $service-data.service-information.service-instance-id , $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index] , $tmp.vf-module-topology.aic-cloud-region , $prop.cloud-region.cloud-owner )" >\r
1079                                                             <outcome value='failure'>\r
1080                                                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
1081                                                                     <parameter name="logger" value="message-log"/>\r
1082                                                                     <parameter name="field1" value="__TIMESTAMP__"/>\r
1083                                                                     <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
1084                                                                     <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
1085                                                                     <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
1086                                                                 </record>\r
1087                                                             </outcome>\r
1088                                                         </save>\r
1089                                                     </block>\r
1090                                                 </for>\r
1091                                             </for>\r
1092                                             <set>\r
1093                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.' value='tmp.vf-module-topology.' />\r
1094                                             </set>\r
1095                                             <set>\r
1096                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
1097    value='$vf-module-topology-operation-input.sdnc-request-header.' />\r
1098                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
1099    value='$vf-module-topology-operation-input.request-information.' />\r
1100                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
1101    value='$vf-module-topology-operation-input.service-information.' />\r
1102                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
1103    value='$vf-module-topology-operation-input.vnf-information.' />\r
1104                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
1105    value='$vf-module-topology-operation-input.vf-module-information.' />\r
1106                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
1107    value='$vf-module-topology-operation-input.vf-module-request-input.' />\r
1108                                             </set>\r
1109                                             <set>\r
1110                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
1111   value='PendingCreate' />\r
1112                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
1113   value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
1114                                                 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
1115   value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
1116                                             </set>\r
1117                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
1118                                                 <parameter name='filename' value='/var/tmp/bgb-vfmodule.log' />\r
1119                                             </execute>\r
1120                                             <return status='success'>\r
1121                                                 <parameter name="ack-final-indicator" value="Y" />\r
1122                                                 <parameter name="error-code" value="200" />\r
1123                                                 <parameter name="error-message" value="`$error-message`" />\r
1124                                             </return>\r
1125                                         </block>\r
1126                                     </block>\r
1127                                 </outcome>\r
1128                             </get-resource>\r
1129                         </outcome>\r
1130                         <outcome value='not-found'>\r
1131                             <block atomic="true">\r
1132                                 <block atomic="true">\r
1133                                     <switch test='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`'>\r
1134                                         <outcome value=''>\r
1135                                             <return status='failure'>\r
1136                                                 <parameter name='ack-final' value='Y'/>\r
1137                                                 <parameter name="error-code" value="500" />\r
1138                                                 <parameter name="error-message" value="vf-module-information.vf-module-request-input.vf-module-name is a required input" />\r
1139                                             </return>\r
1140                                         </outcome>\r
1141                                     </switch>\r
1142                                     <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
1143                                         <outcome value=''>\r
1144                                             <set>\r
1145                                                 <parameter name='vf-module-index' value='0' />\r
1146                                             </set>\r
1147                                         </outcome>\r
1148                                         <outcome value='Other'>\r
1149                                             <block>\r
1150                                                 <set>\r
1151                                                     <parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
1152                                                 </set>\r
1153                                                 <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
1154                                                     <switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\r
1155                                                         <outcome value='true'>\r
1156                                                             <return status='failure'>\r
1157                                                                 <parameter name='ack-final' value='Y'/>\r
1158                                                                 <parameter name="error-code" value="500" />\r
1159                                                                 <parameter name="error-message" value="`'VF module id ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id\r
1160        + ' already exists, and status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
1161                                                             </return>\r
1162                                                         </outcome>\r
1163                                                     </switch>\r
1164                                                 </for>\r
1165                                             </block>\r
1166                                         </outcome>\r
1167                                     </switch>\r
1168                                     <set>\r
1169                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\r
1170                                     </set>\r
1171                                     <set>\r
1172                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\r
1173    value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
1174                                     </set>\r
1175                                     <set>\r
1176                                         <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
1177                                         <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\r
1178                                         <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-type' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\r
1179                                         <parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\r
1180                                         <parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\r
1181                                     </set>\r
1182                                     <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
1183                 resource="cloud-region" \r
1184                 key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
1185                      cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region"\r
1186         pfx='aai.cloud-region' local-only='false' >\r
1187                                         <outcome value='not-found'>\r
1188                                             <return status='failure'>\r
1189                                                 <parameter name='ack-final' value='Y'/>\r
1190                                                 <parameter name="error-code" value="500" />\r
1191                                                 <parameter name="error-message" value="Cloud region not found in AAI" />\r
1192                                             </return>\r
1193                                         </outcome>\r
1194                                         <outcome value='failure'>\r
1195                                             <return status='failure'>\r
1196                                                 <parameter name='ack-final' value='Y'/>\r
1197                                                 <parameter name="error-code" value="500" />\r
1198                                                 <parameter name="error-message" value="Error retrieving cloud region from AAI" />\r
1199                                             </return>\r
1200                                         </outcome>\r
1201                                     </get-resource>\r
1202                                     <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
1203                                         <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
1204                                             <outcome value='complex'>\r
1205                                                 <block atomic="true">\r
1206                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
1207                                                         <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
1208                                                         <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
1209                                                         <parameter name='regex' value='/' />\r
1210                                                     </execute>\r
1211                                                     <set>\r
1212                                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\r
1213    value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\r
1214                                                     </set>\r
1215                                                     <break/>\r
1216                                                 </block>\r
1217                                             </outcome>\r
1218                                         </switch>\r
1219                                     </for>\r
1220                                     <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli`'>\r
1221                                         <outcome value=''>\r
1222                                             <return status='failure'>\r
1223                                                 <parameter name='ack-final' value='Y'/>\r
1224                                                 <parameter name="error-code" value="500" />\r
1225                                                 <parameter name="error-message" value="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`" />\r
1226                                             </return>\r
1227                                         </outcome>\r
1228                                     </switch>\r
1229                                     <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\r
1230                                         <outcome value=''>\r
1231                                             <set>\r
1232                                                 <parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
1233   value='`$db.vf-module-model.invariant-uuid`' />\r
1234                                             </set>\r
1235                                         </outcome>\r
1236                                         <outcome value='Other'>\r
1237                                             <set>\r
1238                                                 <parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
1239   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
1240                                             </set>\r
1241                                         </outcome>\r
1242                                     </switch>\r
1243                                     <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\r
1244                                         <outcome value=''>\r
1245                                             <set>\r
1246                                                 <parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
1247   value='`$db.vf-module-model.uuid`' />\r
1248                                             </set>\r
1249                                         </outcome>\r
1250                                         <outcome value='Other'>\r
1251                                             <set>\r
1252                                                 <parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
1253   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />\r
1254                                             </set>\r
1255                                         </outcome>\r
1256                                     </switch>\r
1257                                     <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\r
1258                                         <outcome value=''>\r
1259                                             <set>\r
1260                                                 <parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
1261   value='`$db.vf-module-model.version`' />\r
1262                                             </set>\r
1263                                         </outcome>\r
1264                                         <outcome value='Other'>\r
1265                                             <set>\r
1266                                                 <parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
1267   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
1268                                             </set>\r
1269                                         </outcome>\r
1270                                     </switch>\r
1271                                     <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\r
1272                                         <outcome value=''>\r
1273                                             <set>\r
1274                                                 <parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
1275   value='`$db.vf-module-model.name`' />\r
1276                                             </set>\r
1277                                         </outcome>\r
1278                                         <outcome value='Other'>\r
1279                                             <set>\r
1280                                                 <parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
1281   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />\r
1282                                             </set>\r
1283                                         </outcome>\r
1284                                     </switch>\r
1285                                     <set>\r
1286                                         <parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'\r
1287   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
1288                                     </set>\r
1289                                     <set>\r
1290                                         <parameter name='tmp.vf-module-topology.vf-module-parameters.'\r
1291   value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />\r
1292                                     </set>\r
1293                                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
1294                                         <parameter name='restapiUrl' value="`$prop.controller.url + $prop.restapi.preloadinformation + $vf-module-topology-operation-input.vf-module-request-input.vf-module-name + '/vf-module'`" />\r
1295                                         <parameter name='restapiUser' value='`$prop.controller.user`' />\r
1296                                         <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
1297                                         <parameter name='format' value='json' />\r
1298                                         <parameter name='httpMethod' value='GET' />\r
1299                                         <parameter name="responsePrefix" value="mdsal-preload" />\r
1300                                         <outcome value='failure'>\r
1301                                             <block>\r
1302                                                 <switch test='`$mdsal-preload.response-code`'>\r
1303                                                     <outcome value='404'>\r
1304                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign-no-preload' mode='sync' >\r
1305                                                             <outcome value='failure'>\r
1306                                                                 <return status='failure'></return>\r
1307                                                             </outcome>\r
1308                                                         </call>\r
1309                                                     </outcome>\r
1310                                                     <outcome value='Other'>\r
1311                                                         <return status='failure'>\r
1312                                                             <parameter name='ack-final' value='Y'/>\r
1313                                                             <parameter name="error-code" value="500" />\r
1314                                                             <parameter name="error-message" value="Error retrieving preload-information" />\r
1315                                                         </return>\r
1316                                                     </outcome>\r
1317                                                 </switch>\r
1318                                             </block>\r
1319                                         </outcome>\r
1320                                         <outcome value='success'>\r
1321                                             <block>\r
1322                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign-preload' mode='sync' >\r
1323                                                     <outcome value='failure'>\r
1324                                                         <return status='failure'></return>\r
1325                                                     </outcome>\r
1326                                                 </call>\r
1327                                             </block>\r
1328                                         </outcome>\r
1329                                     </execute>\r
1330                                     <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
1331                                         <block atomic="true">\r
1332                                             <for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
1333                                                 <for silentFailure='true' index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data_length`' >\r
1334                                                     <block>\r
1335                                                         <set>\r
1336                                                             <parameter name='tmp.network-role' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-network-role`' />\r
1337                                                         </set>\r
1338                                                         <set>\r
1339                                                             <parameter name='found-network-role' value='false' />\r
1340                                                         </set>\r
1341                                                         <for index='vnf-network-index' start='0'\r
1342   end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
1343                                                             <switch test='`$tmp.network-role\r
1344   == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`'>\r
1345                                                                 <outcome value='true'>\r
1346                                                                     <block>\r
1347                                                                         <set>\r
1348                                                                             <parameter name='found-network-role' value='true' />\r
1349                                                                         </set>\r
1350                                                                         <break/>\r
1351                                                                     </block>\r
1352                                                                 </outcome>\r
1353                                                             </switch>\r
1354                                                         </for>\r
1355                                                         <switch test='`$found-network-role`'>\r
1356                                                             <outcome value='false'>\r
1357                                                                 <block atomic="true">\r
1358                                                                     <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1359                                                                     <return status='failure'>\r
1360                                                                         <parameter name='ack-final' value='Y'/>\r
1361                                                                         <parameter name="error-code" value="500" />\r
1362                                                                         <parameter name="error-message"\r
1363       value="`'Cannot find VNF network role ' + $tmp.network-role`" />\r
1364                                                                     </return>\r
1365                                                                 </block>\r
1366                                                             </outcome>\r
1367                                                         </switch>\r
1368                                                         <set>\r
1369                                                             <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id'\r
1370   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-id`' />\r
1371                                                         </set>\r
1372                                                         <for index='subnet-role-index' start='0'\r
1373   end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length`' >\r
1374                                                             <for index='address-family-index' start='0'\r
1375   end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length`' >\r
1376                                                                 <block atomic="true">\r
1377                                                                     <set>\r
1378                                                                         <parameter name='tmp.address-family'\r
1379   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-address-family`' />\r
1380                                                                         <parameter name='tmp.subnet-role'\r
1381   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-subnet-role`' />\r
1382                                                                     </set>\r
1383                                                                     <set>\r
1384                                                                         <parameter name='found-subnet' value='false' />\r
1385                                                                     </set>\r
1386                                                                     <for silentFailure='true' index='vnf-address-family-index' start='0'\r
1387   end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
1388                                                                         <switch test='`$tmp.address-family\r
1389   == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\r
1390                                                                             <outcome value='true'>\r
1391                                                                                 <switch test='`$tmp.subnet-role\r
1392   == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].subnet-role`'>\r
1393                                                                                     <outcome value='true'>\r
1394                                                                                         <block>\r
1395                                                                                             <set>\r
1396                                                                                                 <parameter name='found-subnet' value='true' />\r
1397                                                                                             </set>\r
1398                                                                                             <break/>\r
1399                                                                                         </block>\r
1400                                                                                     </outcome>\r
1401                                                                                 </switch>\r
1402                                                                             </outcome>\r
1403                                                                         </switch>\r
1404                                                                     </for>\r
1405                                                                     <switch test='`$found-subnet`'>\r
1406                                                                         <outcome value='false'>\r
1407                                                                             <block atomic="true">\r
1408                                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1409                                                                                 <return status='failure'>\r
1410                                                                                     <parameter name='ack-final' value='Y'/>\r
1411                                                                                     <parameter name="error-code" value="500" />\r
1412                                                                                     <parameter name="error-message" value="`'Cannot find VNF address family '\r
1413       + $tmp.address-family\r
1414       + ' for subnet role '\r
1415       + $tmp.subnet-role`" />\r
1416                                                                                 </return>\r
1417                                                                             </block>\r
1418                                                                         </outcome>\r
1419                                                                     </switch>\r
1420                                                                     <set>\r
1421                                                                         <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].subnet-id'\r
1422   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\r
1423                                                                     </set>\r
1424                                                                 </block>\r
1425                                                             </for>\r
1426                                                         </for>\r
1427                                                     </block>\r
1428                                                 </for>\r
1429                                             </for>\r
1430                                             <for silentFailure='true' index='vm-network-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
1431                                                 <block>\r
1432                                                     <set>\r
1433                                                         <parameter name='tmp.network-role' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-role`' />\r
1434                                                     </set>\r
1435                                                     <for index='vnf-network-index' start='0'\r
1436   end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
1437                                                         <switch test='`$tmp.network-role\r
1438   == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`'>\r
1439                                                             <outcome value='true'>\r
1440                                                                 <break/>\r
1441                                                             </outcome>\r
1442                                                         </switch>\r
1443                                                     </for>\r
1444                                                     <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length &gt; 0`'>\r
1445                                                         <outcome value='true'>\r
1446                                                             <block atomic="true">\r
1447                                                                 <set>\r
1448                                                                     <parameter name='tmp.address-family' value='ipv4' />\r
1449                                                                 </set>\r
1450                                                                 <set>\r
1451                                                                     <parameter name='found-address-family' value='false' />\r
1452                                                                 </set>\r
1453                                                                 <for silentFailure='true' index='vnf-address-family-index' start='0'\r
1454   end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
1455                                                                     <switch test='`$tmp.address-family\r
1456   == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\r
1457                                                                         <outcome value='true'>\r
1458                                                                             <block>\r
1459                                                                                 <set>\r
1460                                                                                     <parameter name='found-address-family' value='true' />\r
1461                                                                                 </set>\r
1462                                                                                 <break/>\r
1463                                                                             </block>\r
1464                                                                         </outcome>\r
1465                                                                     </switch>\r
1466                                                                 </for>\r
1467                                                                 <switch test='`$found-address-family`'>\r
1468                                                                     <outcome value='false'>\r
1469                                                                         <block atomic="true">\r
1470                                                                             <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1471                                                                             <return status='failure'>\r
1472                                                                                 <parameter name='ack-final' value='Y'/>\r
1473                                                                                 <parameter name="error-code" value="500" />\r
1474                                                                                 <parameter name="error-message" value="`'Cannot find VNF address family '\r
1475       + $tmp.address-family\r
1476       + ' for network role '\r
1477       + $tmp.network-role`" />\r
1478                                                                             </return>\r
1479                                                                         </block>\r
1480                                                                     </outcome>\r
1481                                                                 </switch>\r
1482                                                                 <set>\r
1483                                                                     <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv4-subnet-id'\r
1484   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\r
1485                                                                 </set>\r
1486                                                             </block>\r
1487                                                         </outcome>\r
1488                                                     </switch>\r
1489                                                     <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length &gt; 0`'>\r
1490                                                         <outcome value='true'>\r
1491                                                             <block atomic="true">\r
1492                                                                 <set>\r
1493                                                                     <parameter name='tmp.address-family' value='ipv6' />\r
1494                                                                 </set>\r
1495                                                                 <set>\r
1496                                                                     <parameter name='found-address-family' value='false' />\r
1497                                                                 </set>\r
1498                                                                 <for silentFailure='true' index='vnf-address-family-index' start='0'\r
1499   end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
1500                                                                     <switch test='`$tmp.address-family\r
1501   == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\r
1502                                                                         <outcome value='true'>\r
1503                                                                             <block>\r
1504                                                                                 <set>\r
1505                                                                                     <parameter name='found-address-family' value='true' />\r
1506                                                                                 </set>\r
1507                                                                                 <break/>\r
1508                                                                             </block>\r
1509                                                                         </outcome>\r
1510                                                                     </switch>\r
1511                                                                 </for>\r
1512                                                                 <switch test='`$found-address-family`'>\r
1513                                                                     <outcome value='false'>\r
1514                                                                         <block atomic="true">\r
1515                                                                             <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1516                                                                             <return status='failure'>\r
1517                                                                                 <parameter name='ack-final' value='Y'/>\r
1518                                                                                 <parameter name="error-code" value="500" />\r
1519                                                                                 <parameter name="error-message" value="`'Cannot find VNF address family '\r
1520       + $tmp.address-family\r
1521       + ' for network role '\r
1522       + $tmp.network-role`" />\r
1523                                                                             </return>\r
1524                                                                         </block>\r
1525                                                                     </outcome>\r
1526                                                                 </switch>\r
1527                                                                 <set>\r
1528                                                                     <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv6-subnet-id'\r
1529   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\r
1530                                                                 </set>\r
1531                                                             </block>\r
1532                                                         </outcome>\r
1533                                                     </switch>\r
1534                                                 </block>\r
1535                                             </for>\r
1536                                         </block>\r
1537                                     </for>\r
1538                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
1539                                         <parameter name='filename' value='/var/tmp/bgb-vfmoduleb.log' />\r
1540                                     </execute>\r
1541                                     <set>\r
1542                                         <parameter name='vf-module-object-path'\r
1543  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
1544  + $service-data.service-topology.service-topology-identifier.service-instance-id\r
1545  + '/service-data/vnfs/vnf/'\r
1546  + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
1547  + '/vnf-data/vf-modules/vf-module/'\r
1548  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
1549  + '/vf-module-data/vf-module-topology/'`"/>\r
1550                                     </set>\r
1551                                     <switch test='`$from-preload`'>\r
1552                                         <outcome value='false'>\r
1553                                             <set>\r
1554                                                 <parameter name='automated-assignment' value='true' />\r
1555                                             </set>\r
1556                                         </outcome>\r
1557                                         <outcome value='true'>\r
1558                                             <set>\r
1559                                                 <parameter name='automated-assignment' value='false' />\r
1560                                             </set>\r
1561                                         </outcome>\r
1562                                     </switch>\r
1563                                     <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
1564    resource="vf-module"\r
1565    key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
1566       AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
1567    force="true" pfx="tmp.AnAI-data">\r
1568                                         <parameter name="vf-module-name" value="`$tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name`" />\r
1569                                         <parameter name="model-invariant-id" value="`$tmp.vf-module-topology.onap-model-information.model-invariant-uuid`" />\r
1570                                         <parameter name="model-version-id" value="`$tmp.vf-module-topology.onap-model-information.model-uuid`" />\r
1571                                         <parameter name="model-customization-id" value="`$tmp.vf-module-topology.onap-model-information.model-customization-uuid`" />\r
1572                                         <parameter name="selflink" value="`$vf-module-object-path`" />\r
1573                                         <parameter name="automated-assignment" value="`$automated-assignment`" />\r
1574                                         <outcome value='failure'>\r
1575                                             <block atomic="true">\r
1576                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1577                                                 <return status='failure'>\r
1578                                                     <parameter name='ack-final' value='Y'/>\r
1579                                                     <parameter name="error-code" value="500" />\r
1580                                                     <parameter name="error-message" value="Error updating vf-module in AAI" />\r
1581                                                 </return>\r
1582                                             </block>\r
1583                                         </outcome>\r
1584                                         <outcome value='not-found'>\r
1585                                             <block atomic="true">\r
1586                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1587                                                 <return status='failure'>\r
1588                                                     <parameter name='ack-final' value='Y'/>\r
1589                                                     <parameter name="error-code" value="500" />\r
1590                                                     <parameter name="error-message" value="`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
1591                                                 </return>\r
1592                                             </block>\r
1593                                         </outcome>\r
1594                                     </update>\r
1595                                     <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
1596                                         <block atomic="true">\r
1597                                             <for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
1598                                                 <block atomic="true">\r
1599                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
1600         resource="vnfc" \r
1601         key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name" >\r
1602                                                         <parameter name="vnfc-name" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
1603                                                         <parameter name="nfc-naming-code" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code`" />\r
1604                                                         <parameter name="nfc-function" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-function`" />\r
1605                                                         <parameter name="model-invariant-id" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].invariant-uuid`" />\r
1606                                                         <parameter name="model-version-id" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].uuid`" />\r
1607                                                         <parameter name="orchestration-status" value="`PendingCreate`" />\r
1608                                                         <parameter name="prov-status" value="`PREPROV`" />\r
1609                                                         <outcome value='failure'>\r
1610                                                             <block atomic="true">\r
1611                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1612                                                                 <return status='failure'>\r
1613                                                                     <parameter name='ack-final' value='Y'/>\r
1614                                                                     <parameter name="error-code" value="500" />\r
1615                                                                     <parameter name="error-message" value="Error saving vnfc to AAI" />\r
1616                                                                 </return>\r
1617                                                             </block>\r
1618                                                         </outcome>\r
1619                                                         <outcome value='not-found'>\r
1620                                                             <block atomic="true">\r
1621                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1622                                                                 <return status='failure'>\r
1623                                                                     <parameter name='ack-final' value='Y'/>\r
1624                                                                     <parameter name="error-code" value="500" />\r
1625                                                                     <parameter name="error-message" value="Error saving vnfc to AAI" />\r
1626                                                                 </return>\r
1627                                                             </block>\r
1628                                                         </outcome>\r
1629                                                     </save>\r
1630                                                     <set>\r
1631                                                         <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].created_flag' value='true' />\r
1632                                                     </set>\r
1633                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
1634    resource="vnfc:relationship-list"\r
1635    key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name"\r
1636    force="true" pfx="tmp.AnAI-data">\r
1637                                                         <parameter name="relationship-list.relationship[0].related-to" value="generic-vnf" />\r
1638                                                         <parameter name="relationship-list.relationship[0].related-link"\r
1639       value="`'/aai/v$/network/generic-vnfs/generic-vnf/' +\r
1640         $vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
1641                                                         <parameter name="relationship-list.relationship[1].related-to" value="vf-module" />\r
1642                                                         <parameter name="relationship-list.relationship[1].related-link"\r
1643       value="`'/aai/v$/network/generic-vnfs/generic-vnf/' +\r
1644         $vf-module-topology-operation-input.vnf-information.vnf-id +\r
1645         '/vf-modules/vf-module/' +\r
1646         $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
1647                                                         <outcome value='failure'>\r
1648                                                             <block atomic="true">\r
1649                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1650                                                                 <return status='failure'>\r
1651                                                                     <parameter name='ack-final' value='Y'/>\r
1652                                                                     <parameter name="error-code" value="500" />\r
1653                                                                     <parameter name="error-message" value="Error updating vnfc relationships in AAI" />\r
1654                                                                 </return>\r
1655                                                             </block>\r
1656                                                         </outcome>\r
1657                                                         <outcome value='not-found'>\r
1658                                                             <block atomic="true">\r
1659                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1660                                                                 <return status='failure'>\r
1661                                                                     <parameter name='ack-final' value='Y'/>\r
1662                                                                     <parameter name="error-code" value="500" />\r
1663                                                                     <parameter name="error-message" value="Not-found error updating vnfc relationships" />\r
1664                                                                 </return>\r
1665                                                             </block>\r
1666                                                         </outcome>\r
1667                                                     </save>\r
1668                                                     <for silentFailure='true' index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data_length`' >\r
1669                                                         <for silentFailure='true' index='subnet-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length`' >\r
1670                                                             <for silentFailure='true' index='address-family-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length`' >\r
1671                                                                 <block atomic="true">\r
1672                                                                     <set>\r
1673                                                                         <parameter name='tmp.address-family'\r
1674   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-address-family`' />\r
1675                                                                     </set>\r
1676                                                                     <for silentFailure='true' index='address-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length`' >\r
1677                                                                         <switch test='`$tmp.address-family`'>\r
1678                                                                             <outcome value='ipv4'>\r
1679                                                                                 <block atomic="true">\r
1680                                                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
1681         resource="l3-interface-ipv4-address-list" \r
1682         key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
1683           AND l3-interface-ipv4-address-list.l3-interface-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address" >\r
1684                                                                                         <parameter name="l3-interface-ipv4-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address`" />\r
1685                                                                                         <parameter name="l3-interface-ipv4-prefix-length" value="32" />\r
1686                                                                                         <parameter name="is-floating" value="false" />\r
1687                                                                                         <outcome value='failure'>\r
1688                                                                                             <block atomic="true">\r
1689                                                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1690                                                                                                 <return status='failure'>\r
1691                                                                                                     <parameter name='ack-final' value='Y'/>\r
1692                                                                                                     <parameter name="error-code" value="500" />\r
1693                                                                                                     <parameter name="error-message" value="Error creating l3-interface-ipv4-address-list object in AAI" />\r
1694                                                                                                 </return>\r
1695                                                                                             </block>\r
1696                                                                                         </outcome>\r
1697                                                                                     </save>\r
1698                                                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
1699    resource="l3-interface-ipv4-address-list:relationship-list"\r
1700    key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
1701           AND l3-interface-ipv4-address-list.l3-interface-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address"\r
1702    force="true" pfx="tmp.AnAI-data">\r
1703                                                                                         <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
1704                                                                                         <parameter name="relationship-list.relationship[0].related-link"\r
1705       value="`'/aai/v$/network/l3-networks/l3-network/' +\r
1706         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id`" />\r
1707                                                                                         <parameter name="relationship-list.relationship[1].related-to" value="subnet" />\r
1708                                                                                         <parameter name="relationship-list.relationship[1].related-link"\r
1709       value="`'/aai/v$/network/l3-networks/l3-network/' +\r
1710         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id +\r
1711         '/subnets/subnet/' +\r
1712         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].subnet-id`" />\r
1713                                                                                         <outcome value='failure'>\r
1714                                                                                             <block atomic="true">\r
1715                                                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1716                                                                                                 <return status='failure'>\r
1717                                                                                                     <parameter name='ack-final' value='Y'/>\r
1718                                                                                                     <parameter name="error-code" value="500" />\r
1719                                                                                                     <parameter name="error-message" value="Error updating l3-interface-ipv4-address-list relationships in AAI" />\r
1720                                                                                                 </return>\r
1721                                                                                             </block>\r
1722                                                                                         </outcome>\r
1723                                                                                         <outcome value='not-found'>\r
1724                                                                                             <block atomic="true">\r
1725                                                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1726                                                                                                 <return status='failure'>\r
1727                                                                                                     <parameter name='ack-final' value='Y'/>\r
1728                                                                                                     <parameter name="error-code" value="500" />\r
1729                                                                                                     <parameter name="error-message" value="Not-found error updating l3-interface-ipv4-address-list relationships" />\r
1730                                                                                                 </return>\r
1731                                                                                             </block>\r
1732                                                                                         </outcome>\r
1733                                                                                     </save>\r
1734                                                                                 </block>\r
1735                                                                             </outcome>\r
1736                                                                             <outcome value='ipv6'>\r
1737                                                                                 <block atomic="true">\r
1738                                                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
1739         resource="l3-interface-ipv6-address-list" \r
1740         key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
1741           AND l3-interface-ipv6-address-list.l3-interface-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address" >\r
1742                                                                                         <parameter name="l3-interface-ipv6-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address`" />\r
1743                                                                                         <parameter name="l3-interface-ipv6-prefix-length" value="128" />\r
1744                                                                                         <parameter name="is-floating" value="false" />\r
1745                                                                                         <outcome value='failure'>\r
1746                                                                                             <block atomic="true">\r
1747                                                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1748                                                                                                 <return status='failure'>\r
1749                                                                                                     <parameter name='ack-final' value='Y'/>\r
1750                                                                                                     <parameter name="error-code" value="500" />\r
1751                                                                                                     <parameter name="error-message" value="Error creating l3-interface-ipv6-address-list object in AAI" />\r
1752                                                                                                 </return>\r
1753                                                                                             </block>\r
1754                                                                                         </outcome>\r
1755                                                                                     </save>\r
1756                                                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
1757    resource="l3-interface-ipv6-address-list:relationship-list"\r
1758    key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
1759           AND l3-interface-ipv6-address-list.l3-interface-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address"\r
1760    force="true" pfx="tmp.AnAI-data">\r
1761                                                                                         <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
1762                                                                                         <parameter name="relationship-list.relationship[0].related-link"\r
1763       value="`'/aai/v$/network/l3-networks/l3-network/' +\r
1764         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id`" />\r
1765                                                                                         <parameter name="relationship-list.relationship[1].related-to" value="subnet" />\r
1766                                                                                         <parameter name="relationship-list.relationship[1].related-link"\r
1767       value="`'/aai/v$/network/l3-networks/l3-network/' +\r
1768         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id +\r
1769         '/subnets/subnet/' +\r
1770         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].subnet-id`" />\r
1771                                                                                         <outcome value='failure'>\r
1772                                                                                             <block atomic="true">\r
1773                                                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1774                                                                                                 <return status='failure'>\r
1775                                                                                                     <parameter name='ack-final' value='Y'/>\r
1776                                                                                                     <parameter name="error-code" value="500" />\r
1777                                                                                                     <parameter name="error-message" value="Error updating l3-interface-ipv6-address-list relationships in AAI" />\r
1778                                                                                                 </return>\r
1779                                                                                             </block>\r
1780                                                                                         </outcome>\r
1781                                                                                         <outcome value='not-found'>\r
1782                                                                                             <block atomic="true">\r
1783                                                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1784                                                                                                 <return status='failure'>\r
1785                                                                                                     <parameter name='ack-final' value='Y'/>\r
1786                                                                                                     <parameter name="error-code" value="500" />\r
1787                                                                                                     <parameter name="error-message" value="Not-found error updating l3-interface-ipv6-address-list relationships" />\r
1788                                                                                                 </return>\r
1789                                                                                             </block>\r
1790                                                                                         </outcome>\r
1791                                                                                     </save>\r
1792                                                                                 </block>\r
1793                                                                             </outcome>\r
1794                                                                         </switch>\r
1795                                                                     </for>\r
1796                                                                 </block>\r
1797                                                             </for>\r
1798                                                         </for>\r
1799                                                     </for>\r
1800                                                 </block>\r
1801                                             </for>\r
1802                                             <for silentFailure='true' index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
1803                                                 <block atomic="true">\r
1804                                                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
1805    resource="vf-module:relationship-list"\r
1806    key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
1807       AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
1808    force="true" pfx="tmp.AnAI-data">\r
1809                                                         <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
1810                                                         <parameter name="relationship-list.relationship[0].related-link"\r
1811       value="`'/aai/v$/network/l3-networks/l3-network/' +\r
1812         $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`" />\r
1813                                                         <outcome value='failure'>\r
1814                                                             <block atomic="true">\r
1815                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1816                                                                 <return status='failure'>\r
1817                                                                     <parameter name='ack-final' value='Y'/>\r
1818                                                                     <parameter name="error-code" value="500" />\r
1819                                                                     <parameter name="error-message" value="Error updating vf-module relationships in AAI" />\r
1820                                                                 </return>\r
1821                                                             </block>\r
1822                                                         </outcome>\r
1823                                                         <outcome value='not-found'>\r
1824                                                             <block atomic="true">\r
1825                                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1826                                                                 <return status='failure'>\r
1827                                                                     <parameter name='ack-final' value='Y'/>\r
1828                                                                     <parameter name="error-code" value="500" />\r
1829                                                                     <parameter name="error-message" value="`'No l3-network found in AAI for network ID '\r
1830       + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`" />\r
1831                                                                 </return>\r
1832                                                             </block>\r
1833                                                         </outcome>\r
1834                                                     </save>\r
1835                                                     <set>\r
1836                                                         <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].created-flag' value='true' />\r
1837                                                     </set>\r
1838                                                     <for silentFailure='true' index='ipv4-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length`' >\r
1839                                                         <block atomic="true">\r
1840                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
1841         resource="vip-ipv4-address-list" \r
1842         key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
1843           AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
1844           AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]" >\r
1845                                                                 <parameter name="vip-ipv4-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]`" />\r
1846                                                                 <parameter name="vip-ipv4-prefix-length" value="32" />\r
1847                                                                 <parameter name="is-floating" value="false" />\r
1848                                                                 <outcome value='failure'>\r
1849                                                                     <block atomic="true">\r
1850                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1851                                                                         <return status='failure'>\r
1852                                                                             <parameter name='ack-final' value='Y'/>\r
1853                                                                             <parameter name="error-code" value="500" />\r
1854                                                                             <parameter name="error-message" value="Error saving vip-ipv4-address-list in AAI" />\r
1855                                                                         </return>\r
1856                                                                     </block>\r
1857                                                                 </outcome>\r
1858                                                                 <outcome value='not-found'>\r
1859                                                                     <block atomic="true">\r
1860                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1861                                                                         <return status='failure'>\r
1862                                                                             <parameter name='ack-final' value='Y'/>\r
1863                                                                             <parameter name="error-code" value="500" />\r
1864                                                                             <parameter name="error-message" value="Not-found error saving vip-ipv4-address-list" />\r
1865                                                                         </return>\r
1866                                                                     </block>\r
1867                                                                 </outcome>\r
1868                                                             </save>\r
1869                                                             <set>\r
1870                                                                 <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv4-flag' value='true' />\r
1871                                                             </set>\r
1872                                                             <for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
1873                                                                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
1874    resource="vip-ipv4-address-list:relationship-list"\r
1875    key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
1876           AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
1877           AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]"\r
1878    force="true" pfx="tmp.AnAI-data">\r
1879                                                                     <parameter name="relationship-list.relationship[0].related-to" value="subnet" />\r
1880                                                                     <parameter name="relationship-list.relationship[0].related-link"\r
1881       value="`'/aai/v$/network/l3-networks/l3-network/'\r
1882         + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-id\r
1883         + '/subnets/subnet/'\r
1884         + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv4-subnet-id`" />\r
1885                                                                     <parameter name="relationship-list.relationship[1].related-to" value="vnfc" />\r
1886                                                                     <parameter name="relationship-list.relationship[1].related-link"\r
1887       value="`'/aai/v$/network/vnfcs/vnfc/'\r
1888         + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
1889                                                                     <outcome value='failure'>\r
1890                                                                         <block atomic="true">\r
1891                                                                             <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1892                                                                             <return status='failure'>\r
1893                                                                                 <parameter name='ack-final' value='Y'/>\r
1894                                                                                 <parameter name="error-code" value="500" />\r
1895                                                                                 <parameter name="error-message" value="Error updating vip-ipv4-address-list relationships in AAI" />\r
1896                                                                             </return>\r
1897                                                                         </block>\r
1898                                                                     </outcome>\r
1899                                                                     <outcome value='not-found'>\r
1900                                                                         <block atomic="true">\r
1901                                                                             <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1902                                                                             <return status='failure'>\r
1903                                                                                 <parameter name='ack-final' value='Y'/>\r
1904                                                                                 <parameter name="error-code" value="500" />\r
1905                                                                                 <parameter name="error-message" value="Not-found error updating vip-ipv4-address-list relationships" />\r
1906                                                                             </return>\r
1907                                                                         </block>\r
1908                                                                     </outcome>\r
1909                                                                 </save>\r
1910                                                             </for>\r
1911                                                         </block>\r
1912                                                     </for>\r
1913                                                     <for silentFailure='true' index='ipv6-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length`' >\r
1914                                                         <block atomic="true">\r
1915                                                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
1916         resource="vip-ipv6-address-list" \r
1917         key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
1918           AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
1919           AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]" >\r
1920                                                                 <parameter name="vip-ipv6-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]`" />\r
1921                                                                 <parameter name="vip-ipv6-prefix-length" value="128" />\r
1922                                                                 <parameter name="is-floating" value="false" />\r
1923                                                                 <outcome value='failure'>\r
1924                                                                     <block atomic="true">\r
1925                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1926                                                                         <return status='failure'>\r
1927                                                                             <parameter name='ack-final' value='Y'/>\r
1928                                                                             <parameter name="error-code" value="500" />\r
1929                                                                             <parameter name="error-message" value="Error saving vip-ipv6-address-list in AAI" />\r
1930                                                                         </return>\r
1931                                                                     </block>\r
1932                                                                 </outcome>\r
1933                                                                 <outcome value='not-found'>\r
1934                                                                     <block atomic="true">\r
1935                                                                         <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1936                                                                         <return status='failure'>\r
1937                                                                             <parameter name='ack-final' value='Y'/>\r
1938                                                                             <parameter name="error-code" value="500" />\r
1939                                                                             <parameter name="error-message" value="Not-found error saving vip-ipv6-address-list" />\r
1940                                                                         </return>\r
1941                                                                     </block>\r
1942                                                                 </outcome>\r
1943                                                             </save>\r
1944                                                             <set>\r
1945                                                                 <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag' value='true' />\r
1946                                                             </set>\r
1947                                                             <for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
1948                                                                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
1949    resource="vip-ipv6-address-list:relationship-list"\r
1950    key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
1951           AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
1952           AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]"\r
1953    force="true" pfx="tmp.AnAI-data">\r
1954                                                                     <parameter name="relationship-list.relationship[0].related-to" value="subnet" />\r
1955                                                                     <parameter name="relationship-list.relationship[0].related-link"\r
1956       value="`'/aai/v$/network/l3-networks/l3-network/'\r
1957         + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-id\r
1958         + '/subnets/subnet/'\r
1959         + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv6-subnet-id`" />\r
1960                                                                     <parameter name="relationship-list.relationship[1].related-to" value="vnfc" />\r
1961                                                                     <parameter name="relationship-list.relationship[1].related-link"\r
1962       value="`'/aai/v$/network/vnfcs/vnfc/'\r
1963         + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
1964                                                                     <outcome value='failure'>\r
1965                                                                         <block atomic="true">\r
1966                                                                             <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1967                                                                             <return status='failure'>\r
1968                                                                                 <parameter name='ack-final' value='Y'/>\r
1969                                                                                 <parameter name="error-code" value="500" />\r
1970                                                                                 <parameter name="error-message" value="Error updating vip-ipv6-address-list relationships in AAI" />\r
1971                                                                             </return>\r
1972                                                                         </block>\r
1973                                                                     </outcome>\r
1974                                                                     <outcome value='not-found'>\r
1975                                                                         <block atomic="true">\r
1976                                                                             <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1977                                                                             <return status='failure'>\r
1978                                                                                 <parameter name='ack-final' value='Y'/>\r
1979                                                                                 <parameter name="error-code" value="500" />\r
1980                                                                                 <parameter name="error-message" value="Not-found error updating vip-ipv6-address-list relationships" />\r
1981                                                                             </return>\r
1982                                                                         </block>\r
1983                                                                     </outcome>\r
1984                                                                 </save>\r
1985                                                             </for>\r
1986                                                         </block>\r
1987                                                     </for>\r
1988                                                 </block>\r
1989                                             </for>\r
1990                                         </block>\r
1991                                     </for>\r
1992                                     <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-assign' mode='sync' >\r
1993                                         <outcome value='failure'>\r
1994                                             <block atomic="true">\r
1995                                                 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
1996                                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
1997                                                     <parameter name='filename' value='/var/tmp/bgb-vlantaggingfailure.log' />\r
1998                                                 </execute>\r
1999                                                 <return status='failure'></return>\r
2000                                             </block>\r
2001                                         </outcome>\r
2002                                     </call>\r
2003                                     <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
2004                                         <for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\r
2005                                             <block atomic="true">\r
2006                                                 <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
2007   key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id\r
2008      AND ecomp_service_instance_id = $service-data.service-information.service-instance-id\r
2009      AND vm_name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >\r
2010                                                     <outcome value='failure'>\r
2011                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
2012                                                             <parameter name="logger" value="message-log"/>\r
2013                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
2014                                                             <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
2015                                                             <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
2016                                                             <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
2017                                                         </record>\r
2018                                                     </outcome>\r
2019                                                 </delete>\r
2020                                                 <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
2021 key="INSERT INTO VIPR_CONFIGURATION (vnf_id, vnf_name, ecomp_service_instance_id, vm_name, cloud_region_id, cloud_owner) VALUES ( $service-data.vnfs.vnf[$vnf-index].vnf-id , $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name , $service-data.service-information.service-instance-id , $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index] , $tmp.vf-module-topology.aic-cloud-region , $prop.cloud-region.cloud-owner )" >\r
2022                                                     <outcome value='failure'>\r
2023                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
2024                                                             <parameter name="logger" value="message-log"/>\r
2025                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
2026                                                             <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
2027                                                             <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
2028                                                             <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
2029                                                         </record>\r
2030                                                     </outcome>\r
2031                                                 </save>\r
2032                                             </block>\r
2033                                         </for>\r
2034                                     </for>\r
2035                                     <set>\r
2036                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.' value='tmp.vf-module-topology.' />\r
2037                                     </set>\r
2038                                     <set>\r
2039                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
2040    value='$vf-module-topology-operation-input.sdnc-request-header.' />\r
2041                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
2042    value='$vf-module-topology-operation-input.request-information.' />\r
2043                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
2044    value='$vf-module-topology-operation-input.service-information.' />\r
2045                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
2046    value='$vf-module-topology-operation-input.vnf-information.' />\r
2047                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
2048    value='$vf-module-topology-operation-input.vf-module-information.' />\r
2049                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
2050    value='$vf-module-topology-operation-input.vf-module-request-input.' />\r
2051                                     </set>\r
2052                                     <set>\r
2053                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
2054   value='PendingCreate' />\r
2055                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
2056   value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
2057                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
2058   value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
2059                                     </set>\r
2060                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
2061                                         <parameter name='filename' value='/var/tmp/bgb-vfmodule.log' />\r
2062                                     </execute>\r
2063                                     <return status='success'>\r
2064                                         <parameter name="ack-final-indicator" value="Y" />\r
2065                                         <parameter name="error-code" value="200" />\r
2066                                         <parameter name="error-message" value="`$error-message`" />\r
2067                                     </return>\r
2068                                 </block>\r
2069                             </block>\r
2070                         </outcome>\r
2071                     </get-resource>\r
2072                 </outcome>\r
2073             </switch>\r
2074         </block>\r
2075     </method>\r
2076 </service-logic>