Merge "Remove test for Active on Delete"
[sdnc/oam.git] / platform-logic / vnfapi / src / main / xml / VNF-API_network-topology-changeassign.xml
1 <!--
2   ============LICENSE_START=======================================================
3   openECOMP : SDN-C
4   ================================================================================
5   Copyright (C) 2017 AT&T Intellectual Property. All rights
6                                                 reserved.
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=========================================================
18   -->
19
20 <service-logic xmlns="http://www.onap.org/sdnc/svclogic"
21     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
22     xsi:schemaLocation="http://www.onap.org/sdnc/svclogic ./svclogic.xsd" module='VNF-API' version='${project.version}'><method rpc="network-topology-changeassign" mode="sync"><block atomic="true"><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
23     resource="l3-network"
24         key="l3-network.network-id = $network-topology-operation-input.network-request-information.network-id"
25         local-only="false"
26         pfx="tmp.AnAI.l3network">
27 <outcome value='failure'>
28 <return status='failure'>
29     <parameter name="error-code" value="500" />
30     <parameter name="error-message" value="`'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + ' from AnAI'`" /></return></outcome><outcome value='not-found'>
31 <return status='failure'>
32     <parameter name="error-code" value="404" />
33     <parameter name="error-message" value="`'network-id: ' + $network-topology-operation-input.network-request-information.network-id + 'not found in AnAI'`" /></return></outcome></get-resource><switch test="`$tmp.AnAI.l3network.network-name == $network-topology-operation-input.network-request-information.network-name`"><outcome value='false'>
34 <return status='failure'>
35     <parameter name="error-code" value="404" />
36     <parameter name="error-message" value="`'The input network-name,' + network-topology-operation-input.network-request-information.network-name + ', does not match what is returned from AnAI with network-id = ' + $network-topology-operation-input.network-request-information.network-id`" /></return></outcome></switch><switch test="`$tmp.AnAI.l3network.network-type == $network-topology-operation-input.network-request-information.network-type`"><outcome value='false'>
37 <return status='failure'>
38     <parameter name="error-code" value="404" />
39     <parameter name="error-message" value="`'The input network-type,' + network-topology-operation-input.network-request-information.network-type + ', does not match what is returned from AnAI with network-id = ' + $network-topology-operation-input.network-request-information.network-id`" /></return></outcome></switch><switch test="`$tmp.AnAI.l3network.network-name == $preload-data.network-topology-information.network-topology-identifier.network-name`"><outcome value='false'>
40 <return status='failure'>
41     <parameter name="error-code" value="404" />
42     <parameter name="error-message" value="`'No preload network found with network-name = ' + $tmp.AnAI.l3network.network-name + ' in SDNC'`" /></return></outcome></switch><switch test="`$tmp.AnAI.l3network.network-type == $preload-data.network-topology-information.network-topology-identifier.network-type`"><outcome value='false'>
43 <return status='failure'>
44     <parameter name="error-code" value="404" />
45     <parameter name="error-message" value="`'No preload network found with network-type = ' + $tmp.AnAI.l3network.network-type + ' in SDNC'`" /></return></outcome></switch><set>
46     <parameter name='x' value='0' />
47     <parameter name='tmp.error-message' value='' />
48     <parameter name='execute_failure' value='false' />
49     <parameter name='tmp.l3networkUpdate' value='0' /></set><switch test="`$tmp.AnAI.l3network.subnets.subnet_length`"><outcome value=''><set>
50 <parameter name="tmp.AnAI.l3network.subnets.subnet_length" value="0" />
51 </set></outcome></switch><for index="k" start="0" end="`$tmp.AnAI.l3network.subnets.subnet_length`">
52 <block atomic='true'><set>
53 <parameter name='tmp.start-address-match' value='0' />
54 </set><set>
55 <parameter name='tmp.subnetUpdate' value='0' />
56 </set><block atomic='true'><for index="n" start="0" end="`$preload-data.network-topology-information.subnets_length`">
57 <switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].network-start-address == $preload-data.network-topology-information.subnets[$n].start-address`"><outcome value='true'>
58 <block atomic='true'><set>
59 <parameter name='tmp.start-address-match' value='1' />
60 </set><switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].cidr-mask == $preload-data.network-topology-information.subnets[$n].cidr-mask`"><outcome value='false'>
61 <set>
62 <parameter name="tmp.subnetUpdate" value="1" />
63 </set></outcome></switch><switch test="`$preload-data.network-topology-information.subnets[$n].gateway-address`"><outcome value=''><block>
64 <execute plugin="org.onap.ccsdk.sli.plugins.ipaddresstools.IpAddressTool" method="getGatewayAddress">
65     <parameter name="ipAddress" value="`$preload-data.network-topology-information.subnets[$n].start-address`" />
66     <parameter name="ipVersion" value="`$preload-data.network-topology-information.subnets[$n].ip-version`" />
67     <parameter name="subnet" value="`$preload-data.network-topology-information.subnets[$n].cidr-mask`" />
68     <parameter name="ctxVariable" value="tmp.return.generate.gateway-address" /></execute><switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].gateway-address == $tmp.return.generate.gateway-address`"><outcome value='false'>
69 <block>
70 <set>
71 <parameter name="tmp.gateway-address" value="`$tmp.return.generate.gateway-address`" />
72 </set><set>
73 <parameter name="tmp.subnetUpdate" value="1" />
74 </set></block></outcome></switch></block></outcome><outcome value='Other'>
75 <switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].gateway-address == $preload-data.network-topology-information.subnets[$n].gateway-address`"><outcome value='false'>
76 <block>
77 <set>
78 <parameter name="tmp.gateway-address" value="`$preload-data.network-topology-information.subnets[$n].gateway-address`" />
79 </set><set>
80 <parameter name="tmp.subnetUpdate" value="1" />
81 </set></block></outcome><outcome value='true'>
82 <set>
83 <parameter name="tmp.gateway-address" value="`$preload-data.network-topology-information.subnets[$n].gateway-address`" />
84 </set></outcome></switch></outcome></switch><switch test="`$preload-data.network-topology-information.subnets[$n].dhcp-enabled`"><outcome value='N'><set>
85 <parameter name="tmp.dhcpEnabled.boolean" value="false" />
86 </set></outcome><outcome value='Y'><set>
87 <parameter name="tmp.dhcpEnabled.boolean" value="true" />
88 </set></outcome></switch><switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].dhcp-enabled == $tmp.dhcpEnabled.boolean`"><outcome value='false'>
89 <block>
90 <set>
91 <parameter name="tmp.subnetUpdate" value="1" />
92 </set></block></outcome></switch><switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].dhcp-start == $preload-data.network-topology-information.subnets[$n].dhcp-start-address`"><outcome value='false'>
93 <block>
94 <set>
95 <parameter name="tmp.subnetUpdate" value="1" />
96 </set></block></outcome></switch><switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].dhcp-end == $preload-data.network-topology-information.subnets[$n].dhcp-end-address`"><outcome value='false'>
97 <block>
98 <set>
99 <parameter name="tmp.subnetUpdate" value="1" />
100 </set></block></outcome></switch><switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].subnet-name == $preload-data.network-topology-information.subnets[$n].subnet-name`"><outcome value='false'>
101 <block>
102 <set>
103 <parameter name="tmp.subnetUpdate" value="1" />
104 </set></block></outcome></switch><switch test="`$tmp.subnetUpdate == 1`"><outcome value='true'>
105 <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
106     resource="subnet"
107         key="l3-network.network-id = $tmp.AnAI.l3network.network-id
108             AND subnet.subnet-id = $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id" >
109     <!-- Update l3network.subnet -->
110     <parameter name="gateway-address" value="`$tmp.gateway-address`"/>
111     <parameter name="subnet-name" value="`$preload-data.network-topology-information.subnets[$n].subnet-name`"/>
112     <parameter name="cidr-mask" value="`$preload-data.network-topology-information.subnets[$n].cidr-mask`"/>
113     <parameter name="dhcp-start" value="`$preload-data.network-topology-information.subnets[$n].dhcp-start-address`"/>
114     <parameter name="dhcp-end" value="`$preload-data.network-topology-information.subnets[$n].dhcp-end-address`"/>
115     <parameter name="dhcp-enabled" value="`$tmp.dhcpEnabled.boolean`"/>
116     <parameter name="orchestration-status" value="pending-update" />
117         <outcome value='failure'>
118 <block>
119 <set>
120     <parameter name='k' value='`$tmp.AnAI.l3network.subnets.subnet_length + 1`' />
121     <parameter name='n' value='`$preload-data.network-topology-information.subnets_length + 1`' /></set><set>
122     <parameter name="error-code" value="500"/>
123     <parameter name="tmp.error-message" value="`'An error occurred while updating subnet attributes in AnAI with subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`"/></set><return status='success'>
124     <parameter name='execute_failure' value='true' />
125 </return></block></outcome><outcome value='not-found'>
126 <block>
127 <set>
128     <parameter name='k' value='`$tmp.AnAI.l3network.subnets.subnet_length + 1`' />
129     <parameter name='n' value='`$preload-data.network-topology-information.subnets_length + 1`' /></set><set>
130     <parameter name="error-code" value="500"/>
131     <parameter name="tmp.error-message" value="`'An error occurred while updating subnet attributes in AnAI with subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`"/></set><return status='success'>
132     <parameter name='execute_failure' value='true' />
133 </return></block></outcome><outcome value='success'>
134 <block>
135 <set>
136   <parameter name="tmp.subnetRollback[$x].subnet-id" value= "`$tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`"/>
137   <parameter name="tmp.subnetRollback[$x].type" value = "update"/>
138
139
140
141 </set><set>
142   <parameter name="x" value = "`$x + 1`"  />
143
144 </set><set>
145 <parameter name="tmp.l3networkUpdate" value="1" />
146 </set></block></outcome></update></outcome></switch></block></outcome></switch></for><switch test="`$execute_failure`"><outcome value='false'>
147 <switch test="`$tmp.start-address-match == 0`"><outcome value='true'>
148 <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
149     resource="subnet"
150         key="l3-network.network-id = $tmp.AnAI.l3network.network-id
151             AND subnet.subnet-id = $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id" >
152 <parameter name="orchestration-status" value="pending-delete" />
153         <outcome value='failure'>
154 <block>
155 <set>
156     <parameter name='k' value='`$tmp.AnAI.l3network.subnets.subnet_length + 1`' />
157     <parameter name='n' value='`$preload-data.network-topology-information.subnets_length + 1`' /></set><set>
158     <parameter name="error-code" value="500"/>
159     <parameter name="tmp.error-message" value="`'An error occurred while updating subnet status to pending-delete in AnAI with subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`"/></set><return status='success'>
160     <parameter name='execute_failure' value='true' />
161 </return></block></outcome><outcome value='not-found'>
162 <block>
163 <set>
164     <parameter name='k' value='`$tmp.AnAI.l3network.subnets.subnet_length + 1`' />
165     <parameter name='n' value='`$preload-data.network-topology-information.subnets_length + 1`' /></set><set>
166     <parameter name="error-code" value="500"/>
167     <parameter name="tmp.error-message" value="`'An error occurred while updating subnet status to pending-delete in AnAI with subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`"/></set><return status='success'>
168     <parameter name='execute_failure' value='true' />
169 </return></block></outcome><outcome value='success'>
170 <block>
171 <set>
172   <parameter name="tmp.subnetRollback[$x].subnet-id" value= "`$tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`"/>
173   <parameter name="tmp.subnetRollback[$x].orchestration-status" value= "`$tmp.AnAI.l3network.subnets.subnet[$k].orchestration-status`" />
174   <parameter name="tmp.subnetRollback[$x].type" value = "delete"  />
175
176
177
178 </set><set>
179   <parameter name="x" value = "`$x + 1`"  />
180
181 </set><set>
182 <parameter name="tmp.l3networkUpdate" value="1" />
183 </set></block></outcome></update></outcome></switch></outcome></switch></block></block></for><switch test="`$execute_failure`"><outcome value='false'>
184 <for index="i" start="0" end="`$preload-data.network-topology-information.subnets_length`">
185 <block atomic='true'><set>
186 <parameter name="tmp.start-address-match" value="0" />
187 </set><block atomic='true'><for index="j" start="0" end="`$tmp.AnAI.l3network.subnets.subnet_length`">
188 <switch test="`$preload-data.network-topology-information.subnets[$i].start-address == $tmp.AnAI.l3network.subnets.subnet[$j].network-start-address`"><outcome value='true'>
189 <set>
190 <parameter name='tmp.start-address-match' value='1' />
191 </set></outcome></switch></for><switch test="`$tmp.start-address-match == 0`"><outcome value='true'>
192 <block atomic="true"><switch test="`$preload-data.network-topology-information.subnets[$i].dhcp-enabled`"><outcome value='N'><set>
193 <parameter name="tmp.dhcpEnabled.boolean" value="false" />
194 </set></outcome><outcome value='Y'><set>
195 <parameter name="tmp.dhcpEnabled.boolean" value="true" />
196 </set></outcome></switch><set>
197 <parameter name='tmp.gateway-address' value='`$preload-data.network-topology-information.subnets[$i].gateway-address`' />
198 </set><switch test="`$preload-data.network-topology-information.subnets[$i].gateway-address`"><outcome value=''><block>
199 <execute plugin="org.onap.ccsdk.sli.plugins.ipaddresstools.IpAddressTool" method="getGatewayAddress">
200     <parameter name="ipAddress" value="`$preload-data.network-topology-information.subnets[$i].start-address`" />
201     <parameter name="ipVersion" value="`$preload-data.network-topology-information.subnets[$i].ip-version`" />
202     <parameter name="subnet" value="`$preload-data.network-topology-information.subnets[$i].cidr-mask`" />
203     <parameter name="ctxVariable" value="tmp.return.generate.gateway-address" /></execute><set>
204 <parameter name="tmp.gateway-address" value="`$tmp.return.generate.gateway-address`" />
205 </set></block></outcome></switch><set>
206 <parameter name="tmp.local.network-id" value="`$tmp.AnAI.l3network.network-id`" />
207 </set><call module="VNF-API" rpc="generate-subnets-subnet-id" mode="sync" >
208 <outcome value='failure'>
209 <block>
210 <set>
211     <parameter name='j' value='`$tmp.AnAI.l3subnet_length + 1`' />
212     <parameter name='i' value='`$preload-data.network-topology-information.subnets_length + 1`' /></set><set>
213     <parameter name="error-code" value="500"/>
214     <parameter name="tmp.error-message" value="`'An error occurred while saving new subnet in AnAI with subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/></set><return status='success'>
215     <parameter name='execute_failure' value='true' />
216 </return></block></outcome></call><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
217     resource="subnet"
218         key="l3-network.network-id = $tmp.AnAI.l3network.network-id
219             AND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid" >
220     <!-- Create l3-network object -->
221     <parameter name="network-id" value="`$tmp.AnAI.l3network.network-id`" />
222     <parameter name="subnet-id" value="`$tmp.return.generate-subnets-subnet-id.uuid`" />
223     <parameter name="gateway-address" value="`$tmp.gateway-address`" />
224     <parameter name="subnet-name" value="`$preload-data.network-topology-information.subnets[$i].subnet-name`" />
225     <parameter name="network-start-address" value="`$preload-data.network-topology-information.subnets[$i].start-address`" />
226     <parameter name="cidr-mask" value="`$preload-data.network-topology-information.subnets[$i].cidr-mask`" />
227     <parameter name="ip-version" value="`$preload-data.network-topology-information.subnets[$i].ip-version`" />
228     <parameter name="dhcp-start" value="`$preload-data.network-topology-information.subnets[$i].dhcp-start-address`" />
229     <parameter name="dhcp-end" value="`$preload-data.network-topology-information.subnets[$i].dhcp-end-address`" />
230     <parameter name="dhcp-enabled" value="`$tmp.dhcpEnabled.boolean`" />
231     <parameter name="orchestration-status" value="pending-create" /><outcome value='failure'>
232 <block>
233 <set>
234     <parameter name='j' value='`$tmp.AnAI.l3subnet_length + 1`' />
235     <parameter name='i' value='`$preload-data.network-topology-information.subnets_length + 1`' /></set><set>
236     <parameter name="error-code" value="500"/>
237     <parameter name="tmp.error-message" value="`'An error occurred while saving new subnet in AnAI with subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/></set><return status='success'>
238     <parameter name='execute_failure' value='true' />
239 </return></block></outcome><outcome value='not-found'>
240 <block>
241 <set>
242     <parameter name='j' value='`$tmp.AnAI.l3subnet_length + 1`' />
243     <parameter name='i' value='`$preload-data.network-topology-information.subnets_length + 1`' /></set><set>
244     <parameter name="error-code" value="500"/>
245     <parameter name="tmp.error-message" value="`'An error occurred while saving new subnet in AnAI with subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/></set><return status='success'>
246     <parameter name='execute_failure' value='true' />
247 </return></block></outcome><outcome value='success'>
248 <block>
249 <set>
250   <parameter name="tmp.subnetRollback[$x].subnet-id" value= "`$tmp.return.generate-subnets-subnet-id.uuid`" />
251   <parameter name="tmp.subnetRollback[$x].type" value = "create"  /></set><set>
252   <parameter name="x" value = "`$x + 1`"  />
253
254 </set><set>
255 <parameter name='tmp.l3networkUpdate' value='1' />
256 </set></block></outcome></save></block></outcome></switch></block></block></for></outcome></switch><switch test="`$execute_failure`"><outcome value='false'>
257 <block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
258     resource="l3-network:relationship-list"
259     key="l3-network.network-id = $tmp.AnAI.l3network.network-id
260         AND related-to = vpn-binding" ><outcome value='failure'>
261 <block>
262 <set>
263     <parameter name="error-code" value="500"/>
264     <parameter name="tmp.error-message" value="An error occurred while deleting l3-network vpn-binding relationship from AnAI"/></set><return status='success'>
265     <parameter name='execute_failure' value='true' />
266 </return></block></outcome></delete><switch test="`$execute_failure`"><outcome value='false'>
267 <block atomic='true'><switch test="`$preload-data.network-topology-information.vpn-bindings_length`"><outcome value=''><set>
268 <parameter name="preload-data.network-topology-information.vpn-bindings_length" value="0" />
269 </set></outcome></switch><for index="i" start="0" end="`$preload-data.network-topology-information.vpn-bindings_length`">
270 <block atomic='true'><set>
271 <parameter name="tmp.vpn-binding-id" value="" />
272 </set><switch test="`$preload-data.network-topology-information.vpn-bindings[$i].vpn-binding-id`"><outcome value='Other'>
273 <set>
274 <parameter name="tmp.vpn-binding-id" value="`$preload-data.network-topology-information.vpn-bindings[$i].vpn-binding-id`" />
275 </set></outcome></switch><switch test="`$preload-data.network-topology-information.vpn-bindings[$i].global-route-target != ''`" ><outcome value='true'>
276 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
277     resource="vpn-binding"
278         key="vpn-binding.global-route-target = $preload-data.network-topology-information.vpn-bindings[$i].global-route-target"
279         pfx="tmp.AnAI.vpn-binding"><outcome value='not-found'>
280 <block><set>
281     <parameter name="error-code" value="500"/>
282     <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings n AnAI where global-route-target = ' + $preload-data.network-topology-information.vpn-bindings[$i].global-route-target`"/></set><return status='success'>
283     <parameter name='execute_failure' value='true' />
284 </return></block></outcome><outcome value='failure'>
285 <block><set>
286     <parameter name="error-code" value="500"/>
287     <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings n AnAI where global-route-target = ' + $preload-data.network-topology-information.vpn-bindings[$i].global-route-target`"/></set><return status='success'>
288     <parameter name='execute_failure' value='true' />
289 </return></block></outcome><outcome value='success'>
290 <set>
291 <parameter name="tmp.vpn-binding-id" value="`$tmp.AnAI.vpn-binding.vpn-id`" />
292 </set></outcome></get-resource></outcome></switch><switch test="`$execute_failure`"><outcome value='false'>
293 <switch test="`$tmp.vpn-binding-id != ''`"><outcome value='true'>
294 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
295     resource="l3-network:relationship-list"
296     key="l3-network.network-id = $tmp.AnAI.l3network.network-id" >
297 <parameter name="relationship-list.relationship[0].related-to" value="vpn-binding" />
298 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="vpn-binding.vpn-id" />
299 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.vpn-binding-id`" /><outcome value='failure'>
300 <block><set>
301     <parameter name="error-code" value="500"/>
302     <parameter name="tmp.error-message" value="`'An error occurred while saving l3-newtork vpn-binding relationship in AnAI where vpn-id = ' + $tmp.vpn-binding-id`"/></set><set>
303   <parameter name="i" value = "`$preload-data.network-topology-information.vpn-bindings_length + 1`"  />
304
305 </set><return status='success'>
306     <parameter name='execute_failure' value='true' />
307 </return></block></outcome><outcome value='not-found'>
308 <block><set>
309     <parameter name="error-code" value="500"/>
310     <parameter name="tmp.error-message" value="`'An error occurred while saving l3-newtork vpn-binding relationship in AnAI where vpn-id = ' + $tmp.vpn-binding-id`"/></set><set>
311   <parameter name="i" value = "`$preload-data.network-topology-information.vpn-bindings_length + 1`"  />
312
313 </set><return status='success'>
314     <parameter name='execute_failure' value='true' />
315 </return></block></outcome><outcome value='success'>
316 <set>
317 <parameter name='tmp.vpn-binding.updated' value='1' />
318 </set></outcome></save></outcome></switch></outcome></switch></block></for></block></outcome></switch></block></outcome></switch><switch test="`$execute_failure`"><outcome value='false'>
319 <block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
320     resource="l3-network:relationship-list"
321     key="l3-network.network-id = $tmp.AnAI.l3network.network-id
322          AND related-to = network-policy" ><outcome value='failure'>
323 <block>
324 <set>
325     <parameter name="error-code" value="500"/>
326     <parameter name="tmp.error-message" value="An error occurred while deleting l3-network network-policy relationship from AnAI in preparation to regenerate the network-policy relationship from PRELOAD."/></set><return status='success'>
327     <parameter name='execute_failure' value='true' />
328 </return></block></outcome></delete><switch test="`$execute_failure`"><outcome value='false'>
329 <block atomic='true'><switch test="`$preload-data.network-topology-information.network-policy_length`"><outcome value=''><set>
330 <parameter name='preload-data.network-topology-information.network-policy_length' value='0' />
331 </set></outcome></switch><for index="i" start="0" end="`$preload-data.network-topology-information.network-policy_length`">
332 <switch test="`$preload-data.network-topology-information.network-policy[$i].network-policy-fqdn != NULL`"><outcome value='true'>
333 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
334     resource="network-policy"
335         key="network-policy.network-policy-fqdn = $preload-data.network-topology-information.network-policy[$i].network-policy-fqdn"
336         pfx="tmp.AnAI.network-policy" ><outcome value='not-found'>
337 <block><set>
338     <parameter name="error-code" value="500"/>
339     <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><return status='success'>
340     <parameter name='execute_failure' value='true' />
341 </return></block></outcome><outcome value='failure'>
342 <block><set>
343     <parameter name="error-code" value="500"/>
344     <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><return status='success'>
345     <parameter name='execute_failure' value='true' />
346 </return></block></outcome><outcome value='success'>
347 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
348     resource="l3-network:relationship-list"
349     key="l3-network.network-id = $tmp.AnAI.l3network.network-id" >
350 <parameter name="relationship-list.relationship[0].related-to" value="network-policy" />
351 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="network-policy.network-policy-id" />
352 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.AnAI.network-policy.network-policy-id`" /><outcome value='failure'>
353 <block><set>
354     <parameter name="error-code" value="500"/>
355     <parameter name="tmp.error-message" value="`'An error occurred while saving l3-newtork network-policy relationship in AnAI where network-policy-id = ' + $tmp.AnAI.network-policy.network-policy-id`"/></set><return status='success'>
356     <parameter name='execute_failure' value='true' />
357 </return></block></outcome><outcome value='not-found'>
358 </outcome><outcome value='success'>
359 <set>
360 <parameter name='tmp.network-policy.updated' value='1' />
361 </set></outcome></save></outcome></get-resource></outcome></switch></for></block></outcome></switch></block></outcome></switch><switch test="`$execute_failure`"><outcome value='false'>
362 <block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
363     resource="l3-network:relationship-list"
364     key="l3-network.network-id = $tmp.AnAI.l3network.network-id
365          AND related-to = route-table-reference" ><outcome value='failure'>
366 <block>
367 <set>
368     <parameter name="error-code" value="500"/>
369     <parameter name="tmp.error-message" value="An error occurred while deleting l3-network route-table-reference relationship from AnAI prior to regenerate the route-table-reference relationship from PRELOAD."/></set><return status='success'>
370     <parameter name='execute_failure' value='true' />
371 </return></block></outcome></delete><switch test="`$execute_failure`"><outcome value='false'>
372 <block atomic='true'><switch test="`$preload-data.network-topology-information.route-table-reference_length`"><outcome value=''><set>
373 <parameter name='preload-data.network-topology-information.route-table-reference_length' value='0' />
374 </set></outcome></switch><for index="i" start="0" end="`$preload-data.network-topology-information.route-table-reference_length`">
375 <switch test="`$preload-data.network-topology-information.route-table-reference[$i].route-table-reference-fqdn != NULL`"><outcome value='true'>
376 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
377     resource="route-table-reference"
378         key="route-table-reference.route-table-reference-fqdn = $preload-data.network-topology-information.route-table-reference[$i].route-table-reference-fqdn"
379         pfx="tmp.AnAI.route-table-reference"><outcome value='not-found'>
380 <block><set>
381     <parameter name="error-code" value="500"/>
382     <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><return status='success'>
383     <parameter name='execute_failure' value='true' />
384 </return></block></outcome><outcome value='failure'>
385 <block><set>
386     <parameter name="error-code" value="500"/>
387     <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><return status='success'>
388     <parameter name='execute_failure' value='true' />
389 </return></block></outcome><outcome value='success'>
390 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
391     resource="l3-network:relationship-list"
392     key="l3-network.network-id = $tmp.AnAI.l3network.network-id" >
393 <parameter name="relationship-list.relationship[0].related-to" value="route-table-reference" />
394 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="route-table-reference.route-table-reference-id" />
395 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.AnAI.route-table-reference.route-table-reference-id`" /><outcome value='failure'>
396 <block><set>
397     <parameter name="error-code" value="500"/>
398     <parameter name="tmp.error-message" value="`'An error occurred while saving l3-newtork route-table-reference relationship in AnAI where route-table-reference-id = ' + $tmp.AnAI.route-table-reference.route-table-reference-id`"/></set><return status='success'>
399     <parameter name='execute_failure' value='true' />
400 </return></block></outcome><outcome value='not-found'>
401 </outcome><outcome value='success'>
402 <set>
403 <parameter name='tmp.route-table-reference.updated' value='1' />
404 </set></outcome></save></outcome></get-resource></outcome></switch></for></block></outcome></switch></block></outcome></switch><switch test="`$execute_failure`"><outcome value='false'>
405 <switch test="`$tmp.l3networkUpdate == 1`">
406 <outcome value='true'>
407 <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
408     resource="l3-network"
409         key="l3-network.network-id = $tmp.AnAI.l3network.network-id" >
410 <parameter name="orchestration-status" value="pending-update" /><outcome value='failure'>
411 <block><set>
412     <parameter name="error-code" value="500"/>
413     <parameter name="tmp.error-message" value="An error occurred while updating l3-network.orchestration-status in AnAI"/></set><return status='success'>
414     <parameter name='execute_failure' value='true' />
415 </return></block></outcome><outcome value='not-found'>
416 <block><set>
417     <parameter name="error-code" value="500"/>
418     <parameter name="tmp.error-message" value="An error occurred while updating l3-network.orchestration-status in AnAI"/></set><return status='success'>
419     <parameter name='execute_failure' value='true' />
420 </return></block></outcome><outcome value='success'>
421 <set>
422 <parameter name='tmp.l3network.status.updated' value='1' />
423 </set></outcome></update></outcome></switch></outcome></switch><switch test="`$execute_failure`"><outcome value="true"><block atomic='true'><for index="z" start="0" end="`$tmp.AnAI.l3network.relationship-list.relationship_length`">
424 <switch test="`$tmp.AnAI.l3network.relationship-list.relationship[$z].related-to`"><outcome value='vpn-binding'>
425 <switch test="`$tmp.vpn-binding.updated == 1`"><outcome value='true'>
426 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
427     resource="l3-network:relationship-list"
428     key="l3-network.network-id = $tmp.AnAI.l3network.network-id" >
429 <parameter name="relationship-list.relationship[0].related-to" value="vpn-binding" />
430 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="vpn-binding.vpn-id" />
431 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value`" /><outcome value='failure'>
432 <set>
433     <parameter name="error-code" value="500"/>
434     <parameter name="tmp.rollback.error-message" value="`'An error occurred during rollback of l3-newtork vpn-binding relationship in AnAI where vpn-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome><outcome value='not-found'>
435 <set>
436     <parameter name="error-code" value="500"/>
437     <parameter name="tmp.rollback.error-message" value="`'An error occurred during rollback of l3-newtork vpn-binding relationship in AnAI where vpn-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome></save></outcome></switch></outcome><outcome value='network-policy'>
438 <switch test="`$tmp.network-policy.updated == 1`"><outcome value='true'>
439 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
440     resource="l3-network:relationship-list"
441     key="l3-network.network-id = $tmp.AnAI.l3network.network-id" >
442 <parameter name="relationship-list.relationship[0].related-to" value="network-policy" />
443 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="network-policy.network-policy-id" />
444 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value`" /><outcome value='failure'>
445 <set>
446     <parameter name="error-code" value="500"/>
447     <parameter name="tmp.rollback.error-message" value="`'An error occurred during rollback of l3-newtork network-policy relationship in AnAI where network-policy-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome><outcome value='not-found'>
448 <set>
449     <parameter name="error-code" value="500"/>
450     <parameter name="tmp.rollback.error-message" value="`'An error occurred during rollback of l3-newtork network-policy relationship in AnAI where network-policy-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome></save></outcome></switch></outcome><outcome value='route-table-reference'>
451 <switch test="`$tmp.route-table-reference.updated == 1`"><outcome value='true'>
452 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
453     resource="l3-network:relationship-list"
454     key="l3-network.network-id = $tmp.AnAI.l3network.network-id" >
455 <parameter name="relationship-list.relationship[0].related-to" value="route-table-reference" />
456 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="route-table-reference.route-table-reference-id" />
457 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value`" /><outcome value='failure'>
458 <set>
459     <parameter name="error-code" value="500"/>
460     <parameter name="tmp.rollback.error-message" value="`'An error occurred during rollback of l3-newtork route-table-reference relationship in AnAI where route-table-reference-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome><outcome value='not-found'>
461 <set>
462     <parameter name="error-code" value="500"/>
463     <parameter name="tmp.rollback.error-message" value="`'An error occurred during rollback of l3-newtork route-table-reference relationship in AnAI where route-table-reference-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome></save></outcome></switch></outcome></switch></for><for index="j" start="0" end="`$x`">
464 <block atomic='true'><set>
465     <parameter name="tmp.rollback.match" value="0"/></set><for index="i" start="0" end="`$tmp.AnAI.l3network.subnets.subnet_length`">
466 <switch test="`$tmp.AnAI.l3network.subnets.subnet[$i].subnet-id == $tmp.subnetRollback[$j].subnet-id`"><outcome value='true'>
467 <block atomic='true'><switch test="`$tmp.subnetRollback[$j].type`"><outcome value='delete'>
468 <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
469     resource="subnet"
470         key="l3-network.network-id = $tmp.AnAI.l3network.network-id
471             AND subnet.subnet-id = $tmp.subnetRollback[$j].subnet-id" >
472 <parameter name="orchestration-status" value="`$tmp.AnAI.l3network.subnets.subnet[$i].orchestration-status`" />
473         <outcome value='not-found'>
474 <set>
475     <parameter name="error-code" value="500"/>
476     <parameter name="tmp.rollback.error-message" value="`'failed to rollback the subnet.orchestration-status in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome><outcome value='failure'>
477 <set>
478     <parameter name="error-code" value="500"/>
479     <parameter name="tmp.rollback.error-message" value="`'failed to rollback the subnet.orchestration-status in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome></update></outcome><outcome value='update'>
480 <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
481     resource="subnet"
482         key="l3-network.network-id = $tmp.AnAI.l3network.network-id
483             AND subnet.subnet-id = $tmp.AnAI.l3network.subnets.subnet[$j].subnet-id" >
484 <parameter name="subnet-name" value="`$tmp.AnAI.l3network.subnets.subnet[$i].subnet-name`"/>
485 <parameter name="gateway-address" value="`$tmp.AnAI.l3network.subnets.subnet[$i].gateway-address`"/>
486 <parameter name="cidr-mask" value="`$tmp.AnAI.l3network.subnets.subnet[$i].cidr-mask`"/>
487 <parameter name="dhcp-start" value="`$tmp.AnAI.l3network.subnets.subnet[$i].dhcp-start`"/>
488 <parameter name="dhcp-end" value="`$tmp.AnAI.l3network.subnets.subnet[$i].dhcp-end`"/>
489 <parameter name="dhcp-enabled" value="`$tmp.AnAI.l3network.subnets.subnet[$i].dhcp-enabled`"/>
490 <parameter name="orchestration-status" value="`$tmp.AnAI.l3network.subnets.subnet[$i].orchestration-status`" />
491         <outcome value='failure'>
492 <set>
493     <parameter name="error-code" value="500"/>
494     <parameter name="tmp.rollback.error-message" value="`'failed to rollback the subnet attributes update in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome><outcome value='not-found'>
495 <set>
496     <parameter name="error-code" value="500"/>
497     <parameter name="tmp.rollback.error-message" value="`'failed to rollback the subnet attributes update in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome></update></outcome></switch><set>
498     <parameter name="tmp.rollback.match" value="1"/></set></block></outcome></switch></for><switch test="`$tmp.rollback.match == 0`"><outcome value='true'>
499 <switch test="`$tmp.subnetRollback[$j].type`"><outcome value='create'>
500 <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
501     resource="subnet"
502         key="l3-network.network-id = $tmp.AnAI.l3network.network-id
503             AND subnet.subnet-id = $tmp.subnetRollback[$j].subnet-id" ><outcome value='failure'>
504 <set>
505     <parameter name="error-code" value="500"/>
506     <parameter name="tmp.rollback.error-message" value="`'failed to rollback to delete subnet from AnAI where subnet-id = ' + $tmp.subnetRollback[$j].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome><outcome value='not-found'>
507 <set>
508     <parameter name="error-code" value="500"/>
509     <parameter name="tmp.rollback.error-message" value="`'failed to rollback to delete subnet from AnAI where subnet-id = ' + $tmp.subnetRollback[$j].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome></delete></outcome></switch></outcome></switch></block></for><switch test="`$tmp.l3network.status.updated == 1`">
510 <outcome value='true'>
511 <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
512     resource="l3-network"
513         key="l3-network.network-id = $tmp.AnAI.l3network.network-id" >
514 <parameter name="orchestration-status" value="`$tmp.AnAI.l3network.orchestration-status`" /><outcome value='failure'>
515 <set>
516     <parameter name="error-code" value="500"/>
517     <parameter name="tmp.rollback.error-message" value="`'failed to rollback l3network.orchestration-status in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome><outcome value='not-found'>
518 <set>
519     <parameter name="error-code" value="500"/>
520     <parameter name="tmp.rollback.error-message" value="`'failed to rollback l3network.orchestration-status in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/></set></outcome></update></outcome></switch><return status='failure'>
521     <parameter name='error-code' value='500'/>
522     <parameter name='error-message' value="`'Error updating l3-network in AnAI with network-id = ' + $tmp.AnAI.l3network.network-id + ' - ' + $tmp.error-message + ' - ' + $tmp.rollback.error-message`"/></return></block></outcome></switch><set>
523 <parameter name="ack-final" value="Y"/></set><return status="success">
524     <parameter name="networkId" value="`$network-topology-operation-input.network-request-information.network-id`" />
525     <parameter name="error-code" value="200" /></return></block></method></service-logic>