--- /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
+ <method rpc='eipam-allocate-generic-subnet' mode='sync'>\r
+ <block atomic='true'>\r
+ <set>\r
+ <parameter name="tmp.eipam-error" value="false" />\r
+ <parameter name="tmp.allocate-v4-subnet-flag" value="N" />\r
+ <parameter name="tmp.allocate-v6-subnet-flag" value="N" />\r
+ <parameter name='eipam-ip-block.plans_length' value='0' />\r
+ <parameter name="eipam-pool.v4.pre-existing" value="N"/>\r
+ <parameter name="eipam-pool.v6.pre-existing" value="N"/>\r
+ <parameter name="tmp.leaf-level" value="N" />\r
+ </set>\r
+ <switch test="`$tmp.activate-subnet-flag`">\r
+ <outcome value="">\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="tmp.activate-subnet-flag" value="Y"/>\r
+ </set>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='Y'></outcome>\r
+ <outcome value='N'></outcome>\r
+ </switch>\r
+ <switch test="`$eipam-ip-block.level == $eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`">\r
+ <outcome value='true'>\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="tmp.leaf-level" value="Y" />\r
+ </set>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <!--Need to know which ipv version to get the plan name from the network-model.-->\r
+ <switch test="`$eipam-ip-block.allocate-version`">\r
+ <outcome value='ipv4'>\r
+ <block atomic='true'>\r
+ <switch test="`$l-idx`">\r
+ <outcome value='1'>\r
+ <block atomic='true'>\r
+ <switch test="`$tmp.skip-first-level`">\r
+ <outcome value='Y'></outcome>\r
+ <outcome value="">\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+ <parameter name="eipam-ip-block.activate-subnet-flag" value="`$tmp.activate-subnet-flag`"/>\r
+ <parameter name="eipam-ip-block.leaf-level-indicator" value="`$tmp.leaf-level`"/>\r
+ <parameter name="tmp.allocate-v4-subnet-flag" value="Y" />\r
+ <!-- Number of Pool Levels -->\r
+ <parameter name="eipam-ip-block.pools_length" value="`$eipam-ip-block.level`"/>\r
+ </set>\r
+ <for index="l4-idx" start="0" end="`$eipam-ip-block.level`">\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="eipam-ip-block.pools[$l4-idx].key-name" value="`$v4FQPN-output.pools[$l4-idx].key-name`"/>\r
+ <parameter name="eipam-ip-block.pools[$l4-idx].key-value" value="`$v4FQPN-output.pools[$l4-idx].key-value`"/>\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="network-topology-operation"/>\r
+ <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+ <parameter name="field4" value="`$eipam-ip-block.plan-name`"/>\r
+ <parameter name="field5" value="`$eipam-ip-block.pools[$l4-idx].key-name`"/>\r
+ <parameter name="field6" value="`$eipam-ip-block.pools[$l4-idx].key-value`"/>\r
+ </record>\r
+ </block>\r
+ </for>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\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 V4 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ </execute>\r
+ <get-resource\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; "\r
+ pfx='pfx.eipam-pool-row'>\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 looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ <outcome value="not-found">\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 looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ </get-resource>\r
+ <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+ <outcome value='shared'>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v4-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv4-ip-version ,\r
+ network_id = $tmp.network-id ,\r
+ network_instance_group_id = $tmp.network-instance-group-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v4subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v4-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv4-ip-version ,\r
+ network_id = $tmp.network-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v4subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value=''>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v4-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv4-ip-version ,\r
+ network_id = $tmp.network-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v4subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ </switch>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNET_KEYS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ key_name = $key-name ,\r
+ key_value = $key-value ,\r
+ level = $eipam-ip-block.level ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v4subnet-key-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='success'></outcome>\r
+ </save>\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="network-topology-operation"/>\r
+ <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+ <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+ <parameter name="field5" value="`$key-value`"/>\r
+ <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+ <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+ <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+ <parameter name="field9" value="`$network-model.network-role`"/>\r
+ <parameter name="field10" value="`$tmp.network-id`"/>\r
+ <parameter name="field11" value="subnet saved to DB."/>\r
+ </record>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='N'>\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+ <parameter name="eipam-ip-block.activate-subnet-flag" value="`$tmp.activate-subnet-flag`"/>\r
+ <parameter name="eipam-ip-block.leaf-level-indicator" value="`$tmp.leaf-level`"/>\r
+ <parameter name="tmp.allocate-v4-subnet-flag" value="Y" />\r
+ <!-- Number of Pool Levels -->\r
+ <parameter name="eipam-ip-block.pools_length" value="`$eipam-ip-block.level`"/>\r
+ </set>\r
+ <for index="l4-idx" start="0" end="`$eipam-ip-block.level`">\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="eipam-ip-block.pools[$l4-idx].key-name" value="`$v4FQPN-output.pools[$l4-idx].key-name`"/>\r
+ <parameter name="eipam-ip-block.pools[$l4-idx].key-value" value="`$v4FQPN-output.pools[$l4-idx].key-value`"/>\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="network-topology-operation"/>\r
+ <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+ <parameter name="field4" value="`$eipam-ip-block.plan-name`"/>\r
+ <parameter name="field5" value="`$eipam-ip-block.pools[$l4-idx].key-name`"/>\r
+ <parameter name="field6" value="`$eipam-ip-block.pools[$l4-idx].key-value`"/>\r
+ </record>\r
+ </block>\r
+ </for>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\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 V4 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ </execute>\r
+ <get-resource\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; "\r
+ pfx='pfx.eipam-pool-row'>\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 looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ <outcome value="not-found">\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 looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ </get-resource>\r
+ <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+ <outcome value='shared'>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v4-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv4-ip-version ,\r
+ network_id = $tmp.network-id ,\r
+ network_instance_group_id = $tmp.network-instance-group-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v4subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v4-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv4-ip-version ,\r
+ network_id = $tmp.network-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v4subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value=''>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v4-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv4-ip-version ,\r
+ network_id = $tmp.network-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v4subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ </switch>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNET_KEYS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ key_name = $key-name ,\r
+ key_value = $key-value ,\r
+ level = $eipam-ip-block.level ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v4subnet-key-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='success'></outcome>\r
+ </save>\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="network-topology-operation"/>\r
+ <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+ <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+ <parameter name="field5" value="`$key-value`"/>\r
+ <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+ <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+ <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+ <parameter name="field9" value="`$network-model.network-role`"/>\r
+ <parameter name="field10" value="`$tmp.network-id`"/>\r
+ <parameter name="field11" value="subnet saved to DB."/>\r
+ </record>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </outcome>\r
+ <outcome value=''>\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="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+ <parameter name="eipam-ip-block.activate-subnet-flag" value="`$tmp.activate-subnet-flag`"/>\r
+ <parameter name="eipam-ip-block.leaf-level-indicator" value="`$tmp.leaf-level`"/>\r
+ <parameter name="tmp.allocate-v4-subnet-flag" value="Y" />\r
+ <!-- Number of Pool Levels -->\r
+ <parameter name="eipam-ip-block.pools_length" value="`$eipam-ip-block.level`"/>\r
+ </set>\r
+ <for index="l4-idx" start="0" end="`$eipam-ip-block.level`">\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="eipam-ip-block.pools[$l4-idx].key-name" value="`$v4FQPN-output.pools[$l4-idx].key-name`"/>\r
+ <parameter name="eipam-ip-block.pools[$l4-idx].key-value" value="`$v4FQPN-output.pools[$l4-idx].key-value`"/>\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="network-topology-operation"/>\r
+ <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+ <parameter name="field4" value="`$eipam-ip-block.plan-name`"/>\r
+ <parameter name="field5" value="`$eipam-ip-block.pools[$l4-idx].key-name`"/>\r
+ <parameter name="field6" value="`$eipam-ip-block.pools[$l4-idx].key-value`"/>\r
+ </record>\r
+ </block>\r
+ </for>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\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 V4 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ </execute>\r
+ <get-resource\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; "\r
+ pfx='pfx.eipam-pool-row'>\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 looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ <outcome value="not-found">\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 looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ </get-resource>\r
+ <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+ <outcome value='shared'>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v4-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv4-ip-version ,\r
+ network_id = $tmp.network-id ,\r
+ network_instance_group_id = $tmp.network-instance-group-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v4subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v4-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv4-ip-version ,\r
+ network_id = $tmp.network-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v4subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value=''>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v4-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv4-ip-version ,\r
+ network_id = $tmp.network-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v4subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ </switch>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNET_KEYS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ key_name = $key-name ,\r
+ key_value = $key-value ,\r
+ level = $eipam-ip-block.level ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v4subnet-key-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='success'></outcome>\r
+ </save>\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="network-topology-operation"/>\r
+ <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+ <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+ <parameter name="field5" value="`$key-value`"/>\r
+ <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+ <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+ <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+ <parameter name="field9" value="`$network-model.network-role`"/>\r
+ <parameter name="field10" value="`$tmp.network-id`"/>\r
+ <parameter name="field11" value="subnet saved to DB."/>\r
+ </record>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='ipv6'>\r
+ <block atomic='true'>\r
+ <switch test="`$l-idx`">\r
+ <outcome value='1'>\r
+ <block atomic='true'>\r
+ <switch test="`$tmp.skip-first-level`">\r
+ <outcome value='Y'></outcome>\r
+ <outcome value="">\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+ <parameter name="eipam-ip-block.activate-subnet-flag" value="`$tmp.activate-subnet-flag`"/>\r
+ <parameter name="eipam-ip-block.leaf-level-indicator" value="`$tmp.leaf-level`"/>\r
+ <parameter name="tmp.allocate-v6-subnet-flag" value="Y" />\r
+ <!-- Number of Pool Levels -->\r
+ <parameter name="eipam-ip-block.pools_length" value="`$eipam-ip-block.level`"/>\r
+ </set>\r
+ <for index="l6-idx" start="0" end="`$eipam-ip-block.level`">\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="eipam-ip-block.pools[$l6-idx].key-name" value="`$v6FQPN-output.pools[$l6-idx].key-name`"/>\r
+ <parameter name="eipam-ip-block.pools[$l6-idx].key-value" value="`$v6FQPN-output.pools[$l6-idx].key-value`"/>\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="network-topology-operation"/>\r
+ <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+ <parameter name="field4" value="`$eipam-ip-block.plan-name`"/>\r
+ <parameter name="field5" value="`$eipam-ip-block.pools[$l6-idx].key-name`"/>\r
+ <parameter name="field6" value="`$eipam-ip-block.pools[$l6-idx].key-value`"/>\r
+ <parameter name="field7" value="`$l6-idx`"/>\r
+ </record>\r
+ </block>\r
+ </for>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\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 V6 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ </execute>\r
+ <get-resource\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; "\r
+ pfx='pfx.eipam-pool-row'>\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 looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ <outcome value="not-found">\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 looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ </get-resource>\r
+ <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+ <outcome value='shared'>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v6-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv6-ip-version ,\r
+ network_id = $tmp.network-id ,\r
+ network_instance_group_id = $tmp.network-instance-group-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v6subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v6-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv6-ip-version ,\r
+ network_id = $tmp.network-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v6subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value=''>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v6-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv6-ip-version ,\r
+ network_id = $tmp.network-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v6subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ </switch>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNET_KEYS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ key_name = $key-name ,\r
+ key_value = $key-value ,\r
+ level = $eipam-ip-block.level ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v6subnet-key-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='success'></outcome>\r
+ </save>\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="network-topology-operation"/>\r
+ <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+ <parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
+ <parameter name="field5" value="`$key-value`"/>\r
+ <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+ <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+ <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+ <parameter name="field9" value="`$network-model.network-role`"/>\r
+ <parameter name="field10" value="`$tmp.network-id`"/>\r
+ <parameter name="field11" value="subnet info are saved to DB."/>\r
+ </record>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='N'>\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+ <parameter name="eipam-ip-block.activate-subnet-flag" value="`$tmp.activate-subnet-flag`"/>\r
+ <parameter name="eipam-ip-block.leaf-level-indicator" value="`$tmp.leaf-level`"/>\r
+ <parameter name="tmp.allocate-v6-subnet-flag" value="Y" />\r
+ <!-- Number of Pool Levels -->\r
+ <parameter name="eipam-ip-block.pools_length" value="`$eipam-ip-block.level`"/>\r
+ </set>\r
+ <for index="l6-idx" start="0" end="`$eipam-ip-block.level`">\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="eipam-ip-block.pools[$l6-idx].key-name" value="`$v6FQPN-output.pools[$l6-idx].key-name`"/>\r
+ <parameter name="eipam-ip-block.pools[$l6-idx].key-value" value="`$v6FQPN-output.pools[$l6-idx].key-value`"/>\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="network-topology-operation"/>\r
+ <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+ <parameter name="field4" value="`$eipam-ip-block.plan-name`"/>\r
+ <parameter name="field5" value="`$eipam-ip-block.pools[$l6-idx].key-name`"/>\r
+ <parameter name="field6" value="`$eipam-ip-block.pools[$l6-idx].key-value`"/>\r
+ <parameter name="field7" value="`$l6-idx`"/>\r
+ </record>\r
+ </block>\r
+ </for>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\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 V6 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ </execute>\r
+ <get-resource\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; "\r
+ pfx='pfx.eipam-pool-row'>\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 looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ <outcome value="not-found">\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 looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ </get-resource>\r
+ <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+ <outcome value='shared'>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v6-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv6-ip-version ,\r
+ network_id = $tmp.network-id ,\r
+ network_instance_group_id = $tmp.network-instance-group-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v6subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v6-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv6-ip-version ,\r
+ network_id = $tmp.network-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v6subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value=''>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v6-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv6-ip-version ,\r
+ network_id = $tmp.network-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v6subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ </switch>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNET_KEYS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ key_name = $key-name ,\r
+ key_value = $key-value ,\r
+ level = $eipam-ip-block.level ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v6subnet-key-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='success'></outcome>\r
+ </save>\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="network-topology-operation"/>\r
+ <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+ <parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
+ <parameter name="field5" value="`$key-value`"/>\r
+ <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+ <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+ <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+ <parameter name="field9" value="`$network-model.network-role`"/>\r
+ <parameter name="field10" value="`$tmp.network-id`"/>\r
+ <parameter name="field11" value="subnet info are saved to DB."/>\r
+ </record>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </outcome>\r
+ <outcome value=''>\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="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+ <parameter name="eipam-ip-block.activate-subnet-flag" value="`$tmp.activate-subnet-flag`"/>\r
+ <parameter name="eipam-ip-block.leaf-level-indicator" value="`$tmp.leaf-level`"/>\r
+ <parameter name="tmp.allocate-v6-subnet-flag" value="Y" />\r
+ <!-- Number of Pool Levels -->\r
+ <parameter name="eipam-ip-block.pools_length" value="`$eipam-ip-block.level`"/>\r
+ </set>\r
+ <for index="l6-idx" start="0" end="`$eipam-ip-block.level`">\r
+ <block atomic='true'>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <set>\r
+ <parameter name="eipam-ip-block.pools[$l6-idx].key-name" value="`$v6FQPN-output.pools[$l6-idx].key-name`"/>\r
+ <parameter name="eipam-ip-block.pools[$l6-idx].key-value" value="`$v6FQPN-output.pools[$l6-idx].key-value`"/>\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="network-topology-operation"/>\r
+ <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+ <parameter name="field4" value="`$eipam-ip-block.plan-name`"/>\r
+ <parameter name="field5" value="`$eipam-ip-block.pools[$l6-idx].key-name`"/>\r
+ <parameter name="field6" value="`$eipam-ip-block.pools[$l6-idx].key-value`"/>\r
+ <parameter name="field7" value="`$l6-idx`"/>\r
+ </record>\r
+ </block>\r
+ </for>\r
+ <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\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 V6 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ </execute>\r
+ <get-resource\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; "\r
+ pfx='pfx.eipam-pool-row'>\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 looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ <outcome value="not-found">\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 looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+ </return>\r
+ </outcome>\r
+ </get-resource>\r
+ <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+ <outcome value='shared'>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v6-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv6-ip-version ,\r
+ network_id = $tmp.network-id ,\r
+ network_instance_group_id = $tmp.network-instance-group-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v6subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v6-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv6-ip-version ,\r
+ network_id = $tmp.network-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v6subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value=''>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNETS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ service_type = $tmp.service-type ,\r
+ ip_address = $eipam-ip-block.ip-prefix ,\r
+ prefix_length = $eipam-ip-block.mask ,\r
+ plan_name = $network-model.eipam-v6-address-plan ,\r
+ status = 'ACTIVE' ,\r
+ pool_id = $pfx.eipam-pool-row.pool-id ,\r
+ address_family = $network-model.ipv6-ip-version ,\r
+ network_id = $tmp.network-id ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v6subnet-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+ </return>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ </switch>\r
+ <save\r
+ plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+ resource='SQL'\r
+ key="INSERT EIPAM_IP_SUBNET_KEYS\r
+ SET\r
+ entity_id = $eipam-ip-block.entity-id ,\r
+ key_name = $key-name ,\r
+ key_value = $key-value ,\r
+ level = $eipam-ip-block.level ; "\r
+ force='true'\r
+ pfx='pfx.eipam-v6subnet-key-row'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='success'></outcome>\r
+ </save>\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="network-topology-operation"/>\r
+ <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+ <parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
+ <parameter name="field5" value="`$key-value`"/>\r
+ <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+ <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+ <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+ <parameter name="field9" value="`$network-model.network-role`"/>\r
+ <parameter name="field10" value="`$tmp.network-id`"/>\r
+ <parameter name="field11" value="subnet info are saved to DB."/>\r
+ </record>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </outcome>\r
+ <outcome value=''>\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="Please set the eipam-ip-block.allocate-version for appropriate EIPAM request." />\r
+ </return>\r
+ </outcome>\r
+ </switch>\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