Generic resource API DG catch up
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_process-generic-eipam-pools.xml
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_process-generic-eipam-pools.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_process-generic-eipam-pools.xml
new file mode 100755 (executable)
index 0000000..d713d23
--- /dev/null
@@ -0,0 +1,661 @@
+<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
+    <!--This DG relys on generate-FQPN to determine the key_names & key_values for all levels for the specified plan-name.-->\r
+    <method rpc="process-generic-eipam-pools" mode="sync">\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name="tmp.eipam-error" value="false" />\r
+                <parameter name="tmp.create-v4-pool-flag" value="N" />\r
+                <parameter name="tmp.create-v6-pool-flag" value="N" />\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.network-id" value="`$tmp.l3-network.network-id`" /> -->\r
+                <parameter name="tmp.network-id" value="`$network-topology-operation-input.network-information.network-id`" />\r
+            </set>\r
+            <switch test='`$tmp.service-type`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="tmp.service-type" value="`$service-data.service-information.subscription-service-type`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$tmp.network-instance-group-id`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="tmp.network-instance-group-id" value="`$network-topology-operation-input.network-request-input.network-instance-group-id`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generate-FQPN-input.network-name`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="generate-FQPN-input.network-name" value="`$network-topology-identifier-structure.network-name`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generate-FQPN-input.zone`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="generate-FQPN-input.zone" value="`$aai.cloud-region.cloud-zone`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generate-FQPN-input.network-collection`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="generate-FQPN-input.network-collection" value="`$aai-network-collection.collection-name`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generate-FQPN-input.aic-cloud-region`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                            <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                            <parameter name='contextPrefix' value='prop' />\r
+                        </execute>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="cloud-region" \r
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
+                    cloud-region.cloud-region-id = $aai.cloud-region.cloud-region-id AND\r
+                    depth = '0'"\r
+        pfx='aai.cloud-region' >\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="`'aic-cloud-region, '+ $generate-fqpn-input.aic-cloud-region + ' not found in AAI'`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="Error retrieving cloud region from AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\r
+                            <outcome value='0'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <for index='ridx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
+                            <for silentFailure='false' index='rdidx' start='0' end="`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                                <switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                                    <outcome value='complex.physical-location-id'>\r
+                                        <block atomic='true'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.aic-clli' value='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`' />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\r
+                                                    <parameter name='result' value='tmp.truncated.clli8' />\r
+                                                    <parameter name='string' value='`$tmp.aic-clli`' />\r
+                                                    <parameter name='begin-index' value='0' />\r
+                                                    <parameter name='end-index' value='8' />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name='generate-FQPN-input.location-clli8' value='`$tmp.truncated.clli8`' />\r
+                                                </set>\r
+                                            </block>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="complex" \r
+               key="complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value"\r
+    pfx='aai.complex' >\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="Complex not found in AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="Error retrieving complex from AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                            <set>\r
+                                                <parameter name='generate-FQPN-input.complex-region' value='`$aai.complex.region`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </for>\r
+                        <set>\r
+                            <parameter name='generate-FQPN-input.aic-cloud-region' \r
+       value='`$aai.cloud-region.cloud-region-id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generate-FQPN-input.location-clli8`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                            <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                            <parameter name='contextPrefix' value='prop' />\r
+                        </execute>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="cloud-region" \r
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
+                    cloud-region.cloud-region-id = $aai.cloud-region.cloud-region-id AND\r
+                    depth = '0'"\r
+        pfx='aai.cloud-region' >\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="`'aic-cloud-region, '+ $generate-fqpn-input.aic-cloud-region + ' not found in AAI'`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="Error retrieving cloud region from AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\r
+                            <outcome value='0'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <for index='ridx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
+                            <for silentFailure='false' index='rdidx' start='0' end="`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                                <switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                                    <outcome value='complex.physical-location-id'>\r
+                                        <block atomic='true'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.aic-clli' value='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`' />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\r
+                                                    <parameter name='result' value='tmp.truncated.clli8' />\r
+                                                    <parameter name='string' value='`$tmp.aic-clli`' />\r
+                                                    <parameter name='begin-index' value='0' />\r
+                                                    <parameter name='end-index' value='8' />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name='generate-FQPN-input.location-clli8' value='`$tmp.truncated.clli8`' />\r
+                                                </set>\r
+                                            </block>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="complex" \r
+               key="complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value"\r
+    pfx='aai.complex' >\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="Complex not found in AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="Error retrieving complex from AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                            <set>\r
+                                                <parameter name='generate-FQPN-input.complex-region' value='`$aai.complex.region`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </for>\r
+                        <set>\r
+                            <parameter name='generate-FQPN-input.aic-cloud-region' \r
+       value='`$aai.cloud-region.cloud-region-id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generate-FQPN-input.complex-region`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                            <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                            <parameter name='contextPrefix' value='prop' />\r
+                        </execute>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="cloud-region" \r
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
+                    cloud-region.cloud-region-id = $aai.cloud-region.cloud-region-id AND\r
+                    depth = '0'"\r
+        pfx='aai.cloud-region' >\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="`'aic-cloud-region, '+ $generate-fqpn-input.aic-cloud-region + ' not found in AAI'`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="Error retrieving cloud region from AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\r
+                            <outcome value='0'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <for index='ridx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
+                            <for silentFailure='false' index='rdidx' start='0' end="`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                                <switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                                    <outcome value='complex.physical-location-id'>\r
+                                        <block atomic='true'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.aic-clli' value='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`' />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\r
+                                                    <parameter name='result' value='tmp.truncated.clli8' />\r
+                                                    <parameter name='string' value='`$tmp.aic-clli`' />\r
+                                                    <parameter name='begin-index' value='0' />\r
+                                                    <parameter name='end-index' value='8' />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name='generate-FQPN-input.location-clli8' value='`$tmp.truncated.clli8`' />\r
+                                                </set>\r
+                                            </block>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="complex" \r
+               key="complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value"\r
+    pfx='aai.complex' >\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="Complex not found in AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="Error retrieving complex from AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                            <set>\r
+                                                <parameter name='generate-FQPN-input.complex-region' value='`$aai.complex.region`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </for>\r
+                        <set>\r
+                            <parameter name='generate-FQPN-input.aic-cloud-region' \r
+       value='`$aai.cloud-region.cloud-region-id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$network-model.use-ipv4`">\r
+                <outcome value='N'></outcome>\r
+                <outcome value='Y'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='generate-FQPN-input.plan-name' value='`$network-model.eipam-v4-address-plan`' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status="failure">\r
+                                    <parameter name="ack-final" value="Y" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="`'An error occured while generating FQPN: '+ $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                        <set>\r
+                            <parameter name="v4FQPN-output." value="generate-FQPN-output."/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=""></outcome>\r
+            </switch>\r
+            <switch test="`$network-model.use-ipv6`">\r
+                <outcome value='N'></outcome>\r
+                <outcome value='Y'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='generate-FQPN-input.plan-name' value='`$network-model.eipam-v6-address-plan`' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status="failure">\r
+                                    <parameter name="ack-final" value="Y" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="`'An error occured while generating FQPN: '+ $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                        <set>\r
+                            <parameter name="v6FQPN-output." value="generate-FQPN-output."/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=""></outcome>\r
+            </switch>\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
+            <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">\r
+                <outcome value=''>\r
+                    <block></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
+                                </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
+                                </execute>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="l-idx" start="1" end="`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length + 1`">\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.level" value='`$l-idx`' />\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-generic-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-generic-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 pool for level"/>\r
+                                    <parameter name="field5" value="`$l-idx`"/>\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 creating 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-generic-eipam-pools:REQID"/>\r
+                                    <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                    <parameter name="field4" value="`$l-idx`"/>\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
+                                    <parameter name="field12" value="Successful" />\r
+                                </record>\r
+                            </block>\r
+                        </outcome>\r
+                    </call>\r
+                    <switch test="`$tmp.allocate-subnet-flag`">\r
+                        <outcome value=""></outcome>\r
+                        <outcome value='N'>\r
+                            <block atomic='true'>\r
+                                <switch test="`$network-model.use-ipv4`">\r
+                                    <outcome value='N'></outcome>\r
+                                    <outcome value='Y'>\r
+                                        <block atomic='true'>\r
+                                            <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.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 = $l-idx and k.key_value = $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 level:" />\r
+                                                            <parameter name="field5" value="`$l-idx`" />\r
+                                                            <parameter name="field6" value="Existing eipam-ip-block.mask for level:" />\r
+                                                            <parameter name="field7" value="`$tmp.eipam-subnet-row.prefix-length`"/>\r
+                                                            <parameter name="field8" value="ipv4"/>\r
+                                                            <parameter name="field9" value="`$tmp.eipam-subnet-row.ip-address`"/>\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.plans_length' value='0' />\r
+                                                        </set>\r
+                                                        <call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-generic-subnet' mode='sync' >\r
+                                                            <outcome value='success'>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name='eipam-ip-block.v4.allocateSubnetResponse.' value='eipam-ip-block.allocateSubnetResponse.' />\r
+                                                                    </set>\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"/>\r
+                                                                        <parameter name="field5" value="`$eipam-ip-block.ip-prefix`"/>\r
+                                                                        <parameter name="field6" value="eipam-ip-block.mask"/>\r
+                                                                        <parameter name="field7" value="`$eipam-ip-block.v4.allocateSubnetResponse.Mask`"/>\r
+                                                                        <parameter name="field8" value="ipv4"/>\r
+                                                                        <parameter name="field9" value="`$l-idx`" />\r
+                                                                    </record>\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 ipv4 subnet - failure from eipam-allocate-network-role-subnet"/>\r
+                                                                        <parameter name="field5" value="`$l-idx`" />\r
+                                                                    </record>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </call>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value=""></outcome>\r
+                                </switch>\r
+                                <switch test="`$network-model.use-ipv6`">\r
+                                    <outcome value='N'></outcome>\r
+                                    <outcome value='Y'>\r
+                                        <block atomic='true'>\r
+                                            <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.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 = $l-idx and k.key_value = $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 level:" />\r
+                                                            <parameter name="field5" value="`$l-idx`" />\r
+                                                            <parameter name="field6" value="Existing eipam-ip-block.mask for level:" />\r
+                                                            <parameter name="field7" value="`$tmp.eipam-subnet-row.prefix-length`"/>\r
+                                                            <parameter name="field8" value="ipv6"/>\r
+                                                            <parameter name="field9" value="`$tmp.eipam-subnet-row.ip-address`"/>\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.plans_length' value='0' />\r
+                                                        </set>\r
+                                                        <call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-generic-subnet' mode='sync' >\r
+                                                            <outcome value='success'>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name='eipam-ip-block.v6.allocateSubnetResponse.' value='eipam-ip-block.allocateSubnetResponse.' />\r
+                                                                    </set>\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"/>\r
+                                                                        <parameter name="field5" value="`$eipam-ip-block.ip-prefix`"/>\r
+                                                                        <parameter name="field6" value="eipam-ip-block.mask"/>\r
+                                                                        <parameter name="field7" value="`$eipam-ip-block.v6.allocateSubnetResponse.Mask`"/>\r
+                                                                        <parameter name="field8" value="ipv6"/>\r
+                                                                        <parameter name="field9" value="`$l-idx`" />\r
+                                                                    </record>\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 ipv6 subnet - failure from eipam-allocate-network-role-subnet"/>\r
+                                                                        <parameter name="field9" value="`$l-idx`" />\r
+                                                                    </record>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </call>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value=""></outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='Y'></outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <return status='success'>\r
+                <parameter name="error-code" value="200" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file