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