9454f4fce9147bcaa6220cefa64938ad5cc224e1
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_process-eipam-pools.xml
1 <service-logic\r
2     xmlns='http://www.onap.org/sdnc/svclogic'\r
3     xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
4     <method rpc="process-eipam-pools" mode="sync">\r
5         <switch test='`$tmp.process-eipam-action`'>\r
6             <outcome value='assign'>\r
7                 <block atomic="true">\r
8                     <set>\r
9                         <parameter name='eipam-ip-block.entity-id' value='' />\r
10                         <parameter name='eipam-ip-block.ip-prefix' value='' />\r
11                         <parameter name='eipam-ip-block.mask' value='' />\r
12                         <parameter name='tmp.l3-network.level1.v4.entity-id' value='' />\r
13                         <parameter name='tmp.l3-network.level1.v4.ip-prefix' value='' />\r
14                         <parameter name='tmp.l3-network.level1.v4.mask' value='' />\r
15                         <parameter name='tmp.l3-network.level1.v4.pool.pre-existing' value='false' />\r
16                         <parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='false' />\r
17                         <parameter name='tmp.l3-network.level1.v6.entity-id' value='' />\r
18                         <parameter name='tmp.l3-network.level1.v6.ip-prefix' value='' />\r
19                         <parameter name='tmp.l3-network.level1.v6.mask' value='' />\r
20                         <parameter name='tmp.l3-network.level1.v6.pool.pre-existing' value='false' />\r
21                         <parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='false' />\r
22                         <parameter name='tmp.l3-network.level2.v4.entity-id' value='' />\r
23                         <parameter name='tmp.l3-network.level2.v4.ip-prefix' value='' />\r
24                         <parameter name='tmp.l3-network.level2.v4.mask' value='' />\r
25                         <parameter name='tmp.l3-network.level2.v4.pool.pre-existing' value='false' />\r
26                         <parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='false' />\r
27                         <parameter name='tmp.l3-network.level2.v6.entity-id' value='' />\r
28                         <parameter name='tmp.l3-network.level2.v6.ip-prefix' value='' />\r
29                         <parameter name='tmp.l3-network.level2.v6.mask' value='' />\r
30                         <parameter name='tmp.l3-network.level2.v6.pool.pre-existing' value='false' />\r
31                         <parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='false' />\r
32                     </set>\r
33                     <set>\r
34                         <parameter name='tmp.region' value='`$aai.complex.region`' />\r
35                         <parameter name='tmp.cloud-region-id' value="`$aai.cloud-region.cloud-region-id`" />\r
36                         <parameter name='tmp.physical-location-id' value="`$aai.complex.physical-location-id`" />\r
37                         <parameter name="tmp.clli" value="`$aai.complex.physical-location-id`" />\r
38                         <parameter name="tmp.zone" value="`$aai.cloud-region.cloud-zone`" />\r
39                         <parameter name="tmp.network-id" value="`$tmp.l3-network.network-id`" />\r
40                         <parameter name="tmp.service-type" value="`$network-topology-operation-input.service-information.subscription-service-type`" />\r
41                         <parameter name="eipam-ip-block.level" value='1' />\r
42                         <parameter name='eipam-ip-block.plans_length' value='0' />\r
43                         <parameter name='eipam-pool.v4.pre-existing' value='false' />\r
44                         <parameter name='eipam-pool.v6.pre-existing' value='false' />\r
45                         <parameter name="tmp.level1-key-value" value="`$aai.complex.physical-location-id + ':' + $aai.cloud-region.cloud-region-id`" />\r
46                         <parameter name="tmp.level2-key-value" value="`$network-model.network-role + ':' + $tmp.l3-network.network-id`" />\r
47                         <parameter name="tmp.ipv4-cidr-mask" value="`$network-model.ipv4-cidr-mask`" />\r
48                         <parameter name="tmp.ipv6-cidr-mask" value="`$network-model.ipv6-cidr-mask`" />\r
49                     </set>\r
50                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">\r
51                         <outcome value=''>\r
52                             <block>\r
53                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
54                                 <set>\r
55                                     <parameter name="eipam-ip-block.subnet-size-override-v4" value="`$network-model.ipv4-cidr-mask`" />\r
56                                     <parameter name="eipam-ip-block.subnet-size-override-v6" value="`$network-model.ipv6-cidr-mask`" />\r
57                                 </set>\r
58                             </block>\r
59                         </outcome>\r
60                         <outcome value='Other'>\r
61                             <block>\r
62                                 <for index='pidx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >\r
63                                     <block atomic="true">\r
64                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
65                                             <parameter name="source" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`" />\r
66                                             <parameter name="target" value="network_assignments_ipv4_subnet_default_assignment_cidr_mask"/>\r
67                                             <outcome value='true'>\r
68                                                 <set>\r
69                                                     <parameter name='eipam-ip-block.subnet-size-override-v4' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\r
70                                                 </set>\r
71                                             </outcome>\r
72                                             <outcome value='Other'>\r
73                                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
74                                                 <set>\r
75                                                     <parameter name="eipam-ip-block.subnet-size-override-v4" value="`$network-model.ipv4-cidr-mask`" />\r
76                                                 </set>\r
77                                             </outcome>\r
78                                         </execute>\r
79                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
80                                             <parameter name="source" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`" />\r
81                                             <parameter name="target" value="network_assignments_ipv6_subnet_default_assignment_cidr_mask"/>\r
82                                             <outcome value='true'>\r
83                                                 <set>\r
84                                                     <parameter name='eipam-ip-block.subnet-size-override-v6' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\r
85                                                 </set>\r
86                                             </outcome>\r
87                                             <outcome value='Other'>\r
88                                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
89                                                 <set>\r
90                                                     <parameter name="eipam-ip-block.subnet-size-override-v6" value="`$network-model.ipv6-cidr-mask`" />\r
91                                                 </set>\r
92                                             </outcome>\r
93                                         </execute>\r
94                                     </block>\r
95                                 </for>\r
96                             </block>\r
97                         </outcome>\r
98                     </switch>\r
99                     <!--tmp.level should be set to 1-->\r
100                     <call module='GENERIC-RESOURCE-API' rpc='eipam-create-network-role-pool' mode='sync' >\r
101                         <outcome value='failure'>\r
102                             <return status="failure">\r
103                                 <parameter name="tmp.eipam-error" value="true" />\r
104                                 <parameter name="error-code" value="500"/>\r
105                                 <parameter name="error-message" value="`'An error occured while allocating subnet in EIPAM.  Error creating level 1 pool. ' + $error-message`" />\r
106                             </return>\r
107                         </outcome>\r
108                         <outcome value='success'>\r
109                             <block atomic="true">\r
110                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
111                                     <parameter name="logger" value="message-log"/>\r
112                                     <parameter name="field1" value="__TIMESTAMP__"/>\r
113                                     <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
114                                     <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
115                                     <parameter name="field4" value="eipam-pool.v4.pre-existing"/>\r
116                                     <parameter name="field5" value="`$eipam-pool.v4.pre-existing`"/>\r
117                                     <parameter name="field6" value="eipam-pool.v4.pre-existing"/>\r
118                                     <parameter name="field7" value="`$eipam-pool.v6.pre-existing`"/>\r
119                                     <parameter name="field8" value="tmp.create-v4-pool-flag" />\r
120                                     <parameter name="field9" value="`$tmp.create-v4-pool-flag`" />\r
121                                     <parameter name="field10" value="tmp.create-v6-pool-flag" />\r
122                                     <parameter name="field11" value="`$tmp.create-v6-pool-flag`" />\r
123                                 </record>\r
124                                 <set>\r
125                                     <parameter name='tmp.l3-network.level1.v4.pool.pre-existing' value='`$eipam-pool.v4.pre-existing`'/>\r
126                                     <parameter name='tmp.l3-network.level1.v6.pool.pre-existing' value='`$eipam-pool.v6.pre-existing`'/>\r
127                                 </set>\r
128                             </block>\r
129                         </outcome>\r
130                     </call>\r
131                     <switch test="`$network-model.use-ipv4`">\r
132                         <outcome value='Y'>\r
133                             <block atomic='true'>\r
134                                 <get-resource\r
135         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
136         resource='SQL'\r
137         key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v4-address-plan and s.entity_id = k.entity_id and k.level = 1 and k.key_value = $tmp.level1-key-value ; "\r
138         pfx='tmp.eipam-subnet-row'>\r
139                                     <outcome value='success'>\r
140                                         <block atomic="true">\r
141                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
142                                                 <parameter name="logger" value="message-log"/>\r
143                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
144                                                 <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
145                                                 <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
146                                                 <parameter name="field4" value="Existing eipam-ip-block.ip-prefix for level1"/>\r
147                                                 <parameter name="field5" value="`$tmp.eipam-subnet-row.ip-address`"/>\r
148                                                 <parameter name="field6" value="Existing eipam-ip-block.mask for level1"/>\r
149                                                 <parameter name="field7" value="`$tmp.eipam-subnet-row.prefix-length`"/>\r
150                                                 <parameter name="field8" value="ipv4"/>\r
151                                             </record>\r
152                                             <set>\r
153                                                 <parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='true' />\r
154                                                 <parameter name='tmp.l3-network.level1.v4.entity-id' value='`$tmp.eipam-row.entity-id`' />\r
155                                                 <parameter name='tmp.l3-network.level1.v4.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\r
156                                                 <parameter name='tmp.l3-network.level1.v4.mask' value='`$tmp.eipam-row.prefix-length`' />\r
157                                             </set>\r
158                                         </block>\r
159                                     </outcome>\r
160                                     <outcome value="not-found">\r
161                                         <block atomic='true'>\r
162                                             <set>\r
163                                                 <parameter name='eipam-ip-block.entity-id' value='' />\r
164                                                 <parameter name='eipam-ip-block.ip-prefix' value='' />\r
165                                                 <parameter name='eipam-ip-block.mask' value='' />\r
166                                                 <parameter name="eipam-ip-block.allocate-version" value='ipv4' />\r
167                                                 <parameter name="eipam-ip-block.level" value='1' />\r
168                                                 <parameter name='eipam-ip-block.plans_length' value='0' />\r
169                                             </set>\r
170                                             <call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\r
171                                                 <outcome value='success'>\r
172                                                     <block atomic="true">\r
173                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
174                                                             <parameter name="logger" value="message-log"/>\r
175                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
176                                                             <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
177                                                             <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
178                                                             <parameter name="field4" value="eipam-ip-block.ip-prefix for level1"/>\r
179                                                             <parameter name="field5" value="`$eipam-ip-block.ip-prefix`"/>\r
180                                                             <parameter name="field6" value="eipam-ip-block.mask for level1"/>\r
181                                                             <parameter name="field7" value="`$eipam-ip-block.mask`"/>\r
182                                                             <parameter name="field8" value="ipv4"/>\r
183                                                         </record>\r
184                                                         <set>\r
185                                                             <parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='' />\r
186                                                             <parameter name='tmp.l3-network.level1.v4.entity-id' value='`$eipam-ip-block.entity-id`' />\r
187                                                             <parameter name='tmp.l3-network.level1.v4.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\r
188                                                             <parameter name='tmp.l3-network.level1.v4.mask' value='`$eipam-ip-block.mask`' />\r
189                                                         </set>\r
190                                                     </block>\r
191                                                 </outcome>\r
192                                                 <outcome value='failure'>\r
193                                                     <block atomic="true">\r
194                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
195                                                             <parameter name="logger" value="message-log"/>\r
196                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
197                                                             <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
198                                                             <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
199                                                             <parameter name="field4" value="Failed to allocate level1 ipv4 subnet - failure from eipam-allocate-network-role-subnet"/>\r
200                                                         </record>\r
201                                                         <switch test="`$tmp.l3-network.level1.v4.pool.pre-existing`">\r
202                                                             <outcome value='true'>\r
203                                                                 <return status="failure">\r
204                                                                     <parameter name="tmp.eipam-error" value="true" />\r
205                                                                     <parameter name="error-code" value="500"/>\r
206                                                                     <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
207                                                                 </return>\r
208                                                             </outcome>\r
209                                                             <outcome value='false'>\r
210                                                                 <block atomic="true">\r
211                                                                     <set>\r
212                                                                         <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
213                                                                         <parameter name="eipam-ip-block.level" value='1' />\r
214                                                                     </set>\r
215                                                                     <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
216                                                                     <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
217                                                                         <outcome value='failure'>\r
218                                                                             <return status="failure">\r
219                                                                                 <parameter name="tmp.eipam-error" value="true" />\r
220                                                                                 <parameter name="error-code" value="500"/>\r
221                                                                                 <parameter name="error-message" value="An error occured while allocating subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
222                                                                             </return>\r
223                                                                         </outcome>\r
224                                                                         <outcome value='Other'>\r
225                                                                             <return status="failure">\r
226                                                                                 <parameter name="tmp.eipam-error" value="true" />\r
227                                                                                 <parameter name="error-code" value="500"/>\r
228                                                                                 <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Rollback complete." />\r
229                                                                             </return>\r
230                                                                         </outcome>\r
231                                                                     </execute>\r
232                                                                 </block>\r
233                                                             </outcome>\r
234                                                             <outcome value=''>\r
235                                                                 <block atomic="true">\r
236                                                                     <set>\r
237                                                                         <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
238                                                                         <parameter name="eipam-ip-block.level" value='1' />\r
239                                                                     </set>\r
240                                                                     <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
241                                                                     <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
242                                                                         <outcome value='failure'>\r
243                                                                             <return status="failure">\r
244                                                                                 <parameter name="tmp.eipam-error" value="true" />\r
245                                                                                 <parameter name="error-code" value="500"/>\r
246                                                                                 <parameter name="error-message" value="An error occured while allocating subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
247                                                                             </return>\r
248                                                                         </outcome>\r
249                                                                         <outcome value='Other'>\r
250                                                                             <return status="failure">\r
251                                                                                 <parameter name="tmp.eipam-error" value="true" />\r
252                                                                                 <parameter name="error-code" value="500"/>\r
253                                                                                 <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Rollback complete." />\r
254                                                                             </return>\r
255                                                                         </outcome>\r
256                                                                     </execute>\r
257                                                                 </block>\r
258                                                             </outcome>\r
259                                                         </switch>\r
260                                                     </block>\r
261                                                 </outcome>\r
262                                             </call>\r
263                                         </block>\r
264                                     </outcome>\r
265                                 </get-resource>\r
266                             </block>\r
267                         </outcome>\r
268                     </switch>\r
269                     <switch test="`$network-model.use-ipv6`">\r
270                         <outcome value='Y'>\r
271                             <block atomic='true'>\r
272                                 <get-resource\r
273         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
274         resource='SQL'\r
275         key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v6-address-plan and s.entity_id = k.entity_id and k.level = 1 and k.key_value = $tmp.level1-key-value ; "\r
276         pfx='tmp.eipam-subnet-row'>\r
277                                     <outcome value='success'>\r
278                                         <block atomic="true">\r
279                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
280                                                 <parameter name="logger" value="message-log"/>\r
281                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
282                                                 <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
283                                                 <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
284                                                 <parameter name="field4" value="Existing eipam-ip-block.ip-prefix for level1"/>\r
285                                                 <parameter name="field5" value="`$tmp.eipam-subnet-row.ip-address`"/>\r
286                                                 <parameter name="field6" value="Existing eipam-ip-block.mask for level1"/>\r
287                                                 <parameter name="field7" value="`$tmp.eipam-subnet-row.prefix-length`"/>\r
288                                                 <parameter name="field8" value="ipv6"/>\r
289                                             </record>\r
290                                             <set>\r
291                                                 <parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='true' />\r
292                                                 <parameter name='tmp.l3-network.level1.v6.entity-id' value='`$tmp.eipam-row.entity-id`' />\r
293                                                 <parameter name='tmp.l3-network.level1.v6.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\r
294                                                 <parameter name='tmp.l3-network.level1.v6.mask' value='`$tmp.eipam-row.prefix-length`' />\r
295                                             </set>\r
296                                         </block>\r
297                                     </outcome>\r
298                                     <outcome value="not-found">\r
299                                         <block atomic='true'>\r
300                                             <set>\r
301                                                 <parameter name='eipam-ip-block.entity-id' value='' />\r
302                                                 <parameter name='eipam-ip-block.ip-prefix' value='' />\r
303                                                 <parameter name='eipam-ip-block.mask' value='' />\r
304                                                 <parameter name="eipam-ip-block.allocate-version" value='ipv6' />\r
305                                                 <parameter name="eipam-ip-block.level" value='1' />\r
306                                                 <parameter name='eipam-ip-block.plans_length' value='0' />\r
307                                             </set>\r
308                                             <call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\r
309                                                 <outcome value='success'>\r
310                                                     <block atomic="true">\r
311                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
312                                                             <parameter name="logger" value="message-log"/>\r
313                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
314                                                             <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
315                                                             <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
316                                                             <parameter name="field4" value="eipam-ip-block.ip-prefix for level1"/>\r
317                                                             <parameter name="field5" value="`$eipam-ip-block.ip-prefix`"/>\r
318                                                             <parameter name="field6" value="eipam-ip-block.mask for level1"/>\r
319                                                             <parameter name="field7" value="`$eipam-ip-block.mask`"/>\r
320                                                             <parameter name="field8" value="ipv6"/>\r
321                                                         </record>\r
322                                                         <set>\r
323                                                             <parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='' />\r
324                                                             <parameter name='tmp.l3-network.level1.v6.entity-id' value='`$eipam-ip-block.entity-id`' />\r
325                                                             <parameter name='tmp.l3-network.level1.v6.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\r
326                                                             <parameter name='tmp.l3-network.level1.v6.mask' value='`$eipam-ip-block.mask`' />\r
327                                                         </set>\r
328                                                     </block>\r
329                                                 </outcome>\r
330                                                 <outcome value='failure'>\r
331                                                     <block atomic="true">\r
332                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
333                                                             <parameter name="logger" value="message-log"/>\r
334                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
335                                                             <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
336                                                             <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
337                                                             <parameter name="field4" value="Failed to allocate level1 ipv6 subnet - failure from eipam-allocate-network-role-subnet"/>\r
338                                                         </record>\r
339                                                         <switch test="`$tmp.l3-network.level1.v6.pool.pre-existing`">\r
340                                                             <outcome value='true'>\r
341                                                                 <return status="failure">\r
342                                                                     <parameter name="tmp.eipam-error" value="true" />\r
343                                                                     <parameter name="error-code" value="500"/>\r
344                                                                     <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
345                                                                 </return>\r
346                                                             </outcome>\r
347                                                             <outcome value='false'>\r
348                                                                 <block atomic="true">\r
349                                                                     <set>\r
350                                                                         <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
351                                                                         <parameter name="eipam-ip-block.level" value='1' />\r
352                                                                     </set>\r
353                                                                     <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
354                                                                     <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
355                                                                         <outcome value='Other'>\r
356                                                                             <return status="failure">\r
357                                                                                 <parameter name="tmp.eipam-error" value="true" />\r
358                                                                                 <parameter name="error-code" value="500"/>\r
359                                                                                 <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Rollback complete." />\r
360                                                                             </return>\r
361                                                                         </outcome>\r
362                                                                         <outcome value='failure'>\r
363                                                                             <return status="failure">\r
364                                                                                 <parameter name="tmp.eipam-error" value="true" />\r
365                                                                                 <parameter name="error-code" value="500"/>\r
366                                                                                 <parameter name="error-message" value="An error occured while allocating subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
367                                                                             </return>\r
368                                                                         </outcome>\r
369                                                                     </execute>\r
370                                                                 </block>\r
371                                                             </outcome>\r
372                                                             <outcome value=''>\r
373                                                                 <block atomic="true">\r
374                                                                     <set>\r
375                                                                         <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
376                                                                         <parameter name="eipam-ip-block.level" value='1' />\r
377                                                                     </set>\r
378                                                                     <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
379                                                                     <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
380                                                                         <outcome value='Other'>\r
381                                                                             <return status="failure">\r
382                                                                                 <parameter name="tmp.eipam-error" value="true" />\r
383                                                                                 <parameter name="error-code" value="500"/>\r
384                                                                                 <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Rollback complete." />\r
385                                                                             </return>\r
386                                                                         </outcome>\r
387                                                                         <outcome value='failure'>\r
388                                                                             <return status="failure">\r
389                                                                                 <parameter name="tmp.eipam-error" value="true" />\r
390                                                                                 <parameter name="error-code" value="500"/>\r
391                                                                                 <parameter name="error-message" value="An error occured while allocating subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
392                                                                             </return>\r
393                                                                         </outcome>\r
394                                                                     </execute>\r
395                                                                 </block>\r
396                                                             </outcome>\r
397                                                         </switch>\r
398                                                     </block>\r
399                                                 </outcome>\r
400                                             </call>\r
401                                         </block>\r
402                                     </outcome>\r
403                                 </get-resource>\r
404                             </block>\r
405                         </outcome>\r
406                     </switch>\r
407                     <set>\r
408                         <parameter name='eipam-ip-block.entity-id' value='' />\r
409                         <parameter name='eipam-ip-block.ip-prefix' value='' />\r
410                         <parameter name='eipam-ip-block.mask' value='' />\r
411                         <parameter name="eipam-ip-block.level" value='2' />\r
412                         <parameter name='eipam-ip-block.plans_length' value='0' />\r
413                         <parameter name='eipam-pool.v4.pre-existing' value='false' />\r
414                         <parameter name='eipam-pool.v6.pre-existing' value='false' />\r
415                     </set>\r
416                     <!--tmp.level should be set to 1-->\r
417                     <call module='GENERIC-RESOURCE-API' rpc='eipam-create-network-role-pool' mode='sync' >\r
418                         <outcome value='failure'>\r
419                             <block atomic="true">\r
420                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
421                                     <parameter name="logger" value="message-log"/>\r
422                                     <parameter name="field1" value="__TIMESTAMP__"/>\r
423                                     <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
424                                     <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
425                                     <parameter name="field4" value="Error creating level 2 pool, need to attempt rollback"/>\r
426                                 </record>\r
427                                 <return status="failure">\r
428                                     <parameter name="tmp.eipam-error" value="true" />\r
429                                     <parameter name="error-code" value="500"/>\r
430                                     <parameter name="error-message" value="An error occured while allocating subnet in EIPAM.  Error creating level 2 pool" />\r
431                                 </return>\r
432                             </block>\r
433                         </outcome>\r
434                         <outcome value='success'>\r
435                             <block atomic="true">\r
436                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
437                                     <parameter name="logger" value="message-log"/>\r
438                                     <parameter name="field1" value="__TIMESTAMP__"/>\r
439                                     <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
440                                     <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
441                                     <parameter name="field4" value="eipam-pool.v4.pre-existing"/>\r
442                                     <parameter name="field5" value="`$eipam-pool.v4.pre-existing`"/>\r
443                                     <parameter name="field6" value="eipam-pool.v4.pre-existing"/>\r
444                                     <parameter name="field7" value="`$eipam-pool.v6.pre-existing`"/>\r
445                                     <parameter name="field8" value="tmp.create-v4-pool-flag" />\r
446                                     <parameter name="field9" value="`$tmp.create-v4-pool-flag`" />\r
447                                     <parameter name="field10" value="tmp.create-v6-pool-flag" />\r
448                                     <parameter name="field11" value="`$tmp.create-v6-pool-flag`" />\r
449                                 </record>\r
450                                 <set>\r
451                                     <parameter name='tmp.l3-network.level2.v4.pre-existing' value='`$eipam-pool.v4.pre-existing`'/>\r
452                                     <parameter name='tmp.l3-network.level2.v6.pre-existing' value='`$eipam-pool.v6.pre-existing`'/>\r
453                                 </set>\r
454                             </block>\r
455                         </outcome>\r
456                     </call>\r
457                     <switch test="`$network-model.use-ipv4`">\r
458                         <outcome value='Y'>\r
459                             <block atomic='true'>\r
460                                 <get-resource\r
461         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
462         resource='SQL'\r
463         key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v4-address-plan and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value ; "\r
464         pfx='tmp.eipam-subnet-row'>\r
465                                     <outcome value='success'>\r
466                                         <block atomic="true">\r
467                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
468                                                 <parameter name="logger" value="message-log"/>\r
469                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
470                                                 <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
471                                                 <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
472                                                 <parameter name="field4" value="Existing eipam-ip-block.ip-prefix for level2"/>\r
473                                                 <parameter name="field5" value="`$tmp.eipam-subnet-row.ip-address`"/>\r
474                                                 <parameter name="field6" value="Existing eipam-ip-block.mask for level2"/>\r
475                                                 <parameter name="field7" value="`$tmp.eipam-subnet-row.prefix-length`"/>\r
476                                                 <parameter name="field8" value="ipv4"/>\r
477                                             </record>\r
478                                             <set>\r
479                                                 <parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='true' />\r
480                                                 <parameter name='tmp.l3-network.level2.v4.entity-id' value='`$tmp.eipam-row.entity-id`' />\r
481                                                 <parameter name='tmp.l3-network.level2.v4.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\r
482                                                 <parameter name='tmp.l3-network.level2.v4.mask' value='`$tmp.eipam-row.prefix-length`' />\r
483                                             </set>\r
484                                         </block>\r
485                                     </outcome>\r
486                                     <outcome value="not-found">\r
487                                         <block atomic='true'>\r
488                                             <set>\r
489                                                 <parameter name='eipam-ip-block.entity-id' value='' />\r
490                                                 <parameter name='eipam-ip-block.ip-prefix' value='' />\r
491                                                 <parameter name='eipam-ip-block.mask' value='' />\r
492                                                 <parameter name="eipam-ip-block.allocate-version" value='ipv4' />\r
493                                                 <parameter name="eipam-ip-block.level" value='2' />\r
494                                                 <parameter name='eipam-ip-block.plans_length' value='0' />\r
495                                                 <parameter name="eipam-ip-block.subnet-size-override" value="`$eipam-ip-block.subnet-size-override-v4`" />\r
496                                             </set>\r
497                                             <call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\r
498                                                 <outcome value='success'>\r
499                                                     <block atomic="true">\r
500                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
501                                                             <parameter name="logger" value="message-log"/>\r
502                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
503                                                             <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
504                                                             <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
505                                                             <parameter name="field4" value="eipam-ip-block.ip-prefix for level2"/>\r
506                                                             <parameter name="field5" value="`$eipam-ip-block.ip-prefix`"/>\r
507                                                             <parameter name="field6" value="eipam-ip-block.mask for level2"/>\r
508                                                             <parameter name="field7" value="`$eipam-ip-block.mask`"/>\r
509                                                             <parameter name="field8" value="ipv4"/>\r
510                                                         </record>\r
511                                                         <set>\r
512                                                             <parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='' />\r
513                                                             <parameter name='tmp.l3-network.level2.v4.entity-id' value='`$eipam-ip-block.entity-id`' />\r
514                                                             <parameter name='tmp.l3-network.level2.v4.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\r
515                                                             <parameter name='tmp.l3-network.level2.v4.mask' value='`$eipam-ip-block.mask`' />\r
516                                                         </set>\r
517                                                     </block>\r
518                                                 </outcome>\r
519                                                 <outcome value='failure'>\r
520                                                     <block atomic="true">\r
521                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
522                                                             <parameter name="logger" value="message-log"/>\r
523                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
524                                                             <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
525                                                             <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
526                                                             <parameter name="field4" value="Failed to allocate level2 ipv4 subnet - failure from eipam-allocate-network-role-subnet"/>\r
527                                                         </record>\r
528                                                         <switch test="`$tmp.l3-network.level2.v4.pool.pre-existing`">\r
529                                                             <outcome value='true'>\r
530                                                                 <return status="failure">\r
531                                                                     <parameter name="tmp.eipam-error" value="true" />\r
532                                                                     <parameter name="error-code" value="500"/>\r
533                                                                     <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
534                                                                 </return>\r
535                                                             </outcome>\r
536                                                             <outcome value='false'>\r
537                                                                 <block atomic="true">\r
538                                                                     <set>\r
539                                                                         <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
540                                                                         <parameter name="eipam-ip-block.level" value='2' />\r
541                                                                     </set>\r
542                                                                     <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
543                                                                     <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
544                                                                         <outcome value='failure'></outcome>\r
545                                                                         <outcome value='Other'></outcome>\r
546                                                                     </execute>\r
547                                                                     <switch test="`$tmp.l3-network.level1.v4.pool.pre-existing == true or $tmp.l3-network.level1.v4.pool.pre-existing == true`">\r
548                                                                         <outcome value='true'>\r
549                                                                             <return status="failure">\r
550                                                                                 <parameter name="tmp.eipam-error" value="true" />\r
551                                                                                 <parameter name="error-code" value="500"/>\r
552                                                                                 <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
553                                                                             </return>\r
554                                                                         </outcome>\r
555                                                                         <outcome value='false'>\r
556                                                                             <block atomic="true">\r
557                                                                                 <set>\r
558                                                                                     <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
559                                                                                     <parameter name="eipam-ip-block.level" value='1' />\r
560                                                                                 </set>\r
561                                                                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
562                                                                                 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
563                                                                                     <outcome value='Other'>\r
564                                                                                         <return status="failure">\r
565                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
566                                                                                             <parameter name="error-code" value="500"/>\r
567                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM. Rollback complete." />\r
568                                                                                         </return>\r
569                                                                                     </outcome>\r
570                                                                                     <outcome value='failure'>\r
571                                                                                         <return status="failure">\r
572                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
573                                                                                             <parameter name="error-code" value="500"/>\r
574                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
575                                                                                         </return>\r
576                                                                                     </outcome>\r
577                                                                                 </execute>\r
578                                                                             </block>\r
579                                                                         </outcome>\r
580                                                                         <outcome value=''>\r
581                                                                             <block atomic="true">\r
582                                                                                 <set>\r
583                                                                                     <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
584                                                                                     <parameter name="eipam-ip-block.level" value='1' />\r
585                                                                                 </set>\r
586                                                                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
587                                                                                 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
588                                                                                     <outcome value='Other'>\r
589                                                                                         <return status="failure">\r
590                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
591                                                                                             <parameter name="error-code" value="500"/>\r
592                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM. Rollback complete." />\r
593                                                                                         </return>\r
594                                                                                     </outcome>\r
595                                                                                     <outcome value='failure'>\r
596                                                                                         <return status="failure">\r
597                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
598                                                                                             <parameter name="error-code" value="500"/>\r
599                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
600                                                                                         </return>\r
601                                                                                     </outcome>\r
602                                                                                 </execute>\r
603                                                                             </block>\r
604                                                                         </outcome>\r
605                                                                     </switch>\r
606                                                                 </block>\r
607                                                             </outcome>\r
608                                                             <outcome value=''>\r
609                                                                 <block atomic="true">\r
610                                                                     <set>\r
611                                                                         <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
612                                                                         <parameter name="eipam-ip-block.level" value='2' />\r
613                                                                     </set>\r
614                                                                     <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
615                                                                     <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
616                                                                         <outcome value='failure'></outcome>\r
617                                                                         <outcome value='Other'></outcome>\r
618                                                                     </execute>\r
619                                                                     <switch test="`$tmp.l3-network.level1.v4.pool.pre-existing == true or $tmp.l3-network.level1.v4.pool.pre-existing == true`">\r
620                                                                         <outcome value='true'>\r
621                                                                             <return status="failure">\r
622                                                                                 <parameter name="tmp.eipam-error" value="true" />\r
623                                                                                 <parameter name="error-code" value="500"/>\r
624                                                                                 <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
625                                                                             </return>\r
626                                                                         </outcome>\r
627                                                                         <outcome value='false'>\r
628                                                                             <block atomic="true">\r
629                                                                                 <set>\r
630                                                                                     <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
631                                                                                     <parameter name="eipam-ip-block.level" value='1' />\r
632                                                                                 </set>\r
633                                                                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
634                                                                                 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
635                                                                                     <outcome value='Other'>\r
636                                                                                         <return status="failure">\r
637                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
638                                                                                             <parameter name="error-code" value="500"/>\r
639                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM. Rollback complete." />\r
640                                                                                         </return>\r
641                                                                                     </outcome>\r
642                                                                                     <outcome value='failure'>\r
643                                                                                         <return status="failure">\r
644                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
645                                                                                             <parameter name="error-code" value="500"/>\r
646                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
647                                                                                         </return>\r
648                                                                                     </outcome>\r
649                                                                                 </execute>\r
650                                                                             </block>\r
651                                                                         </outcome>\r
652                                                                         <outcome value=''>\r
653                                                                             <block atomic="true">\r
654                                                                                 <set>\r
655                                                                                     <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
656                                                                                     <parameter name="eipam-ip-block.level" value='1' />\r
657                                                                                 </set>\r
658                                                                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
659                                                                                 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
660                                                                                     <outcome value='Other'>\r
661                                                                                         <return status="failure">\r
662                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
663                                                                                             <parameter name="error-code" value="500"/>\r
664                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM. Rollback complete." />\r
665                                                                                         </return>\r
666                                                                                     </outcome>\r
667                                                                                     <outcome value='failure'>\r
668                                                                                         <return status="failure">\r
669                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
670                                                                                             <parameter name="error-code" value="500"/>\r
671                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
672                                                                                         </return>\r
673                                                                                     </outcome>\r
674                                                                                 </execute>\r
675                                                                             </block>\r
676                                                                         </outcome>\r
677                                                                     </switch>\r
678                                                                 </block>\r
679                                                             </outcome>\r
680                                                         </switch>\r
681                                                     </block>\r
682                                                 </outcome>\r
683                                             </call>\r
684                                         </block>\r
685                                     </outcome>\r
686                                 </get-resource>\r
687                             </block>\r
688                         </outcome>\r
689                     </switch>\r
690                     <switch test="`$network-model.use-ipv6`">\r
691                         <outcome value='Y'>\r
692                             <block atomic='true'>\r
693                                 <get-resource\r
694         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
695         resource='SQL'\r
696         key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v6-address-plan and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value ; "\r
697         pfx='tmp.eipam-subnet-row'>\r
698                                     <outcome value='success'>\r
699                                         <block atomic="true">\r
700                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
701                                                 <parameter name="logger" value="message-log"/>\r
702                                                 <parameter name="field1" value="__TIMESTAMP__"/>\r
703                                                 <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
704                                                 <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
705                                                 <parameter name="field4" value="Existing eipam-ip-block.ip-prefix for level1"/>\r
706                                                 <parameter name="field5" value="`$tmp.eipam-subnet-row.ip-address`"/>\r
707                                                 <parameter name="field6" value="Existing eipam-ip-block.mask for level1"/>\r
708                                                 <parameter name="field7" value="`$tmp.eipam-subnet-row.prefix-length`"/>\r
709                                                 <parameter name="field8" value="ipv6"/>\r
710                                             </record>\r
711                                             <set>\r
712                                                 <parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='true' />\r
713                                                 <parameter name='tmp.l3-network.level2.v6.entity-id' value='`$tmp.eipam-row.entity-id`' />\r
714                                                 <parameter name='tmp.l3-network.level2.v6.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\r
715                                                 <parameter name='tmp.l3-network.level2.v6.mask' value='`$tmp.eipam-row.prefix-length`' />\r
716                                             </set>\r
717                                         </block>\r
718                                     </outcome>\r
719                                     <outcome value="not-found">\r
720                                         <block atomic='true'>\r
721                                             <set>\r
722                                                 <parameter name='eipam-ip-block.entity-id' value='' />\r
723                                                 <parameter name='eipam-ip-block.ip-prefix' value='' />\r
724                                                 <parameter name='eipam-ip-block.mask' value='' />\r
725                                                 <parameter name="eipam-ip-block.allocate-version" value='ipv6' />\r
726                                                 <parameter name="eipam-ip-block.level" value='2' />\r
727                                                 <parameter name='eipam-ip-block.plans_length' value='0' />\r
728                                                 <parameter name="eipam-ip-block.subnet-size-override" value="`$eipam-ip-block.subnet-size-override-v6`" />\r
729                                             </set>\r
730                                             <call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\r
731                                                 <outcome value='success'>\r
732                                                     <block atomic="true">\r
733                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
734                                                             <parameter name="logger" value="message-log"/>\r
735                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
736                                                             <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
737                                                             <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
738                                                             <parameter name="field4" value="eipam-ip-block.ip-prefix for level1"/>\r
739                                                             <parameter name="field5" value="`$eipam-ip-block.ip-prefix`"/>\r
740                                                             <parameter name="field6" value="eipam-ip-block.mask for level1"/>\r
741                                                             <parameter name="field7" value="`$eipam-ip-block.mask`"/>\r
742                                                             <parameter name="field8" value="ipv6"/>\r
743                                                         </record>\r
744                                                         <set>\r
745                                                             <parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='' />\r
746                                                             <parameter name='tmp.l3-network.level2.v6.entity-id' value='`$eipam-ip-block.entity-id`' />\r
747                                                             <parameter name='tmp.l3-network.level2.v6.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\r
748                                                             <parameter name='tmp.l3-network.level2.v6.mask' value='`$eipam-ip-block.mask`' />\r
749                                                         </set>\r
750                                                     </block>\r
751                                                 </outcome>\r
752                                                 <outcome value='failure'>\r
753                                                     <block atomic="true">\r
754                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
755                                                             <parameter name="logger" value="message-log"/>\r
756                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
757                                                             <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
758                                                             <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
759                                                             <parameter name="field4" value="Failed to allocate level2 ipv6 subnet - failure from eipam-allocate-network-role-subnet"/>\r
760                                                         </record>\r
761                                                         <switch test="`$tmp.l3-network.level2.v6.pool.pre-existing`">\r
762                                                             <outcome value='true'>\r
763                                                                 <return status="failure">\r
764                                                                     <parameter name="tmp.eipam-error" value="true" />\r
765                                                                     <parameter name="error-code" value="500"/>\r
766                                                                     <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
767                                                                 </return>\r
768                                                             </outcome>\r
769                                                             <outcome value='false'>\r
770                                                                 <block atomic="true">\r
771                                                                     <set>\r
772                                                                         <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
773                                                                         <parameter name="eipam-ip-block.level" value='2' />\r
774                                                                     </set>\r
775                                                                     <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
776                                                                     <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
777                                                                         <outcome value='failure'></outcome>\r
778                                                                         <outcome value='Other'></outcome>\r
779                                                                     </execute>\r
780                                                                     <switch test="`$tmp.l3-network.level1.v4.pool.pre-existing == true or $tmp.l3-network.level1.v4.pool.pre-existing == true`">\r
781                                                                         <outcome value='true'>\r
782                                                                             <return status="failure">\r
783                                                                                 <parameter name="tmp.eipam-error" value="true" />\r
784                                                                                 <parameter name="error-code" value="500"/>\r
785                                                                                 <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
786                                                                             </return>\r
787                                                                         </outcome>\r
788                                                                         <outcome value='false'>\r
789                                                                             <block atomic="true">\r
790                                                                                 <set>\r
791                                                                                     <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
792                                                                                     <parameter name="eipam-ip-block.level" value='1' />\r
793                                                                                 </set>\r
794                                                                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
795                                                                                 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
796                                                                                     <outcome value='Other'>\r
797                                                                                         <return status="failure">\r
798                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
799                                                                                             <parameter name="error-code" value="500"/>\r
800                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM. Rollback complete." />\r
801                                                                                         </return>\r
802                                                                                     </outcome>\r
803                                                                                     <outcome value='failure'>\r
804                                                                                         <return status="failure">\r
805                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
806                                                                                             <parameter name="error-code" value="500"/>\r
807                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
808                                                                                         </return>\r
809                                                                                     </outcome>\r
810                                                                                 </execute>\r
811                                                                             </block>\r
812                                                                         </outcome>\r
813                                                                         <outcome value=''>\r
814                                                                             <block atomic="true">\r
815                                                                                 <set>\r
816                                                                                     <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
817                                                                                     <parameter name="eipam-ip-block.level" value='1' />\r
818                                                                                 </set>\r
819                                                                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
820                                                                                 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
821                                                                                     <outcome value='Other'>\r
822                                                                                         <return status="failure">\r
823                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
824                                                                                             <parameter name="error-code" value="500"/>\r
825                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM. Rollback complete." />\r
826                                                                                         </return>\r
827                                                                                     </outcome>\r
828                                                                                     <outcome value='failure'>\r
829                                                                                         <return status="failure">\r
830                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
831                                                                                             <parameter name="error-code" value="500"/>\r
832                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
833                                                                                         </return>\r
834                                                                                     </outcome>\r
835                                                                                 </execute>\r
836                                                                             </block>\r
837                                                                         </outcome>\r
838                                                                     </switch>\r
839                                                                 </block>\r
840                                                             </outcome>\r
841                                                             <outcome value=''>\r
842                                                                 <block atomic="true">\r
843                                                                     <set>\r
844                                                                         <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
845                                                                         <parameter name="eipam-ip-block.level" value='2' />\r
846                                                                     </set>\r
847                                                                     <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
848                                                                     <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
849                                                                         <outcome value='failure'></outcome>\r
850                                                                         <outcome value='Other'></outcome>\r
851                                                                     </execute>\r
852                                                                     <switch test="`$tmp.l3-network.level1.v4.pool.pre-existing == true or $tmp.l3-network.level1.v4.pool.pre-existing == true`">\r
853                                                                         <outcome value='true'>\r
854                                                                             <return status="failure">\r
855                                                                                 <parameter name="tmp.eipam-error" value="true" />\r
856                                                                                 <parameter name="error-code" value="500"/>\r
857                                                                                 <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
858                                                                             </return>\r
859                                                                         </outcome>\r
860                                                                         <outcome value='false'>\r
861                                                                             <block atomic="true">\r
862                                                                                 <set>\r
863                                                                                     <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
864                                                                                     <parameter name="eipam-ip-block.level" value='1' />\r
865                                                                                 </set>\r
866                                                                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
867                                                                                 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
868                                                                                     <outcome value='Other'>\r
869                                                                                         <return status="failure">\r
870                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
871                                                                                             <parameter name="error-code" value="500"/>\r
872                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM. Rollback complete." />\r
873                                                                                         </return>\r
874                                                                                     </outcome>\r
875                                                                                     <outcome value='failure'>\r
876                                                                                         <return status="failure">\r
877                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
878                                                                                             <parameter name="error-code" value="500"/>\r
879                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
880                                                                                         </return>\r
881                                                                                     </outcome>\r
882                                                                                 </execute>\r
883                                                                             </block>\r
884                                                                         </outcome>\r
885                                                                         <outcome value=''>\r
886                                                                             <block atomic="true">\r
887                                                                                 <set>\r
888                                                                                     <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
889                                                                                     <parameter name="eipam-ip-block.level" value='1' />\r
890                                                                                 </set>\r
891                                                                                 <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
892                                                                                 <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
893                                                                                     <outcome value='Other'>\r
894                                                                                         <return status="failure">\r
895                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
896                                                                                             <parameter name="error-code" value="500"/>\r
897                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM. Rollback complete." />\r
898                                                                                         </return>\r
899                                                                                     </outcome>\r
900                                                                                     <outcome value='failure'>\r
901                                                                                         <return status="failure">\r
902                                                                                             <parameter name="tmp.eipam-error" value="true" />\r
903                                                                                             <parameter name="error-code" value="500"/>\r
904                                                                                             <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
905                                                                                         </return>\r
906                                                                                     </outcome>\r
907                                                                                 </execute>\r
908                                                                             </block>\r
909                                                                         </outcome>\r
910                                                                     </switch>\r
911                                                                 </block>\r
912                                                             </outcome>\r
913                                                         </switch>\r
914                                                     </block>\r
915                                                 </outcome>\r
916                                             </call>\r
917                                         </block>\r
918                                     </outcome>\r
919                                 </get-resource>\r
920                             </block>\r
921                         </outcome>\r
922                     </switch>\r
923                 </block>\r
924             </outcome>\r
925             <outcome value='delete'>\r
926                 <return status="failure">\r
927                     <parameter name="tmp.eipam-error" value="true" />\r
928                     <parameter name="error-code" value="500"/>\r
929                     <parameter name="error-message" value="Invalid option to process-eipam" />\r
930                 </return>\r
931             </outcome>\r
932             <outcome value='Other'>\r
933                 <return status="failure">\r
934                     <parameter name="tmp.eipam-error" value="true" />\r
935                     <parameter name="error-code" value="500"/>\r
936                     <parameter name="error-message" value="Invalid option to process-eipam" />\r
937                 </return>\r
938             </outcome>\r
939         </switch>\r
940     </method>\r
941 </service-logic>