a8251fcfaf94840d5e9f73395fb76b3b8b3cf546
[sdnc/apps.git] /
1 <service-logic\r
2     xmlns='http://www.onap.org/sdnc/svclogic'\r
3     xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='aai-disabled'>\r
4     <method rpc='network-topology-operation-assign-from-preload' mode='sync'>\r
5         <block atomic="true">\r
6             <switch test="`$tmp.nidx`">\r
7                 <outcome value=''>\r
8                     <switch test='`$service-data.networks.network_length`'>\r
9                         <outcome value=''>\r
10                             <set>\r
11                                 <parameter name='nidx' value='0' />\r
12                                 <parameter name='nidx_len' value='1'/>\r
13                             </set>\r
14                         </outcome>\r
15                         <outcome value='Other'>\r
16                             <set>\r
17                                 <parameter name='nidx' value='`$service-data.networks.network_length`' />\r
18                                 <parameter name='nidx_len' value='`$service-data.networks.network_length + 1`' />\r
19                             </set>\r
20                         </outcome>\r
21                     </switch>\r
22                 </outcome>\r
23                 <outcome value='Other'>\r
24                     <set>\r
25                         <parameter name='nidx' value='`$tmp.nidx`' />\r
26                         <parameter name='nidx_len' value='`$service-data.networks.network_length`' />\r
27                     </set>\r
28                 </outcome>\r
29             </switch>\r
30             <set>\r
31                 <parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\r
32                 <parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\r
33                 <parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\r
34                 <parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />\r
35                 <parameter name='service-data.networks.network[$nidx].network-data.network-request-input.' value='`$network-topology-operation-input.network-request-input.`' />\r
36             </set>\r
37             <set>\r
38                 <parameter name='tmp.l3-network.model-invariant-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`" />\r
39                 <parameter name='tmp.l3-network.model-version-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-version`" />\r
40                 <parameter name='tmp.l3-network.model-customization-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`" />\r
41                 <parameter name='s-onap-model-information.model-invariant-uuid' value='`$service-model.invariant-uuid`' />\r
42                 <parameter name='s-onap-model-information.model-version' value='`$service-model.version`' />\r
43                 <parameter name='s-onap-model-information.model-uuid' value='`$service-model.service-uuid`' />\r
44                 <parameter name='s-onap-model-information.model-name' value='`$service-model.name`' />\r
45                 <parameter name='n-onap-model-information.model-invariant-uuid' value='`$network-model.invariant-uuid`' />\r
46                 <parameter name='n-onap-model-information.model-version' value='`$network-model.version`' />\r
47                 <parameter name='n-onap-model-information.model-uuid' value='`$network-model.uuid`' />\r
48                 <parameter name='n-onap-model-information.model-name' value='`$network-model.name`' />\r
49             </set>\r
50             <set>\r
51                 <parameter name='service-data.networks.network[$nidx].network-data.service-information.ecomp-model-information.' value="`$s-onap-model-information.`" />\r
52                 <parameter name='service-data.networks.network[$nidx].network-data.network-information.ecomp-model-information.' value="`$n-onap-model-information.`" />\r
53             </set>\r
54             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
55                 <parameter name="source" value="`$prop.restapi.preload-network`"/>\r
56                 <parameter name="outputPath" value="tmp.pn-url"/>\r
57                 <parameter name="target" value="{network-name}"/>\r
58                 <parameter name="replacement" value="`$tmp.network-instance-name`"/>\r
59             </execute>\r
60             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
61                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pn-url`' />\r
62                 <parameter name='restapiUser' value='`$prop.controller.user`' />\r
63                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
64                 <parameter name='format' value='json' />\r
65                 <parameter name='httpMethod' value='GET' />\r
66                 <parameter name="responsePrefix" value="preload-data" />\r
67                 <outcome value='success'>\r
68                     <block atomic="true"></block>\r
69                 </outcome>\r
70                 <outcome value='Other'>\r
71                     <return status='failure'>\r
72                         <parameter name="error-code" value="500" />\r
73                         <parameter name="error-message" value="'Error: No preload-network found with network-name =' + $tmp.network-instance-name + ' in md-sal'" />\r
74                     </return>\r
75                 </outcome>\r
76             </execute>\r
77             <set>\r
78                 <parameter name="tmp.error-message" value=""/>\r
79             </set>\r
80             <set>\r
81                 <parameter name='tmp.l3-network.network-name' value="`$tmp.network-instance-name`" />\r
82                 <parameter name='tmp.l3-network.network-type' value="`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-type`" />\r
83                 <parameter name="tmp.l3-network.physical-network-name" value="`$preload-data.preload-network-topology-information.physical-network-name`" />\r
84                 <parameter name="tmp.l3-network.is-provider-network" value="`$preload-data.preload-network-topology-information.is-provider-network`" />\r
85                 <parameter name="tmp.l3-network.is-shared-network" value="`$preload-data.preload-network-topology-information.is-shared-network`" />\r
86                 <parameter name="tmp.l3-network.is-external-network" value="`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-type`" />\r
87                 <parameter name='tmp.l3-network.network-role' value="`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-role`" />\r
88                 <parameter name='tmp.l3-network.network-technology' value="`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-technology`" />\r
89                 <parameter name='tmp.l3-network.is-bound-to-vpn' value="`$network-model.is-bound-to-vpn`" />\r
90                 <parameter name="tmp.l3-network.tenant-id" value="`$network-topology-operation-input.network-request-input.tenant`" />\r
91                 <parameter name="tmp.l3-network.network-role-instance" value="0" />\r
92                 <parameter name='tmp.l3-network.orchestration-status' value="PendingCreate" />\r
93                 <parameter name='tmp.l3-network.model-invariant-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`" />\r
94                 <parameter name='tmp.l3-network.model-version-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-version`" />\r
95                 <parameter name='tmp.l3-network.model-customization-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`" />\r
96                 <parameter name='tmp.l3-network.eipam-v6-address-plan' value="`$network-model.eipam-v6-address-plan`" />\r
97                 <parameter name='tmp.l3-network.eipam-v4-address-plan' value="`$network-model.eipam-v4-address-plan`" />\r
98                 <parameter name='tmp.l3-network.service-id' value="`$service-data.service-information.service-id`" />\r
99                 <parameter name='tmp.l3-network.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
100  + $service-data.service-information.service-instance-id\r
101  + '/service-data/networks/network/'\r
102  + $tmp.l3-network.network-id\r
103  + '/network-data/network-topology/'` " />\r
104             </set>\r
105             <set>\r
106                 <parameter name="service-data.networks.network[$nidx].network-data.network-information.network-id" value='`$tmp.l3-network.network-id`' />\r
107                 <parameter name="service-data.networks.network[$nidx].network-data.network-information.from-preload" value='true' />\r
108                 <parameter name="service-data.networks.network[$nidx].network-data.network-information.network-type" value='`$tmp.l3-network.network-type`' />\r
109             </set>\r
110             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
111                 <parameter name='filename' value='/var/tmp/lmr-nto.log' />\r
112             </execute>\r
113             <switch test="`$preload-data.preload-network-topology-information.subnets_length`">\r
114                 <outcome value=''>\r
115                     <set>\r
116                         <parameter name="preload-data.preload-network-topology-information.subnets_length" value="0" />\r
117                     </set>\r
118                 </outcome>\r
119             </switch>\r
120             <for index="i" start="0" end="`$preload-data.preload-network-topology-information.subnets_length`">\r
121                 <block atomic='true'>\r
122                     <switch test="`$preload-data.preload-network-topology-information.subnets[$i].dhcp-enabled`">\r
123                         <outcome value='Y'>\r
124                             <set>\r
125                                 <parameter name="tmp.dhcpEnabled.boolean" value="true" />\r
126                             </set>\r
127                         </outcome>\r
128                         <outcome value='N'>\r
129                             <set>\r
130                                 <parameter name="tmp.dhcpEnabled.boolean" value="false" />\r
131                             </set>\r
132                         </outcome>\r
133                     </switch>\r
134                     <switch test="`$preload-data.preload-network-topology-information.subnets[$i].addr-from-start`">\r
135                         <outcome value='Y'>\r
136                             <set>\r
137                                 <parameter name="tmp.addrFromStart.boolean" value="true" />\r
138                             </set>\r
139                         </outcome>\r
140                         <outcome value=''>\r
141                             <set>\r
142                                 <parameter name="tmp.addrFromStart.boolean" value="true" />\r
143                             </set>\r
144                         </outcome>\r
145                         <outcome value='N'>\r
146                             <set>\r
147                                 <parameter name="tmp.addrFromStart.boolean" value="false" />\r
148                             </set>\r
149                         </outcome>\r
150                     </switch>\r
151                     <set>\r
152                         <parameter name="tmp.gateway-address" value="`$preload-data.preload-network-topology-information.subnets[$i].gateway-address`" />\r
153                     </set>\r
154                     <switch test="`$preload-data.preload-network-topology-information.subnets[$i].gateway-address`">\r
155                         <outcome value=''>\r
156                             <block atomic='true'>\r
157                                 <execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getGatewayAddress">\r
158                                     <parameter name="ipAddress" value="`$preload-data.preload-network-topology-information.subnets[$i].start-address`" />\r
159                                     <parameter name="ipVersion" value="`$preload-data.preload-network-topology-information.subnets[$i].ip-version`" />\r
160                                     <parameter name="subnet" value="`$preload-data.preload-network-topology-information.subnets[$i].cidr-mask`" />\r
161                                     <parameter name="ctxVariable" value="tmp.return.generate.gateway-address" />\r
162                                     <outcome value='failure'>\r
163                                         <block atomic='true'>\r
164                                             <return status='failure'>\r
165                                                 <parameter name='error-code' value='500'/>\r
166                                                 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
167                                             </return>\r
168                                         </block>\r
169                                     </outcome>\r
170                                 </execute>\r
171                                 <set>\r
172                                     <parameter name="tmp.gateway-address" value="`$tmp.return.generate.gateway-address`" />\r
173                                 </set>\r
174                             </block>\r
175                         </outcome>\r
176                     </switch>\r
177                     <set>\r
178                         <parameter name="tmp.local.network-id" value="`$tmp.l3-network.network-id`" />\r
179                     </set>\r
180                     <call module="VNF-API" rpc="generate-subnets-subnet-id" mode="sync" >\r
181                         <outcome value='failure'>\r
182                             <block atomic='true'>\r
183                                 <return status='failure'>\r
184                                     <parameter name='error-code' value='500'/>\r
185                                     <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
186                                 </return>\r
187                             </block>\r
188                         </outcome>\r
189                     </call>\r
190                     <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
191         resource="subnet" \r
192                 key="l3-network.network-id = $tmp.l3-network.network-id \r
193                         AND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid" >\r
194                         <!-- Create subnet object -->\r
195                         <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
196                         <parameter name="subnet-id" value="`$tmp.return.generate-subnets-subnet-id.uuid`" />\r
197                         <parameter name="subnet-name" value="`$preload-data.preload-network-topology-information.subnets[$i].subnet-name`" />\r
198                         <parameter name="subnet-role" value="`$preload-data.preload-network-topology-information.subnets[$i].subnet-role`" />\r
199                         <parameter name="gateway-address" value="`$tmp.gateway-address`" />\r
200                         <parameter name="network-start-address" value="`$preload-data.preload-network-topology-information.subnets[$i].start-address`" />\r
201                         <parameter name="cidr-mask" value="`$preload-data.preload-network-topology-information.subnets[$i].cidr-mask`" />\r
202                         <parameter name="ip-version" value="`$preload-data.preload-network-topology-information.subnets[$i].ip-version`" />\r
203                         <parameter name="dhcp-start" value="`$preload-data.preload-network-topology-information.subnets[$i].dhcp-start-address`" />\r
204                         <parameter name="dhcp-end" value="`$preload-data.preload-network-topology-information.subnets[$i].dhcp-end-address`" />\r
205                         <parameter name="dhcp-enabled" value="`$tmp.dhcpEnabled.boolean`" />\r
206                         <parameter name="ip-assignment-direction" value="`$tmp.addrFromStart.boolean`" />\r
207                         <parameter name="orchestration-status" value="PendingCreate" />\r
208                         <outcome value='failure'>\r
209                             <block>\r
210                                 <set>\r
211                                     <parameter name="error-code" value="500"/>\r
212                                     <parameter name="tmp.error-message" value="`'An error occurred while saving subnet in AnAI where subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/>\r
213                                 </set>\r
214                                 <block atomic='true'>\r
215                                     <return status='failure'>\r
216                                         <parameter name='error-code' value='500'/>\r
217                                         <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
218                                     </return>\r
219                                 </block>\r
220                             </block>\r
221                         </outcome>\r
222                         <outcome value='not-found'>\r
223                             <block>\r
224                                 <set>\r
225                                     <parameter name="error-code" value="500"/>\r
226                                     <parameter name="tmp.error-message" value="`'An error occurred while saving subnet in AnAI where subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/>\r
227                                 </set>\r
228                                 <block atomic='true'>\r
229                                     <return status='failure'>\r
230                                         <parameter name='error-code' value='500'/>\r
231                                         <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
232                                     </return>\r
233                                 </block>\r
234                             </block>\r
235                         </outcome>\r
236                     </save>\r
237                     <switch test='`$preload-data.preload-network-topology-information.host-routes_length`'>\r
238                         <outcome value=''>\r
239                             <set>\r
240                                 <parameter name='preload-data.preload-network-topology-information.host-routes_length' value='0' />\r
241                             </set>\r
242                         </outcome>\r
243                     </switch>\r
244                     <for index="h" start="0" end="`$preload-data.preload-network-topology-information.host-routes_length`">\r
245                         <block atomic='true'>\r
246                             <set>\r
247                                 <parameter name="tmp.local.subnet-id" value="`$tmp.return.generate-subnets-subnet-id.uuid`" />\r
248                             </set>\r
249                             <call module="GENERIC-RESOURCE-API" rpc="generate-host-routes-host-route-id" mode="sync" >\r
250                                 <outcome value='failure'>\r
251                                     <block atomic='true'>\r
252                                         <return status='failure'>\r
253                                             <parameter name='error-code' value='500'/>\r
254                                             <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
255                                         </return>\r
256                                     </block>\r
257                                 </outcome>\r
258                             </call>\r
259                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
260         resource="host-route" \r
261                 key="l3-network.network-id = $tmp.l3-network.network-id \r
262                         AND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid  \r
263                         AND host-route.host-route-id = $tmp.return.generate-host-routes-host-route-id.uuid" >\r
264                                 <!-- Create host-route object -->\r
265                                 <parameter name="host-route-id" value="`$tmp.return.generate-host-routes-host-route-id.uuid`" />\r
266                                 <parameter name="route-prefix" value="`$preload-data.preload-network-topology-information.subnets[$i].host-routes[$h].route-prefix`" />\r
267                                 <parameter name="next-hop" value="`$preload-data.preload-network-topology-information.subnets[$i].host-routes[$h].next-hop`" />\r
268                                 <outcome value='failure'>\r
269                                     <block>\r
270                                         <set>\r
271                                             <parameter name="error-code" value="500"/>\r
272                                             <parameter name="tmp.error-message" value="`'An error occurred while saving host-route in AnAI where host-route-id = ' + $tmp.return.generate-host-routes-host-route-id.uuid`"/>\r
273                                         </set>\r
274                                         <block atomic='true'>\r
275                                             <return status='failure'>\r
276                                                 <parameter name='error-code' value='500'/>\r
277                                                 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
278                                             </return>\r
279                                         </block>\r
280                                     </block>\r
281                                 </outcome>\r
282                                 <outcome value='not-found'>\r
283                                     <block>\r
284                                         <set>\r
285                                             <parameter name="error-code" value="500"/>\r
286                                             <parameter name="tmp.error-message" value="`'An error occurred while saving host-route in AnAI where host-route-id = ' + $tmp.return.generate-host-routes-host-route-id.uuid`"/>\r
287                                         </set>\r
288                                         <block atomic='true'>\r
289                                             <return status='failure'>\r
290                                                 <parameter name='error-code' value='500'/>\r
291                                                 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
292                                             </return>\r
293                                         </block>\r
294                                     </block>\r
295                                 </outcome>\r
296                             </save>\r
297                         </block>\r
298                     </for>\r
299                 </block>\r
300             </for>\r
301             <switch test="`$preload-data.preload-network-topology-information.vpn-bindings_length`">\r
302                 <outcome value=''>\r
303                     <set>\r
304                         <parameter name="preload-data.preload-network-topology-information.vpn-bindings_length" value="0" />\r
305                     </set>\r
306                 </outcome>\r
307             </switch>\r
308             <for index="i" start="0" end="`$preload-data.preload-network-topology-information.vpn-bindings_length`">\r
309                 <block atomic='true'>\r
310                     <set>\r
311                         <parameter name="tmp.vpn-binding-id" value="" />\r
312                     </set>\r
313                     <switch test="`$preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`">\r
314                         <outcome value='Other'>\r
315                             <set>\r
316                                 <parameter name="tmp.vpn-binding-id" value="`$preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`" />\r
317                             </set>\r
318                         </outcome>\r
319                     </switch>\r
320                     <switch test="`$tmp.vpn-binding-id != ''`">\r
321                         <outcome value='true'>\r
322                             <block atomic='true'>\r
323                                 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
324         resource="vpn-binding" \r
325                 key="vpn-binding.vpn-id = $tmp.vpn-binding-id" \r
326                 local-only="false" \r
327                 pfx="tmp.AnAI.vpn-binding">\r
328                                     <outcome value='success'>\r
329                                         <switch test="`$tmp.AnAI.vpn-binding.vpn-id`" >\r
330                                             <outcome value=''>\r
331                                                 <block atomic='true'>\r
332                                                     <set>\r
333                                                         <parameter name="error-code" value="500"/>\r
334                                                         <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings from AnAI where vpn-binding-id  = ' + $tmp.vpn-binding-id + '.'`"/>\r
335                                                     </set>\r
336                                                     <block atomic='true'>\r
337                                                         <return status='failure'>\r
338                                                             <parameter name='error-code' value='500'/>\r
339                                                             <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
340                                                         </return>\r
341                                                     </block>\r
342                                                 </block>\r
343                                             </outcome>\r
344                                         </switch>\r
345                                     </outcome>\r
346                                     <outcome value='not-found'>\r
347                                         <block atomic='true'>\r
348                                             <set>\r
349                                                 <parameter name="error-code" value="500"/>\r
350                                                 <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings from AnAI where vpn-binding-id = ' + $preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`"/>\r
351                                             </set>\r
352                                             <block atomic='true'>\r
353                                                 <return status='failure'>\r
354                                                     <parameter name='error-code' value='500'/>\r
355                                                     <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
356                                                 </return>\r
357                                             </block>\r
358                                         </block>\r
359                                     </outcome>\r
360                                     <outcome value='failure'>\r
361                                         <block atomic='true'>\r
362                                             <set>\r
363                                                 <parameter name="error-code" value="500"/>\r
364                                                 <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings from AnAI where vpn-binding-id = ' + $preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`"/>\r
365                                             </set>\r
366                                             <block atomic='true'>\r
367                                                 <return status='failure'>\r
368                                                     <parameter name='error-code' value='500'/>\r
369                                                     <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
370                                                 </return>\r
371                                             </block>\r
372                                         </block>\r
373                                     </outcome>\r
374                                 </get-resource>\r
375                                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
376         resource="l3-network:relationship-list" \r
377         key="l3-network.network-id = $tmp.l3-network.network-id" \r
378         force="true" \r
379         local-only="false">\r
380                                     <parameter name="relationship-list.relationship[0].related-to" value="vpn-binding" />\r
381                                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="vpn-binding.vpn-id" />\r
382                                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.vpn-binding-id`" />\r
383                                     <outcome value='failure'>\r
384                                         <block atomic='true'>\r
385                                             <set>\r
386                                                 <parameter name="error-code" value="500"/>\r
387                                                 <parameter name="tmp.error-message" value="`'An error occurred while saving vpn-binding relationship for l3-network in AnAI where vpn-id = ' + $tmp.vpn-binding-id`"/>\r
388                                             </set>\r
389                                             <block atomic='true'>\r
390                                                 <return status='failure'>\r
391                                                     <parameter name='error-code' value='500'/>\r
392                                                     <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
393                                                 </return>\r
394                                             </block>\r
395                                         </block>\r
396                                     </outcome>\r
397                                     <outcome value='not-found'>\r
398                                         <block atomic='true'>\r
399                                             <set>\r
400                                                 <parameter name="error-code" value="500"/>\r
401                                                 <parameter name="tmp.error-message" value="`'An error occurred while saving vpn-binding relationship for l3-network in AnAI where vpn-id = ' + $tmp.vpn-binding-id`"/>\r
402                                             </set>\r
403                                             <block atomic='true'>\r
404                                                 <return status='failure'>\r
405                                                     <parameter name='error-code' value='500'/>\r
406                                                     <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
407                                                 </return>\r
408                                             </block>\r
409                                         </block>\r
410                                     </outcome>\r
411                                     <outcome value='success'>\r
412                                         <set>\r
413                                             <parameter name="tmp.is-bound-to-vpn" value="true" />\r
414                                         </set>\r
415                                     </outcome>\r
416                                 </save>\r
417                             </block>\r
418                         </outcome>\r
419                     </switch>\r
420                 </block>\r
421             </for>\r
422             <switch test="`$preload-data.preload-network-topology-information.network-policy_length`">\r
423                 <outcome value=''>\r
424                     <set>\r
425                         <parameter name='preload-data.preload-network-topology-information.network-policy_length' value='0' />\r
426                     </set>\r
427                 </outcome>\r
428             </switch>\r
429             <for index="i" start="0" end="`$preload-data.preload-network-topology-information.network-policy_length`">\r
430                 <switch test="`$preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn != ''`">\r
431                     <outcome value='true'>\r
432                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
433         resource="network-policy" \r
434                 key="network-policy.network-policy-fqdn = $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn" \r
435                 local-only="false" \r
436                 pfx="tmp.AnAI.network-policy">\r
437                             <outcome value='not-found'>\r
438                                 <block atomic='true'>\r
439                                     <set>\r
440                                         <parameter name="error-code" value="500"/>\r
441                                         <parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn`"/>\r
442                                     </set>\r
443                                     <block atomic='true'>\r
444                                         <return status='failure'>\r
445                                             <parameter name='error-code' value='500'/>\r
446                                             <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
447                                         </return>\r
448                                     </block>\r
449                                 </block>\r
450                             </outcome>\r
451                             <outcome value='failure'>\r
452                                 <block atomic='true'>\r
453                                     <set>\r
454                                         <parameter name="error-code" value="500"/>\r
455                                         <parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn`"/>\r
456                                     </set>\r
457                                     <block atomic='true'>\r
458                                         <return status='failure'>\r
459                                             <parameter name='error-code' value='500'/>\r
460                                             <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
461                                         </return>\r
462                                     </block>\r
463                                 </block>\r
464                             </outcome>\r
465                             <outcome value='success'>\r
466                                 <switch test="`$tmp.AnAI.network-policy.network-policy-id`" >\r
467                                     <outcome value=''>\r
468                                         <block atomic='true'>\r
469                                             <set>\r
470                                                 <parameter name="error-code" value="500"/>\r
471                                                 <parameter name="tmp.error-message" value="`'Failed to query newtork-policy from AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn + '. It is likely that the same network-policy-fqdn points to more than one network-policy objects in AnAI.'`"/>\r
472                                             </set>\r
473                                             <block atomic='true'>\r
474                                                 <return status='failure'>\r
475                                                     <parameter name='error-code' value='500'/>\r
476                                                     <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
477                                                 </return>\r
478                                             </block>\r
479                                         </block>\r
480                                     </outcome>\r
481                                     <outcome value='Other'>\r
482                                         <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
483         resource="l3-network:relationship-list" \r
484         key="l3-network.network-id = $tmp.l3-network.network-id" >\r
485                                             <parameter name="relationship-list.relationship[0].related-to" value="network-policy" />\r
486                                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="network-policy.network-policy-id" />\r
487                                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.AnAI.network-policy.network-policy-id`" />\r
488                                             <outcome value='failure'>\r
489                                                 <block atomic='true'>\r
490                                                     <set>\r
491                                                         <parameter name="error-code" value="500"/>\r
492                                                         <parameter name="tmp.error-message" value="`'An error occurred while saving network-policy relationship for l3-network in AnAI where network-policy-id = ' + $tmp.AnAI.network-policy.network-policy-id`"/>\r
493                                                     </set>\r
494                                                     <block atomic='true'>\r
495                                                         <return status='failure'>\r
496                                                             <parameter name='error-code' value='500'/>\r
497                                                             <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
498                                                         </return>\r
499                                                     </block>\r
500                                                 </block>\r
501                                             </outcome>\r
502                                             <outcome value='not-found'>\r
503                                                 <block atomic='true'>\r
504                                                     <set>\r
505                                                         <parameter name="error-code" value="500"/>\r
506                                                         <parameter name="tmp.error-message" value="`'An error occurred while saving network-policy relationship for l3-network in AnAI where network-policy-id = ' + $tmp.AnAI.network-policy.network-policy-id`"/>\r
507                                                     </set>\r
508                                                     <block atomic='true'>\r
509                                                         <return status='failure'>\r
510                                                             <parameter name='error-code' value='500'/>\r
511                                                             <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
512                                                         </return>\r
513                                                     </block>\r
514                                                 </block>\r
515                                             </outcome>\r
516                                         </save>\r
517                                     </outcome>\r
518                                 </switch>\r
519                             </outcome>\r
520                         </get-resource>\r
521                     </outcome>\r
522                 </switch>\r
523             </for>\r
524             <switch test="`$preload-data.preload-network-topology-information.route-table-reference_length`">\r
525                 <outcome value=''>\r
526                     <set>\r
527                         <parameter name='preload-data.preload-network-topology-information.route-table-reference_length' value='0' />\r
528                     </set>\r
529                 </outcome>\r
530             </switch>\r
531             <for index="i" start="0" end="`$preload-data.preload-network-topology-information.route-table-reference_length`">\r
532                 <switch test="`$preload-data.preload-network-topology-information.route-table-reference[$i].route-table-reference-fqdn != ''`">\r
533                     <outcome value='true'>\r
534                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
535         resource="route-table-reference" \r
536                 key="route-table-reference.route-table-reference-fqdn = $preload-data.preload-network-topology-information.route-table-reference[$i].route-table-reference-fqdn" \r
537                 pfx="tmp.AnAI.route-table-reference">\r
538                             <outcome value='not-found'>\r
539                                 <block atomic='true'>\r
540                                     <set>\r
541                                         <parameter name="error-code" value="500"/>\r
542                                         <parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn`"/>\r
543                                     </set>\r
544                                     <block atomic='true'>\r
545                                         <return status='failure'>\r
546                                             <parameter name='error-code' value='500'/>\r
547                                             <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
548                                         </return>\r
549                                     </block>\r
550                                 </block>\r
551                             </outcome>\r
552                             <outcome value='failure'>\r
553                                 <block atomic='true'>\r
554                                     <set>\r
555                                         <parameter name="error-code" value="500"/>\r
556                                         <parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn`"/>\r
557                                     </set>\r
558                                     <block atomic='true'>\r
559                                         <return status='failure'>\r
560                                             <parameter name='error-code' value='500'/>\r
561                                             <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
562                                         </return>\r
563                                     </block>\r
564                                 </block>\r
565                             </outcome>\r
566                             <outcome value='success'>\r
567                                 <switch test="`$tmp.AnAI.route-table-reference.route-table-reference-id`" >\r
568                                     <outcome value=''>\r
569                                         <block atomic='true'>\r
570                                             <set>\r
571                                                 <parameter name="error-code" value="500"/>\r
572                                                 <parameter name="tmp.error-message" value="`'Failed to query route-table-reference from AnAI where route-table-reference-fqdn = ' + $preload-data.preload-network-topology-information.route-table-reference[$i].route-table-reference-fqdn + '. It is likely that the same route-table-reference-fqdn points to more than one route-table-reference objects in AnAI.'`"/>\r
573                                             </set>\r
574                                             <block atomic='true'>\r
575                                                 <return status='failure'>\r
576                                                     <parameter name='error-code' value='500'/>\r
577                                                     <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
578                                                 </return>\r
579                                             </block>\r
580                                         </block>\r
581                                     </outcome>\r
582                                     <outcome value='Other'>\r
583                                         <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
584         resource="l3-network:relationship-list" \r
585         key="l3-network.network-id = $tmp.l3-network.network-id" >\r
586                                             <parameter name="relationship-list.relationship[0].related-to" value="route-table-reference" />\r
587                                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="route-table-reference.route-table-reference-id" />\r
588                                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.AnAI.route-table-reference.route-table-reference-id`" />\r
589                                             <outcome value='failure'>\r
590                                                 <block atomic='true'>\r
591                                                     <set>\r
592                                                         <parameter name="error-code" value="500"/>\r
593                                                         <parameter name="tmp.error-message" value="`'An error occurred while saving route-table-reference relationship for l3-network in AnAI where route-table-reference-id = ' + $tmp.AnAI.route-table-reference.route-table-reference-id`"/>\r
594                                                     </set>\r
595                                                     <block atomic='true'>\r
596                                                         <return status='failure'>\r
597                                                             <parameter name='error-code' value='500'/>\r
598                                                             <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
599                                                         </return>\r
600                                                     </block>\r
601                                                 </block>\r
602                                             </outcome>\r
603                                             <outcome value='not-found'>\r
604                                                 <block atomic='true'>\r
605                                                     <set>\r
606                                                         <parameter name="error-code" value="500"/>\r
607                                                         <parameter name="tmp.error-message" value="`'An error occurred while saving route-table-reference relationship for l3-network in AnAI where route-table-reference-id = ' + $tmp.AnAI.route-table-reference.route-table-reference-id`"/>\r
608                                                     </set>\r
609                                                     <block atomic='true'>\r
610                                                         <return status='failure'>\r
611                                                             <parameter name='error-code' value='500'/>\r
612                                                             <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
613                                                         </return>\r
614                                                     </block>\r
615                                                 </block>\r
616                                             </outcome>\r
617                                         </save>\r
618                                     </outcome>\r
619                                 </switch>\r
620                             </outcome>\r
621                         </get-resource>\r
622                     </outcome>\r
623                 </switch>\r
624             </for>\r
625             <switch test="`$tmp.is-bound-to-vpn`">\r
626                 <outcome value="true">\r
627                     <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
628         resource="l3-network" \r
629                 key="l3-network.network-id = $tmp.l3-network.network-id" >\r
630                         <parameter name="is-bound-to-vpn" value="true" />\r
631                         <outcome value='failure'>\r
632                             <block atomic='true'>\r
633                                 <set>\r
634                                     <parameter name="error-code" value="500"/>\r
635                                     <parameter name="tmp.error-message" value="`'An error occurred while updating l3-network is-bound-to-vpn in AnAI where network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/>\r
636                                 </set>\r
637                                 <block atomic='true'>\r
638                                     <return status='failure'>\r
639                                         <parameter name='error-code' value='500'/>\r
640                                         <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
641                                     </return>\r
642                                 </block>\r
643                             </block>\r
644                         </outcome>\r
645                         <outcome value='not-found'>\r
646                             <block atomic='true'>\r
647                                 <set>\r
648                                     <parameter name="error-code" value="500"/>\r
649                                     <parameter name="tmp.error-message" value="`'An error occurred while updating l3-network is-bound-to-vpn in AnAI where network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/>\r
650                                 </set>\r
651                                 <block atomic='true'>\r
652                                     <return status='failure'>\r
653                                         <parameter name='error-code' value='500'/>\r
654                                         <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
655                                     </return>\r
656                                 </block>\r
657                             </block>\r
658                         </outcome>\r
659                     </update>\r
660                 </outcome>\r
661             </switch>\r
662             <set>\r
663                 <parameter name='network-topology.network-topology-identifier-structure.' value='`$tmp.l3-network.`' />\r
664                 <parameter name='network-topology.tenant' value='`$network-topology-operation-input.network-request-input.tenant`' />\r
665                 <parameter name='network-topology.onap-model-information.' value='`$network-topology-operation-input.network-information.onap-model-information.`' />\r
666                 <parameter name='network-topology.network-parameters.' value='`$network-topology-operation-input.network-request-input.network-parameters.`' />\r
667                 <parameter name='network-topology.aic-cloud-region' value='`$network-topology-operation-input.network-request-input.aic-cloud-region`' />\r
668             </set>\r
669             <set>\r
670                 <parameter name="service-data.networks.network[$nidx].network-id" value='`$tmp.l3-network.network-id`' />\r
671                 <parameter name="service-data.networks.network[$nidx].network-data.network-information.from-preload" value='true' />\r
672                 <parameter name="service-data.networks.network[$nidx].network-data.network-topology." value='$network-topology.' />\r
673                 <parameter name="service-data.networks.network_length" value='`$nidx_len`' />\r
674             </set>\r
675             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
676                 <parameter name='filename' value='/var/tmp/lmr-nto2.log' />\r
677             </execute>\r
678             <set>\r
679                 <parameter name='networkId' value='`$tmp.l3-network.network-id`' />\r
680             </set>\r
681             <set>\r
682                 <parameter name='network-object-path'\r
683  value="`$tmp.l3-network.self-link`"/>\r
684             </set>\r
685             <set>\r
686                 <parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status' value='PendingCreate' />\r
687                 <parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-rpc-action' value='`$network-topology-operation-input.sdnc-request-header.svc-action`' />\r
688                 <parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\r
689             </set>\r
690             <return status='success' ></return>\r
691         </block>\r
692     </method>\r
693 </service-logic>