--- /dev/null
+<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