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