2 ============LICENSE_START=======================================================
4 ================================================================================
5 Copyright (C) 2017 AT&T Intellectual Property. All rights
7 ================================================================================
8 Licensed under the Apache License, Version 2.0 (the "License");
9 you may not use this file except in compliance with the License.
10 You may obtain a copy of the License at
11 http://www.apache.org/licenses/LICENSE-2.0
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 See the License for the specific language governing permissions and
16 limitations under the License.
17 ============LICENSE_END=========================================================
20 <service-logic xmlns="http://www.openecomp.org/sdnc/svclogic"
21 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
22 xsi:schemaLocation="http://www.openecomp.org/sdnc/svclogic ./svclogic.xsd" module='VNF-API' version='${project.version}'><method rpc="network-topology-assign" mode="sync"><block atomic="true"><switch test="`$network-topology-operation-input.service-information.service-type`"><outcome value=''><return status='failure'>
23 <parameter name='error-code' value='500'/>
24 <parameter name='error-message' value='service-type, aka AnAI subscription-service-type, is required.'/></return></outcome></switch><switch test="`$network-topology-operation-input.service-information.subscriber-name`"><outcome value=''><return status='failure'>
25 <parameter name='error-code' value='500'/>
26 <parameter name='error-message' value='subscriber-name, aka AnAI global-customer-id, is required.'/></return></outcome></switch><get-resource plugin="org.openecomp.sdnc.sli.aai.AAIService"
28 key="l3-network.network-name = $network-topology-operation-input.network-request-information.network-name"
30 pfx="tmp.AnAI.l3network.existed">
32 <outcome value='failure'>
33 <return status='failure'>
34 <parameter name='error-code' value='500' />
35 <parameter name='error-message' value="`'An error occurred while querying whether l3-network with network-name = ' + $network-topology-operation-input.network-request-information.network-name + ' already exists in AnAI'`"/>
36 </return></outcome><outcome value='success'>
37 <return status='failure'>
38 <parameter name='error-code' value='500' />
39 <parameter name='error-message' value="`'A l3-network with network-name = ' + $network-topology-operation-input.network-request-information.network-name + ' already existed in AnAI with network-id = ' + $tmp.AnAI.l3network.existed.network-id`" />
40 </return></outcome></get-resource><set>
41 <parameter name="tmp.error-message" value=""/></set><call module="VNF-API" rpc="generate-l3network-network-id" mode="sync" >
42 <outcome value='failure'>
43 <return status='failure'>
44 <parameter name='error-code' value='500'/>
45 <parameter name='error-message' value='Error in generating l3-network.network-id in SDNC'/></return></outcome></call><save plugin="org.openecomp.sdnc.sli.aai.AAIService"
47 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid" >
48 <!-- Create l3-network object -->
49 <parameter name="network-id" value="`$tmp.return.generate-l3network-network-id.uuid`" />
50 <parameter name="network-name" value="`$network-topology-operation-input.network-request-information.network-name`" />
51 <parameter name="network-type" value="`$network-topology-operation-input.network-request-information.network-type`" />
52 <parameter name="network-role" value="`$preload-data.network-topology-information.network-topology-identifier.network-role`" />
53 <parameter name="network-technology" value="`$preload-data.network-topology-information.network-topology-identifier.network-technology`" />
54 <parameter name="service-id" value="`$network-topology-operation-input.service-information.service-id`" />
55 <parameter name="tenant-id" value="`$network-topology-operation-input.network-request-information.tenant`" />
56 <parameter name="network-role-instance" value="0" />
57 <parameter name="orchestration-status" value="pending-create" /><outcome value='failure'>
58 <return status='failure'>
59 <parameter name='error-code' value='500'/>
60 <parameter name='error-message' value="`'Failed to save l3-netework in AnAI with network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/></return></outcome><outcome value='not-found'>
61 <return status='failure'>
62 <parameter name='error-code' value='500'/>
63 <parameter name='error-message' value="`'Failed to save l3-netework in AnAI with network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/></return></outcome></save><update plugin="org.openecomp.sdnc.sli.aai.AAIService"
65 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid" >
66 <parameter name="physical-network-name" value="`$preload-data.network-topology-information.provider-network-information.physical-network-name`" />
67 <parameter name="is-provider-network" value="`$preload-data.network-topology-information.provider-network-information.is-provider-network`" />
68 <parameter name="is-shared-network" value="`$preload-data.network-topology-information.provider-network-information.is-shared-network`" />
69 <parameter name="is-external-network" value="`$preload-data.network-topology-information.provider-network-information.is-external-network`" /><outcome value='failure'>
70 <block atomic='true'><set>
71 <parameter name="error-code" value="500"/>
72 <parameter name="tmp.error-message" value="`'An error occurred while updating l3-network with provider-network-information in AnAI where network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
74 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
75 <parameter name='error-code' value='500'/>
76 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
77 <block atomic='true'><set>
78 <parameter name="error-code" value="500"/>
79 <parameter name="tmp.error-message" value="`'An error occurred while updating l3-network with provider-network-information in AnAI where network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
81 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
82 <parameter name='error-code' value='500'/>
83 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome></update><for index="i" start="0" end="`$preload-data.network-topology-information.subnets_length`">
84 <block atomic='true'><switch test="`$preload-data.network-topology-information.subnets[$i].dhcp-enabled`"><outcome value='Y'><set>
85 <parameter name="tmp.dhcpEnabled.boolean" value="true" />
86 </set></outcome><outcome value='N'><set>
87 <parameter name="tmp.dhcpEnabled.boolean" value="false" />
88 </set></outcome></switch><set>
89 <parameter name="tmp.gateway-address" value="`$preload-data.network-topology-information.subnets[$i].gateway-address`" />
90 </set><switch test="`$preload-data.network-topology-information.subnets[$i].gateway-address`"><outcome value=''><block atomic='true'><execute plugin="org.openecomp.sdnc.sli.plugin.ipAddressTools.IpAddressTool" method="getGatewayAddress">
91 <parameter name="ipAddress" value="`$preload-data.network-topology-information.subnets[$i].start-address`" />
92 <parameter name="ipVersion" value="`$preload-data.network-topology-information.subnets[$i].ip-version`" />
93 <parameter name="subnet" value="`$preload-data.network-topology-information.subnets[$i].cidr-mask`" />
94 <parameter name="ctxVariable" value="tmp.return.generate.gateway-address" /></execute><set>
95 <parameter name="tmp.gateway-address" value="`$tmp.return.generate.gateway-address`" />
96 </set></block></outcome></switch><set>
97 <parameter name="tmp.local.network-id" value="`$tmp.return.generate-l3network-network-id.uuid`" />
98 </set><call module="VNF-API" rpc="generate-subnets-subnet-id" mode="sync" >
99 <outcome value='failure'>
100 <block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
101 resource="l3-network"
102 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
103 <parameter name='error-code' value='500'/>
104 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></outcome></call><save plugin="org.openecomp.sdnc.sli.aai.AAIService"
106 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid
107 AND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid" >
108 <!-- Create l3-network object -->
109 <parameter name="network-id" value="`$tmp.return.generate-l3network-network-id.uuid`" />
110 <parameter name="subnet-id" value="`$tmp.return.generate-subnets-subnet-id.uuid`" />
111 <parameter name="subnet-name" value="`$preload-data.network-topology-information.subnets[$i].subnet-name`" />
112 <parameter name="gateway-address" value="`$tmp.gateway-address`" />
113 <parameter name="network-start-address" value="`$preload-data.network-topology-information.subnets[$i].start-address`" />
114 <parameter name="cidr-mask" value="`$preload-data.network-topology-information.subnets[$i].cidr-mask`" />
115 <parameter name="ip-version" value="`$preload-data.network-topology-information.subnets[$i].ip-version`" />
116 <parameter name="dhcp-start" value="`$preload-data.network-topology-information.subnets[$i].dhcp-start-address`" />
117 <parameter name="dhcp-end" value="`$preload-data.network-topology-information.subnets[$i].dhcp-end-address`" />
118 <parameter name="dhcp-enabled" value="`$tmp.dhcpEnabled.boolean`" />
119 <parameter name="orchestration-status" value="pending-create" /><outcome value='failure'>
120 <block atomic='true'><set>
121 <parameter name="error-code" value="500"/>
122 <parameter name="tmp.error-message" value="`'An error occurred while saving l3-newtork.subnet in AnAI where subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
123 resource="l3-network"
124 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
125 <parameter name='error-code' value='500'/>
126 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
127 <block atomic='true'><set>
128 <parameter name="error-code" value="500"/>
129 <parameter name="tmp.error-message" value="`'An error occurred while saving l3-newtork.subnet in AnAI where subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
130 resource="l3-network"
131 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
132 <parameter name='error-code' value='500'/>
133 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome></save></block></for><save plugin="org.openecomp.sdnc.sli.aai.AAIService"
134 resource="l3-network:relationship-list"
135 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"
138 <!-- create relationship-list -->
139 <parameter name="relationship-list.relationship[0].related-to" value="tenant" />
140 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />
141 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="att-aic" />
142 <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />
143 <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$network-topology-operation-input.network-request-information.aic-cloud-region`" />
144 <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="tenant.tenant-id" />
145 <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$network-topology-operation-input.network-request-information.tenant`" />
146 <parameter name="relationship-list.relationship[1].related-to" value="cloud-region" />
147 <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />
148 <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="att-aic" />
149 <parameter name="relationship-list.relationship[1].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />
150 <parameter name="relationship-list.relationship[1].relationship-data[1].relationship-value" value="`$network-topology-operation-input.network-request-information.aic-cloud-region`" /><outcome value='failure'>
151 <block atomic='true'><set>
152 <parameter name="error-code" value="500"/>
153 <parameter name="tmp.error-message" value="`'An error occurred while saving tenant and clould-region relationship for l3-network in AnAI where network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
154 resource="l3-network"
155 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
156 <parameter name='error-code' value='500'/>
157 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
158 <block atomic='true'><set>
159 <parameter name="error-code" value="500"/>
160 <parameter name="tmp.error-message" value="`'An error occurred while saving tenant and clould-region relationship for l3-network in AnAI where network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
161 resource="l3-network"
162 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
163 <parameter name='error-code' value='500'/>
164 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome></save><switch test="`$preload-data.network-topology-information.vpn-bindings_length`"><outcome value=''><set>
165 <parameter name="preload-data.network-topology-information.vpn-bindings_length" value="0" />
166 </set></outcome></switch><for index="i" start="0" end="`$preload-data.network-topology-information.vpn-bindings_length`">
167 <block atomic='true'><set>
168 <parameter name="tmp.vpn-binding-id" value="" />
169 </set><switch test="`$preload-data.network-topology-information.vpn-bindings[$i].vpn-binding-id`"><outcome value='Other'>
171 <parameter name="tmp.vpn-binding-id" value="`$preload-data.network-topology-information.vpn-bindings[$i].vpn-binding-id`" />
172 </set></outcome></switch><switch test="`$preload-data.network-topology-information.vpn-bindings[$i].global-route-target != ''`" ><outcome value='true'>
173 <get-resource plugin="org.openecomp.sdnc.sli.aai.AAIService"
174 resource="vpn-binding"
175 key="vpn-binding.global-route-target = $preload-data.network-topology-information.vpn-bindings[$i].global-route-target"
177 pfx="tmp.AnAI.vpn-binding"><outcome value='success'>
178 <switch test="`$tmp.AnAI.vpn-binding.vpn-id`" ><outcome value='Other'>
180 <parameter name="tmp.vpn-binding-id" value="`$tmp.AnAI.vpn-binding.vpn-id`" />
181 </set></outcome><outcome value=''>
182 <block atomic='true'><set>
183 <parameter name="error-code" value="500"/>
184 <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings from AnAI where global-route-target = ' + $preload-data.network-topology-information.vpn-bindings[$i].global-route-target + '. It is likely that the same global-route-target points to more than one vpn-binding objects in AnAI.'`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
185 resource="l3-network"
186 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
187 <parameter name='error-code' value='500'/>
188 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome></switch></outcome><outcome value='not-found'>
189 <block atomic='true'><set>
190 <parameter name="error-code" value="500"/>
191 <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings from AnAI where global-route-target = ' + $preload-data.network-topology-information.vpn-bindings[$i].global-route-target`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
192 resource="l3-network"
193 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
194 <parameter name='error-code' value='500'/>
195 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='failure'>
196 <block atomic='true'><set>
197 <parameter name="error-code" value="500"/>
198 <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings from AnAI where global-route-target = ' + $preload-data.network-topology-information.vpn-bindings[$i].global-route-target`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
199 resource="l3-network"
200 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
201 <parameter name='error-code' value='500'/>
202 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome></get-resource></outcome></switch><switch test="`$tmp.vpn-binding-id != ''`"><outcome value='true'>
203 <save plugin="org.openecomp.sdnc.sli.aai.AAIService"
204 resource="l3-network:relationship-list"
205 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"
209 <parameter name="relationship-list.relationship[0].related-to" value="vpn-binding" />
210 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="vpn-binding.vpn-id" />
211 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.vpn-binding-id`" /><outcome value='failure'>
212 <block atomic='true'><set>
213 <parameter name="error-code" value="500"/>
214 <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`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
215 resource="l3-network"
216 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
217 <parameter name='error-code' value='500'/>
218 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
219 <block atomic='true'><set>
220 <parameter name="error-code" value="500"/>
221 <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`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
222 resource="l3-network"
223 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
224 <parameter name='error-code' value='500'/>
225 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='success'>
227 <parameter name="tmp.is-bound-to-vpn" value="true" />
228 </set></outcome></save></outcome></switch></block></for><switch test="`$preload-data.network-topology-information.network-policy_length`"><outcome value=''><set>
229 <parameter name='preload-data.network-topology-information.network-policy_length' value='0' />
230 </set></outcome></switch><for index="i" start="0" end="`$preload-data.network-topology-information.network-policy_length`">
231 <switch test="`$preload-data.network-topology-information.network-policy[$i].network-policy-fqdn != ''`"><outcome value='true'>
232 <get-resource plugin="org.openecomp.sdnc.sli.aai.AAIService"
233 resource="network-policy"
234 key="network-policy.network-policy-fqdn = $preload-data.network-topology-information.network-policy[$i].network-policy-fqdn"
236 pfx="tmp.AnAI.network-policy"><outcome value='not-found'>
237 <block atomic='true'><set>
238 <parameter name="error-code" value="500"/>
239 <parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.network-topology-information.network-policy[$i].network-policy-fqdn`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
240 resource="l3-network"
241 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
242 <parameter name='error-code' value='500'/>
243 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='failure'>
244 <block atomic='true'><set>
245 <parameter name="error-code" value="500"/>
246 <parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.network-topology-information.network-policy[$i].network-policy-fqdn`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
247 resource="l3-network"
248 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
249 <parameter name='error-code' value='500'/>
250 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='success'>
251 <switch test="`$tmp.AnAI.network-policy.network-policy-id`" ><outcome value=''>
252 <block atomic='true'><set>
253 <parameter name="error-code" value="500"/>
254 <parameter name="tmp.error-message" value="`'Failed to query newtork-policy from AnAI where network-policy-fqdn = ' + $preload-data.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.'`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
255 resource="l3-network"
256 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
257 <parameter name='error-code' value='500'/>
258 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='Other'>
259 <save plugin="org.openecomp.sdnc.sli.aai.AAIService"
260 resource="l3-network:relationship-list"
261 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid" >
262 <parameter name="relationship-list.relationship[0].related-to" value="network-policy" />
263 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="network-policy.network-policy-id" />
264 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.AnAI.network-policy.network-policy-id`" /><outcome value='failure'>
265 <block atomic='true'><set>
266 <parameter name="error-code" value="500"/>
267 <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`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
268 resource="l3-network"
269 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
270 <parameter name='error-code' value='500'/>
271 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
272 <block atomic='true'><set>
273 <parameter name="error-code" value="500"/>
274 <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`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
275 resource="l3-network"
276 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
277 <parameter name='error-code' value='500'/>
278 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome></save></outcome></switch></outcome></get-resource></outcome></switch></for><switch test="`$preload-data.network-topology-information.route-table-reference_length`"><outcome value=''><set>
279 <parameter name='preload-data.network-topology-information.route-table-reference_length' value='0' />
280 </set></outcome></switch><for index="i" start="0" end="`$preload-data.network-topology-information.route-table-reference_length`">
281 <switch test="`$preload-data.network-topology-information.route-table-reference[$i].route-table-reference-fqdn != ''`"><outcome value='true'>
282 <get-resource plugin="org.openecomp.sdnc.sli.aai.AAIService"
283 resource="route-table-reference"
284 key="route-table-reference.route-table-reference-fqdn = $preload-data.network-topology-information.route-table-reference[$i].route-table-reference-fqdn"
285 pfx="tmp.AnAI.route-table-reference"><outcome value='not-found'>
286 <block atomic='true'><set>
287 <parameter name="error-code" value="500"/>
288 <parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.network-topology-information.network-policy[$i].network-policy-fqdn`"/></set></block></outcome><outcome value='failure'>
289 <block atomic='true'><set>
290 <parameter name="error-code" value="500"/>
291 <parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.network-topology-information.network-policy[$i].network-policy-fqdn`"/></set></block></outcome><outcome value='success'>
292 <switch test="`$tmp.AnAI.route-table-referencey.route-table-reference-id`" ><outcome value=''>
293 <block atomic='true'><set>
294 <parameter name="error-code" value="500"/>
295 <parameter name="tmp.error-message" value="`'Failed to query route-table-reference from AnAI where route-table-reference-fqdn = ' + $preload-data.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.'`"/></set></block></outcome><outcome value='Other'>
296 <save plugin="org.openecomp.sdnc.sli.aai.AAIService"
297 resource="l3-network:relationship-list"
298 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid" >
299 <parameter name="relationship-list.relationship[0].related-to" value="route-table-reference" />
300 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="route-table-reference.route-table-reference-id" />
301 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.AnAI.route-table-reference.route-table-reference-id`" /><outcome value='failure'>
302 <block atomic='true'><set>
303 <parameter name="error-code" value="500"/>
304 <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`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
305 resource="l3-network"
306 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
307 <parameter name='error-code' value='500'/>
308 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
309 <block atomic='true'><set>
310 <parameter name="error-code" value="500"/>
311 <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`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
312 resource="l3-network"
313 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
314 <parameter name='error-code' value='500'/>
315 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome></save></outcome></switch></outcome></get-resource></outcome></switch></for><switch test="`$tmp.is-bound-to-vpn`"><outcome value="true"><update plugin="org.openecomp.sdnc.sli.aai.AAIService"
316 resource="l3-network"
317 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid" >
318 <parameter name="is-bound-to-vpn" value="true" /><outcome value='failure'>
319 <block atomic='true'><set>
320 <parameter name="error-code" value="500"/>
321 <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`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
322 resource="l3-network"
323 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
324 <parameter name='error-code' value='500'/>
325 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
326 <block atomic='true'><set>
327 <parameter name="error-code" value="500"/>
328 <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`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
329 resource="l3-network"
330 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
331 <parameter name='error-code' value='500'/>
332 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome></update></outcome></switch><save plugin="org.openecomp.sdnc.sli.aai.AAIService"
333 resource="l3-network:relationship-list"
334 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid" >
335 <parameter name="relationship-list.relationship[0].related-to" value="service-instance" />
336 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="customer.global-customer-id" />
337 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$network-topology-operation-input.service-information.subscriber-name`" />
338 <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="service-subscription.service-type" />
339 <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$network-topology-operation-input.service-information.service-type`" />
340 <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="service-instance.service-instance-id" />
341 <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$network-topology-operation-input.service-information.service-instance-id`" /><outcome value='failure'>
342 <block atomic='true'><set>
343 <parameter name="error-code" value="500"/>
344 <parameter name="tmp.error-message" value="`'An error occurred while saving service-instance relationship for l3-network in AnAI where service-instance-id = ' + $network-topology-operation-input.service-information.service-instance-id`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
345 resource="l3-network"
346 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
347 <parameter name='error-code' value='500'/>
348 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
349 <block atomic='true'><set>
350 <parameter name="error-code" value="500"/>
351 <parameter name="tmp.error-message" value="`'An error occurred while saving service-instance relationship for l3-network in AnAI where service-instance-id = ' + $network-topology-operation-input.service-information.service-instance-id`"/></set><block atomic='true'><delete plugin="org.openecomp.sdnc.sli.aai.AAIService"
352 resource="l3-network"
353 key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete><return status='failure'>
354 <parameter name='error-code' value='500'/>
355 <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/></return></block></block></outcome></save><set>
356 <parameter name="ack-final" value="Y"/></set><return status="success">
357 <parameter name="networkId" value="`$tmp.return.generate-l3network-network-id.uuid`" />
358 <parameter name="error-code" value="200" /></return></block></method></service-logic>