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