Add generic-resource-api DG seed code
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_process-eipam-pools.xml
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_process-eipam-pools.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_process-eipam-pools.xml
new file mode 100755 (executable)
index 0000000..42d1412
--- /dev/null
@@ -0,0 +1,941 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    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
+    <method rpc="process-eipam-pools" mode="sync">\r
+        <switch test='`$tmp.process-eipam-action`'>\r
+            <outcome value='assign'>\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='eipam-ip-block.entity-id' value='' />\r
+                        <parameter name='eipam-ip-block.ip-prefix' value='' />\r
+                        <parameter name='eipam-ip-block.mask' value='' />\r
+                        <parameter name='tmp.l3-network.level1.v4.entity-id' value='' />\r
+                        <parameter name='tmp.l3-network.level1.v4.ip-prefix' value='' />\r
+                        <parameter name='tmp.l3-network.level1.v4.mask' value='' />\r
+                        <parameter name='tmp.l3-network.level1.v4.pool.pre-existing' value='false' />\r
+                        <parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='false' />\r
+                        <parameter name='tmp.l3-network.level1.v6.entity-id' value='' />\r
+                        <parameter name='tmp.l3-network.level1.v6.ip-prefix' value='' />\r
+                        <parameter name='tmp.l3-network.level1.v6.mask' value='' />\r
+                        <parameter name='tmp.l3-network.level1.v6.pool.pre-existing' value='false' />\r
+                        <parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='false' />\r
+                        <parameter name='tmp.l3-network.level2.v4.entity-id' value='' />\r
+                        <parameter name='tmp.l3-network.level2.v4.ip-prefix' value='' />\r
+                        <parameter name='tmp.l3-network.level2.v4.mask' value='' />\r
+                        <parameter name='tmp.l3-network.level2.v4.pool.pre-existing' value='false' />\r
+                        <parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='false' />\r
+                        <parameter name='tmp.l3-network.level2.v6.entity-id' value='' />\r
+                        <parameter name='tmp.l3-network.level2.v6.ip-prefix' value='' />\r
+                        <parameter name='tmp.l3-network.level2.v6.mask' value='' />\r
+                        <parameter name='tmp.l3-network.level2.v6.pool.pre-existing' value='false' />\r
+                        <parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='false' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='tmp.region' value='`$aai.complex.region`' />\r
+                        <parameter name='tmp.cloud-region-id' value="`$aai.cloud-region.cloud-region-id`" />\r
+                        <parameter name='tmp.physical-location-id' value="`$aai.complex.physical-location-id`" />\r
+                        <parameter name="tmp.clli" value="`$aai.complex.physical-location-id`" />\r
+                        <parameter name="tmp.zone" value="`$aai.cloud-region.cloud-zone`" />\r
+                        <parameter name="tmp.network-id" value="`$tmp.l3-network.network-id`" />\r
+                        <parameter name="tmp.service-type" value="`$network-topology-operation-input.service-information.subscription-service-type`" />\r
+                        <parameter name="eipam-ip-block.level" value='1' />\r
+                        <parameter name='eipam-ip-block.plans_length' value='0' />\r
+                        <parameter name='eipam-pool.v4.pre-existing' value='false' />\r
+                        <parameter name='eipam-pool.v6.pre-existing' value='false' />\r
+                        <parameter name="tmp.level1-key-value" value="`$aai.complex.physical-location-id + ':' + $aai.cloud-region.cloud-region-id`" />\r
+                        <parameter name="tmp.level2-key-value" value="`$network-model.network-role + ':' + $tmp.l3-network.network-id`" />\r
+                        <parameter name="tmp.ipv4-cidr-mask" value="`$network-model.ipv4-cidr-mask`" />\r
+                        <parameter name="tmp.ipv6-cidr-mask" value="`$network-model.ipv6-cidr-mask`" />\r
+                    </set>\r
+                    <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">\r
+                        <outcome value=''>\r
+                            <block>\r
+                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                <set>\r
+                                    <parameter name="eipam-ip-block.subnet-size-override-v4" value="`$network-model.ipv4-cidr-mask`" />\r
+                                    <parameter name="eipam-ip-block.subnet-size-override-v6" value="`$network-model.ipv6-cidr-mask`" />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <block>\r
+                                <for index='pidx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                            <parameter name="source" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`" />\r
+                                            <parameter name="target" value="network_assignments_ipv4_subnet_default_assignment_cidr_mask"/>\r
+                                            <outcome value='true'>\r
+                                                <set>\r
+                                                    <parameter name='eipam-ip-block.subnet-size-override-v4' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                <set>\r
+                                                    <parameter name="eipam-ip-block.subnet-size-override-v4" value="`$network-model.ipv4-cidr-mask`" />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </execute>\r
+                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                            <parameter name="source" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`" />\r
+                                            <parameter name="target" value="network_assignments_ipv6_subnet_default_assignment_cidr_mask"/>\r
+                                            <outcome value='true'>\r
+                                                <set>\r
+                                                    <parameter name='eipam-ip-block.subnet-size-override-v6' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                <set>\r
+                                                    <parameter name="eipam-ip-block.subnet-size-override-v6" value="`$network-model.ipv6-cidr-mask`" />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </for>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <!--tmp.level should be set to 1-->\r
+                    <call module='GENERIC-RESOURCE-API' rpc='eipam-create-network-role-pool' mode='sync' >\r
+                        <outcome value='failure'>\r
+                            <return status="failure">\r
+                                <parameter name="tmp.eipam-error" value="true" />\r
+                                <parameter name="error-code" value="500"/>\r
+                                <parameter name="error-message" value="`'An error occured while allocating subnet in EIPAM.  Error creating level 1 pool. ' + $error-message`" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <block atomic="true">\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log"/>\r
+                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                    <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                    <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                    <parameter name="field4" value="eipam-pool.v4.pre-existing"/>\r
+                                    <parameter name="field5" value="`$eipam-pool.v4.pre-existing`"/>\r
+                                    <parameter name="field6" value="eipam-pool.v4.pre-existing"/>\r
+                                    <parameter name="field7" value="`$eipam-pool.v6.pre-existing`"/>\r
+                                    <parameter name="field8" value="tmp.create-v4-pool-flag" />\r
+                                    <parameter name="field9" value="`$tmp.create-v4-pool-flag`" />\r
+                                    <parameter name="field10" value="tmp.create-v6-pool-flag" />\r
+                                    <parameter name="field11" value="`$tmp.create-v6-pool-flag`" />\r
+                                </record>\r
+                                <set>\r
+                                    <parameter name='tmp.l3-network.level1.v4.pool.pre-existing' value='`$eipam-pool.v4.pre-existing`'/>\r
+                                    <parameter name='tmp.l3-network.level1.v6.pool.pre-existing' value='`$eipam-pool.v6.pre-existing`'/>\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </call>\r
+                    <switch test="`$network-model.use-ipv4`">\r
+                        <outcome value='Y'>\r
+                            <block atomic='true'>\r
+                                <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        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
+        pfx='tmp.eipam-subnet-row'>\r
+                                    <outcome value='success'>\r
+                                        <block atomic="true">\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                <parameter name="field4" value="Existing eipam-ip-block.ip-prefix for level1"/>\r
+                                                <parameter name="field5" value="`$tmp.eipam-subnet-row.ip-address`"/>\r
+                                                <parameter name="field6" value="Existing eipam-ip-block.mask for level1"/>\r
+                                                <parameter name="field7" value="`$tmp.eipam-subnet-row.prefix-length`"/>\r
+                                                <parameter name="field8" value="ipv4"/>\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='true' />\r
+                                                <parameter name='tmp.l3-network.level1.v4.entity-id' value='`$tmp.eipam-row.entity-id`' />\r
+                                                <parameter name='tmp.l3-network.level1.v4.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\r
+                                                <parameter name='tmp.l3-network.level1.v4.mask' value='`$tmp.eipam-row.prefix-length`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="not-found">\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name='eipam-ip-block.entity-id' value='' />\r
+                                                <parameter name='eipam-ip-block.ip-prefix' value='' />\r
+                                                <parameter name='eipam-ip-block.mask' value='' />\r
+                                                <parameter name="eipam-ip-block.allocate-version" value='ipv4' />\r
+                                                <parameter name="eipam-ip-block.level" value='1' />\r
+                                                <parameter name='eipam-ip-block.plans_length' value='0' />\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\r
+                                                <outcome value='success'>\r
+                                                    <block atomic="true">\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="eipam-ip-block.ip-prefix for level1"/>\r
+                                                            <parameter name="field5" value="`$eipam-ip-block.ip-prefix`"/>\r
+                                                            <parameter name="field6" value="eipam-ip-block.mask for level1"/>\r
+                                                            <parameter name="field7" value="`$eipam-ip-block.mask`"/>\r
+                                                            <parameter name="field8" value="ipv4"/>\r
+                                                        </record>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='' />\r
+                                                            <parameter name='tmp.l3-network.level1.v4.entity-id' value='`$eipam-ip-block.entity-id`' />\r
+                                                            <parameter name='tmp.l3-network.level1.v4.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\r
+                                                            <parameter name='tmp.l3-network.level1.v4.mask' value='`$eipam-ip-block.mask`' />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <block atomic="true">\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="Failed to allocate level1 ipv4 subnet - failure from eipam-allocate-network-role-subnet"/>\r
+                                                        </record>\r
+                                                        <switch test="`$tmp.l3-network.level1.v4.pool.pre-existing`">\r
+                                                            <outcome value='true'>\r
+                                                                <return status="failure">\r
+                                                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                                                    <parameter name="error-code" value="500"/>\r
+                                                                    <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                            <outcome value='false'>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                        <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                    </set>\r
+                                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                        <outcome value='failure'>\r
+                                                                            <return status="failure">\r
+                                                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                <parameter name="error-code" value="500"/>\r
+                                                                                <parameter name="error-message" value="An error occured while allocating subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='Other'>\r
+                                                                            <return status="failure">\r
+                                                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                <parameter name="error-code" value="500"/>\r
+                                                                                <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Rollback complete." />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                    </execute>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value=''>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                        <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                    </set>\r
+                                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                        <outcome value='failure'>\r
+                                                                            <return status="failure">\r
+                                                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                <parameter name="error-code" value="500"/>\r
+                                                                                <parameter name="error-message" value="An error occured while allocating subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='Other'>\r
+                                                                            <return status="failure">\r
+                                                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                <parameter name="error-code" value="500"/>\r
+                                                                                <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Rollback complete." />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                    </execute>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </call>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$network-model.use-ipv6`">\r
+                        <outcome value='Y'>\r
+                            <block atomic='true'>\r
+                                <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        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
+        pfx='tmp.eipam-subnet-row'>\r
+                                    <outcome value='success'>\r
+                                        <block atomic="true">\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                <parameter name="field4" value="Existing eipam-ip-block.ip-prefix for level1"/>\r
+                                                <parameter name="field5" value="`$tmp.eipam-subnet-row.ip-address`"/>\r
+                                                <parameter name="field6" value="Existing eipam-ip-block.mask for level1"/>\r
+                                                <parameter name="field7" value="`$tmp.eipam-subnet-row.prefix-length`"/>\r
+                                                <parameter name="field8" value="ipv6"/>\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='true' />\r
+                                                <parameter name='tmp.l3-network.level1.v6.entity-id' value='`$tmp.eipam-row.entity-id`' />\r
+                                                <parameter name='tmp.l3-network.level1.v6.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\r
+                                                <parameter name='tmp.l3-network.level1.v6.mask' value='`$tmp.eipam-row.prefix-length`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="not-found">\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name='eipam-ip-block.entity-id' value='' />\r
+                                                <parameter name='eipam-ip-block.ip-prefix' value='' />\r
+                                                <parameter name='eipam-ip-block.mask' value='' />\r
+                                                <parameter name="eipam-ip-block.allocate-version" value='ipv6' />\r
+                                                <parameter name="eipam-ip-block.level" value='1' />\r
+                                                <parameter name='eipam-ip-block.plans_length' value='0' />\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\r
+                                                <outcome value='success'>\r
+                                                    <block atomic="true">\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="eipam-ip-block.ip-prefix for level1"/>\r
+                                                            <parameter name="field5" value="`$eipam-ip-block.ip-prefix`"/>\r
+                                                            <parameter name="field6" value="eipam-ip-block.mask for level1"/>\r
+                                                            <parameter name="field7" value="`$eipam-ip-block.mask`"/>\r
+                                                            <parameter name="field8" value="ipv6"/>\r
+                                                        </record>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='' />\r
+                                                            <parameter name='tmp.l3-network.level1.v6.entity-id' value='`$eipam-ip-block.entity-id`' />\r
+                                                            <parameter name='tmp.l3-network.level1.v6.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\r
+                                                            <parameter name='tmp.l3-network.level1.v6.mask' value='`$eipam-ip-block.mask`' />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <block atomic="true">\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="Failed to allocate level1 ipv6 subnet - failure from eipam-allocate-network-role-subnet"/>\r
+                                                        </record>\r
+                                                        <switch test="`$tmp.l3-network.level1.v6.pool.pre-existing`">\r
+                                                            <outcome value='true'>\r
+                                                                <return status="failure">\r
+                                                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                                                    <parameter name="error-code" value="500"/>\r
+                                                                    <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                            <outcome value='false'>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                        <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                    </set>\r
+                                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                        <outcome value='Other'>\r
+                                                                            <return status="failure">\r
+                                                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                <parameter name="error-code" value="500"/>\r
+                                                                                <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Rollback complete." />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='failure'>\r
+                                                                            <return status="failure">\r
+                                                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                <parameter name="error-code" value="500"/>\r
+                                                                                <parameter name="error-message" value="An error occured while allocating subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                    </execute>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value=''>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                        <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                    </set>\r
+                                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                        <outcome value='Other'>\r
+                                                                            <return status="failure">\r
+                                                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                <parameter name="error-code" value="500"/>\r
+                                                                                <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Rollback complete." />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='failure'>\r
+                                                                            <return status="failure">\r
+                                                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                <parameter name="error-code" value="500"/>\r
+                                                                                <parameter name="error-message" value="An error occured while allocating subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                    </execute>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </call>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <set>\r
+                        <parameter name='eipam-ip-block.entity-id' value='' />\r
+                        <parameter name='eipam-ip-block.ip-prefix' value='' />\r
+                        <parameter name='eipam-ip-block.mask' value='' />\r
+                        <parameter name="eipam-ip-block.level" value='2' />\r
+                        <parameter name='eipam-ip-block.plans_length' value='0' />\r
+                        <parameter name='eipam-pool.v4.pre-existing' value='false' />\r
+                        <parameter name='eipam-pool.v6.pre-existing' value='false' />\r
+                    </set>\r
+                    <!--tmp.level should be set to 1-->\r
+                    <call module='GENERIC-RESOURCE-API' rpc='eipam-create-network-role-pool' mode='sync' >\r
+                        <outcome value='failure'>\r
+                            <block atomic="true">\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log"/>\r
+                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                    <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                    <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                    <parameter name="field4" value="Error creating level 2 pool, need to attempt rollback"/>\r
+                                </record>\r
+                                <return status="failure">\r
+                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="An error occured while allocating subnet in EIPAM.  Error creating level 2 pool" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <block atomic="true">\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log"/>\r
+                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                    <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                    <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                    <parameter name="field4" value="eipam-pool.v4.pre-existing"/>\r
+                                    <parameter name="field5" value="`$eipam-pool.v4.pre-existing`"/>\r
+                                    <parameter name="field6" value="eipam-pool.v4.pre-existing"/>\r
+                                    <parameter name="field7" value="`$eipam-pool.v6.pre-existing`"/>\r
+                                    <parameter name="field8" value="tmp.create-v4-pool-flag" />\r
+                                    <parameter name="field9" value="`$tmp.create-v4-pool-flag`" />\r
+                                    <parameter name="field10" value="tmp.create-v6-pool-flag" />\r
+                                    <parameter name="field11" value="`$tmp.create-v6-pool-flag`" />\r
+                                </record>\r
+                                <set>\r
+                                    <parameter name='tmp.l3-network.level2.v4.pre-existing' value='`$eipam-pool.v4.pre-existing`'/>\r
+                                    <parameter name='tmp.l3-network.level2.v6.pre-existing' value='`$eipam-pool.v6.pre-existing`'/>\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </call>\r
+                    <switch test="`$network-model.use-ipv4`">\r
+                        <outcome value='Y'>\r
+                            <block atomic='true'>\r
+                                <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        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
+        pfx='tmp.eipam-subnet-row'>\r
+                                    <outcome value='success'>\r
+                                        <block atomic="true">\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                <parameter name="field4" value="Existing eipam-ip-block.ip-prefix for level2"/>\r
+                                                <parameter name="field5" value="`$tmp.eipam-subnet-row.ip-address`"/>\r
+                                                <parameter name="field6" value="Existing eipam-ip-block.mask for level2"/>\r
+                                                <parameter name="field7" value="`$tmp.eipam-subnet-row.prefix-length`"/>\r
+                                                <parameter name="field8" value="ipv4"/>\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='true' />\r
+                                                <parameter name='tmp.l3-network.level2.v4.entity-id' value='`$tmp.eipam-row.entity-id`' />\r
+                                                <parameter name='tmp.l3-network.level2.v4.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\r
+                                                <parameter name='tmp.l3-network.level2.v4.mask' value='`$tmp.eipam-row.prefix-length`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="not-found">\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name='eipam-ip-block.entity-id' value='' />\r
+                                                <parameter name='eipam-ip-block.ip-prefix' value='' />\r
+                                                <parameter name='eipam-ip-block.mask' value='' />\r
+                                                <parameter name="eipam-ip-block.allocate-version" value='ipv4' />\r
+                                                <parameter name="eipam-ip-block.level" value='2' />\r
+                                                <parameter name='eipam-ip-block.plans_length' value='0' />\r
+                                                <parameter name="eipam-ip-block.subnet-size-override" value="`$eipam-ip-block.subnet-size-override-v4`" />\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\r
+                                                <outcome value='success'>\r
+                                                    <block atomic="true">\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="eipam-ip-block.ip-prefix for level2"/>\r
+                                                            <parameter name="field5" value="`$eipam-ip-block.ip-prefix`"/>\r
+                                                            <parameter name="field6" value="eipam-ip-block.mask for level2"/>\r
+                                                            <parameter name="field7" value="`$eipam-ip-block.mask`"/>\r
+                                                            <parameter name="field8" value="ipv4"/>\r
+                                                        </record>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='' />\r
+                                                            <parameter name='tmp.l3-network.level2.v4.entity-id' value='`$eipam-ip-block.entity-id`' />\r
+                                                            <parameter name='tmp.l3-network.level2.v4.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\r
+                                                            <parameter name='tmp.l3-network.level2.v4.mask' value='`$eipam-ip-block.mask`' />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <block atomic="true">\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="Failed to allocate level2 ipv4 subnet - failure from eipam-allocate-network-role-subnet"/>\r
+                                                        </record>\r
+                                                        <switch test="`$tmp.l3-network.level2.v4.pool.pre-existing`">\r
+                                                            <outcome value='true'>\r
+                                                                <return status="failure">\r
+                                                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                                                    <parameter name="error-code" value="500"/>\r
+                                                                    <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                            <outcome value='false'>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                        <parameter name="eipam-ip-block.level" value='2' />\r
+                                                                    </set>\r
+                                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                        <outcome value='failure'></outcome>\r
+                                                                        <outcome value='Other'></outcome>\r
+                                                                    </execute>\r
+                                                                    <switch test="`$tmp.l3-network.level1.v4.pool.pre-existing == true or $tmp.l3-network.level1.v4.pool.pre-existing == true`">\r
+                                                                        <outcome value='true'>\r
+                                                                            <return status="failure">\r
+                                                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                <parameter name="error-code" value="500"/>\r
+                                                                                <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='false'>\r
+                                                                            <block atomic="true">\r
+                                                                                <set>\r
+                                                                                    <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                                    <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                                </set>\r
+                                                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM. Rollback complete." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='failure'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                </execute>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                        <outcome value=''>\r
+                                                                            <block atomic="true">\r
+                                                                                <set>\r
+                                                                                    <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                                    <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                                </set>\r
+                                                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM. Rollback complete." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='failure'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                </execute>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value=''>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                        <parameter name="eipam-ip-block.level" value='2' />\r
+                                                                    </set>\r
+                                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                        <outcome value='failure'></outcome>\r
+                                                                        <outcome value='Other'></outcome>\r
+                                                                    </execute>\r
+                                                                    <switch test="`$tmp.l3-network.level1.v4.pool.pre-existing == true or $tmp.l3-network.level1.v4.pool.pre-existing == true`">\r
+                                                                        <outcome value='true'>\r
+                                                                            <return status="failure">\r
+                                                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                <parameter name="error-code" value="500"/>\r
+                                                                                <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='false'>\r
+                                                                            <block atomic="true">\r
+                                                                                <set>\r
+                                                                                    <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                                    <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                                </set>\r
+                                                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM. Rollback complete." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='failure'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                </execute>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                        <outcome value=''>\r
+                                                                            <block atomic="true">\r
+                                                                                <set>\r
+                                                                                    <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                                    <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                                </set>\r
+                                                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM. Rollback complete." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='failure'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv4 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                </execute>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </call>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$network-model.use-ipv6`">\r
+                        <outcome value='Y'>\r
+                            <block atomic='true'>\r
+                                <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.sli.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        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
+        pfx='tmp.eipam-subnet-row'>\r
+                                    <outcome value='success'>\r
+                                        <block atomic="true">\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                <parameter name="field4" value="Existing eipam-ip-block.ip-prefix for level1"/>\r
+                                                <parameter name="field5" value="`$tmp.eipam-subnet-row.ip-address`"/>\r
+                                                <parameter name="field6" value="Existing eipam-ip-block.mask for level1"/>\r
+                                                <parameter name="field7" value="`$tmp.eipam-subnet-row.prefix-length`"/>\r
+                                                <parameter name="field8" value="ipv6"/>\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='true' />\r
+                                                <parameter name='tmp.l3-network.level2.v6.entity-id' value='`$tmp.eipam-row.entity-id`' />\r
+                                                <parameter name='tmp.l3-network.level2.v6.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\r
+                                                <parameter name='tmp.l3-network.level2.v6.mask' value='`$tmp.eipam-row.prefix-length`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="not-found">\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name='eipam-ip-block.entity-id' value='' />\r
+                                                <parameter name='eipam-ip-block.ip-prefix' value='' />\r
+                                                <parameter name='eipam-ip-block.mask' value='' />\r
+                                                <parameter name="eipam-ip-block.allocate-version" value='ipv6' />\r
+                                                <parameter name="eipam-ip-block.level" value='2' />\r
+                                                <parameter name='eipam-ip-block.plans_length' value='0' />\r
+                                                <parameter name="eipam-ip-block.subnet-size-override" value="`$eipam-ip-block.subnet-size-override-v6`" />\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\r
+                                                <outcome value='success'>\r
+                                                    <block atomic="true">\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="eipam-ip-block.ip-prefix for level1"/>\r
+                                                            <parameter name="field5" value="`$eipam-ip-block.ip-prefix`"/>\r
+                                                            <parameter name="field6" value="eipam-ip-block.mask for level1"/>\r
+                                                            <parameter name="field7" value="`$eipam-ip-block.mask`"/>\r
+                                                            <parameter name="field8" value="ipv6"/>\r
+                                                        </record>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='' />\r
+                                                            <parameter name='tmp.l3-network.level2.v6.entity-id' value='`$eipam-ip-block.entity-id`' />\r
+                                                            <parameter name='tmp.l3-network.level2.v6.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\r
+                                                            <parameter name='tmp.l3-network.level2.v6.mask' value='`$eipam-ip-block.mask`' />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <block atomic="true">\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="Failed to allocate level2 ipv6 subnet - failure from eipam-allocate-network-role-subnet"/>\r
+                                                        </record>\r
+                                                        <switch test="`$tmp.l3-network.level2.v6.pool.pre-existing`">\r
+                                                            <outcome value='true'>\r
+                                                                <return status="failure">\r
+                                                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                                                    <parameter name="error-code" value="500"/>\r
+                                                                    <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                            <outcome value='false'>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                        <parameter name="eipam-ip-block.level" value='2' />\r
+                                                                    </set>\r
+                                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                        <outcome value='failure'></outcome>\r
+                                                                        <outcome value='Other'></outcome>\r
+                                                                    </execute>\r
+                                                                    <switch test="`$tmp.l3-network.level1.v4.pool.pre-existing == true or $tmp.l3-network.level1.v4.pool.pre-existing == true`">\r
+                                                                        <outcome value='true'>\r
+                                                                            <return status="failure">\r
+                                                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                <parameter name="error-code" value="500"/>\r
+                                                                                <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='false'>\r
+                                                                            <block atomic="true">\r
+                                                                                <set>\r
+                                                                                    <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                                    <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                                </set>\r
+                                                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM. Rollback complete." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='failure'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                </execute>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                        <outcome value=''>\r
+                                                                            <block atomic="true">\r
+                                                                                <set>\r
+                                                                                    <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                                    <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                                </set>\r
+                                                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM. Rollback complete." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='failure'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                </execute>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value=''>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                        <parameter name="eipam-ip-block.level" value='2' />\r
+                                                                    </set>\r
+                                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                        <outcome value='failure'></outcome>\r
+                                                                        <outcome value='Other'></outcome>\r
+                                                                    </execute>\r
+                                                                    <switch test="`$tmp.l3-network.level1.v4.pool.pre-existing == true or $tmp.l3-network.level1.v4.pool.pre-existing == true`">\r
+                                                                        <outcome value='true'>\r
+                                                                            <return status="failure">\r
+                                                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                <parameter name="error-code" value="500"/>\r
+                                                                                <parameter name="error-message" value="An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback." />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='false'>\r
+                                                                            <block atomic="true">\r
+                                                                                <set>\r
+                                                                                    <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                                    <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                                </set>\r
+                                                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM. Rollback complete." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='failure'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                </execute>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                        <outcome value=''>\r
+                                                                            <block atomic="true">\r
+                                                                                <set>\r
+                                                                                    <parameter name="eipam-ip-block.network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                                    <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                                </set>\r
+                                                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM. Rollback complete." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='failure'>\r
+                                                                                        <return status="failure">\r
+                                                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                            <parameter name="error-code" value="500"/>\r
+                                                                                            <parameter name="error-message" value="An error occured while allocating level 2 ipv6 subnet in EIPAM.  Error rolling back EIPAM level 1 pool." />\r
+                                                                                        </return>\r
+                                                                                    </outcome>\r
+                                                                                </execute>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </call>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </outcome>\r
+            <outcome value='delete'>\r
+                <return status="failure">\r
+                    <parameter name="tmp.eipam-error" value="true" />\r
+                    <parameter name="error-code" value="500"/>\r
+                    <parameter name="error-message" value="Invalid option to process-eipam" />\r
+                </return>\r
+            </outcome>\r
+            <outcome value='Other'>\r
+                <return status="failure">\r
+                    <parameter name="tmp.eipam-error" value="true" />\r
+                    <parameter name="error-code" value="500"/>\r
+                    <parameter name="error-message" value="Invalid option to process-eipam" />\r
+                </return>\r
+            </outcome>\r
+        </switch>\r
+    </method>\r
+</service-logic>