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