diff options
author | Brandon, Bruce (bb2697) <bb2697@att.com> | 2018-07-26 18:10:42 +0000 |
---|---|---|
committer | Brandon, Bruce (bb2697) <bb2697@att.com> | 2018-07-26 18:10:42 +0000 |
commit | 5a41e5c15bdbfba0e84e89e13bb06d9930988e77 (patch) | |
tree | 72fa804d3fc3f1e286e3c8e1209309e97a3ff528 /platform-logic/generic-resource-api/src/main/xml/SUBNET-API_subnet-allocated-notification.xml | |
parent | 3b79de733187d2c1c9bccf626958a43bb06dbf2e (diff) |
Generic resource API DG catch up
Generic resource API DG catch up with several new capabilities
Change-Id: I6ba4a1716693a2fb0ba5314f60038277a50249a3
Issue-ID: SDNC-403
Signed-off-by: Brandon, Bruce (bb2697) <bb2697@att.com>
Former-commit-id: dd97cf829ce1c0b3bbb0e98e93a2e6619d945beb
Diffstat (limited to 'platform-logic/generic-resource-api/src/main/xml/SUBNET-API_subnet-allocated-notification.xml')
-rwxr-xr-x | platform-logic/generic-resource-api/src/main/xml/SUBNET-API_subnet-allocated-notification.xml | 1081 |
1 files changed, 626 insertions, 455 deletions
diff --git a/platform-logic/generic-resource-api/src/main/xml/SUBNET-API_subnet-allocated-notification.xml b/platform-logic/generic-resource-api/src/main/xml/SUBNET-API_subnet-allocated-notification.xml index f5f75cff..c1ed57c2 100755 --- a/platform-logic/generic-resource-api/src/main/xml/SUBNET-API_subnet-allocated-notification.xml +++ b/platform-logic/generic-resource-api/src/main/xml/SUBNET-API_subnet-allocated-notification.xml @@ -1,455 +1,626 @@ -<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='SUBNET-API' version='${project.version}'><method rpc='subnet-allocated-notification' mode='sync'>
-<block><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
-<parameter name="logger" value="message-log"/>
-<parameter name="field1" value="__TIMESTAMP__"/>
-<parameter name="field2" value="subnet-allocated-notification"/>
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
-<parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/>
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
-<parameter name="field8" value="`$eipam-ip-block.status`"/>
-<parameter name="field9" value="`$tmp.key-value`"/></record><!--Need to know which ipv version to get the plan name from the network-model.--><switch test="`$eipam-ip-block.ptnii-name`"><!--If there's ptnii-name, then it's Gamma service--><outcome value='Other'><configure adaptor="com.att.sdnctl.sli.adaptor.ncs.ncsAdaptor" key="SNIIR" activate="true">
- <parameter name="input.request-id" value="`$eipam-ip-block.request-id`" />
- <parameter name="input.source" value="SDNC" />
- <parameter name="input.ptnii-name" value="`$eipam-ip-block.ptnii-name`" />
- <parameter name="input.ip-address" value="`$eipam-ip-block.ip-address`" />
- <parameter name="input.mask" value="`$eipam-ip-block.prefix-length`" /><outcome value="success">
-<block><save
- plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
- resource='SQL'
- key="UPDATE EIPAM_IP_SUBNETS
- SET status = 'PENDING-ACTIVE'
- WHERE entity_id = $eipam-ip-block.entity-id ; "
- force='true'
- pfx='pfx.eipam-subnet-row'>
-</save><set>
- <parameter name="eipam-ip-block.status" value="PENDING-ACTIVE" /></set><save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">
- <parameter name="eipam-ip-block.status" value="PENDING-ACTIVE" /></save> <return status="success">
-
-</return></block></outcome><outcome value="Other">
-
-<!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePool">
-
-<outcome value="success">
-<block><set>
- <parameter name="eipam-ip-block.status" value="DELETED" /></set><execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >
-<parameter name="key1" value="IpBlockInstall failure and pool deleted in EIPAM."/>
-</execute><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vpe" key="vnf-id = $data-change-notification-input.key-data[0].key-value" pfx="vpe-after">
- <parameter name="operational-state" value="NCS_IP_SUBNET_INSTALL_ERROR" />
- <parameter name="summary-status" value="`$aai-summary-status-message`" />
- <parameter name="prov-status" value="PREPROV" />
-</update> <return status="failure">
- <parameter name="error-code" value="1000" />
- <parameter name="error-message" value="IpBlockInstall failure and deletePool deleted in EIPAM" />
-</return></block></outcome><outcome value="Other">
-
-<block><save
- plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
- resource='SQL'
- key="UPDATE EIPAM_IP_SUBNETS
- SET status = 'ERROR'
- WHERE entity_id = $eipam-ip-block.entity-id ; "
- force='true'
- pfx='pfx.eipam-subnet-row'>
-</save><set>
- <parameter name="eipam-ip-block.status" value="ERROR" /></set><save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">
- <parameter name="eipam-ip-block.status" value="ERROR" /></save><execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >
-<parameter name="key1" value="IpBlockInstall failure and pool deletion failed in EIPAM, need to manually delete."/></execute><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vpe" key="vnf-id = $data-change-notification-input.key-data[0].key-value" pfx="vpe-after">
- <parameter name="operational-state" value="NCS_IP_SUBNET_INSTALL_ERROR" />
- <parameter name="summary-status" value="`$aai-summary-status-message`" />
- <parameter name="prov-status" value="PREPROV" />
-</update> <return status="failure">
- <parameter name="error-code" value="1000" />
- <parameter name="error-message" value="IpBlockInstall failure and deletePool failed in EIPAM, need to manually delete" />
-</return></block></outcome></execute></outcome></configure></outcome><!--If no ptnii-name, check if VIPR or SRIOV--><outcome value=''><execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="startsWith" emitsOutcome='true' >
-<parameter name="source" value="`toUpperCase($eipam-ip-block.plan-name)`" />
-<parameter name="target" value="AIC_" />
-
-<outcome value='false'>
- <return status="failure">
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Unknown Address Plan - not supported!" />
-</return></outcome><outcome value='true'>
-<block atomic='true'><get-resource
- plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
- resource='SQL'
- key="SELECT * FROM EIPAM_IP_POOLS where plan_name = $eipam-ip-block.plan-name and level = 2 and key_value = $tmp.level2-key-value ;"
- pfx='tmp.eipam-pool-row'>
-
-<outcome value='failure'>
-<block atomic='true'><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
-<parameter name="logger" value="message-log"/>
-<parameter name="field1" value="__TIMESTAMP__"/>
-<parameter name="field2" value="subnet-allocated-notification"/>
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
-<parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/>
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
-<parameter name="field8" value="`$eipam-ip-block.status`"/>
-<parameter name="field9" value="Failed to find this record in DB!"/>
-
-</record> <return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Unknown EIPAM pool - not found in DB!" />
-</return></block></outcome><outcome value="not-found"><block atomic='true'><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
-<parameter name="logger" value="message-log"/>
-<parameter name="field1" value="__TIMESTAMP__"/>
-<parameter name="field2" value="subnet-allocated-notification"/>
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
-<parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/>
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
-<parameter name="field8" value="`$eipam-ip-block.status`"/>
-<parameter name="field9" value="This record is not found in DB!"/></record> <return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Unknown EIPAM pool - not found in DB!" />
-</return></block></outcome></get-resource><!--initial subnet should exists--><get-resource
- plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
- resource='SQL'
- key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value and s.address_family = $tmp.version ; "
- pfx='pfx.eipam-initial-subnet'>
-
-<outcome value='failure'>
-<return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />
- </return></outcome><outcome value="not-found"><return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="Initial subnet not found, cannot auto extend." />
- </return></outcome></get-resource><!--check if new subnet already exists, possibly from previous attempt.--><get-resource
- plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
- resource='SQL'
- key="SELECT * from EIPAM_IP_SUBNETS s WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = $eipam-ip-block.entity-id and s.ip_address = $eipam-ip-block.ip-address ; "
- pfx='pfx.eipam-subnet-with-same-ip'>
-
-<outcome value='failure'>
-<return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />
- </return></outcome><outcome value="not-found"></outcome></get-resource><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="l3-network"
- key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id"
- local-only="false"
- pfx="aai.l3-network">
-<outcome value='not-found'>
-<return status='failure'>
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="404" />
- <parameter name="error-message" value="'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'Not found in AnAI'" /></return></outcome><outcome value='failure'>
-<return status='failure'>
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'from AnAI'" /></return></outcome></get-resource><set>
-<parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
-</set><save
- plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
- resource='SQL'
- key="INSERT EIPAM_IP_SUBNETS
- SET
- entity_id = $eipam-ip-block.entity-id ,
- service_type = $pfx.eipam-initial-subnet.service-type ,
- ip_address = $eipam-ip-block.ip-prefix ,
- prefix_length = $eipam-ip-block.mask ,
- plan_name = $eipam-ip-block.plan-name ,
- status = 'PENDING_ACTIVE' ,
- pool_id = $pfx.eipam-initial-subnet.pool-id ,
- address_family = $pfx.eipam-initial-subnet.address-family ,
- network_id = $pfx.eipam-initial-subnet.network-id ; "
- force='true'
- pfx='pfx.eipam-new-subnet'>
-<outcome value='failure'><return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNETS failed." />
- </return></outcome><outcome value='success'>
-</outcome></save><save
- plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
- resource='SQL'
- key="INSERT EIPAM_IP_SUBNET_KEYS
- SET
- entity_id = $eipam-ip-block.entity-id ,
- key_name = $tmp.level1-key-name ,
- key_value = $tmp.level1-key-value ,
- level = 1 ; "
- force='true'
- pfx='pfx.eipam-subnet-level1'>
-<outcome value='success'>
-</outcome><outcome value='failure'><return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNET_KEYS failed." />
- </return></outcome></save><save
- plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
- resource='SQL'
- key="INSERT EIPAM_IP_SUBNET_KEYS
- SET
- entity_id = $eipam-ip-block.entity-id ,
- key_name = $tmp.level2-key-name ,
- key_value = $tmp.level2-key-value ,
- level = 2 ; "
- force='true'
- pfx='pfx.eipam-subnet-level2'>
-<outcome value='success'>
-</outcome><outcome value='failure'><return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNET_KEYS failed." />
- </return></outcome></save><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
-<parameter name="logger" value="message-log"/>
-<parameter name="field1" value="__TIMESTAMP__"/>
-<parameter name="field2" value="Added an entry for subnet-allocated-notification in EIPAM_IP_SUBNETS and EIPAM_IP_SUBNET_KEYS"/>
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
-<parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
-<parameter name="field8" value="`$eipam-ip-block.status`"/>
-<parameter name="field9" value="`$tmp.key-value`"/></record><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="subnet"
- key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id
- AND subnet.subnet-id = $eipam-ip-block.entity-id"
- local-only="false"
- pfx="tmp.aai-initial-subnet">
-<outcome value='not-found'>
-<return status='failure'>
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="404" />
- <parameter name="error-message" value="'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' is Not found in AnAI'" /></return></outcome><outcome value='failure'>
-<return status='failure'>
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' from AnAI'" /></return></outcome></get-resource><switch test='`$aai.l3-network.subnets.subnet_length`'>
-<outcome value=''>
-<return status='failure'>
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="404" />
- <parameter name="error-message" value="'No subnets found in AAI for network-id=' + $pfx.eipam-initial-subnet.network-id" /></return></outcome><outcome value='Other'>
-<set>
-<parameter name='tmp.l3-network.subnet.subnet-name' value="`$aai.l3-network.network-name + '_S' + $aai.l3-network.subnets.subnet_length`" />
-</set></outcome></switch><execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getSubnetAddresses">
- <parameter name="ipAddress" value="`$eipam-ip-block.ip-prefix`" />
- <parameter name="ipVersion" value="`tmp.version`" />
- <parameter name="subnet" value="`$eipam-ip-block.prefix-length`" />
- <parameter name="ctxGateway" value="tmp.return.generate.gateway-address" />
- <parameter name="ctxDhcpStart" value="tmp.return.generate.dhcp-start-address" />
- <parameter name="ctxDhcpEnd" value="tmp.return.generate.dhcp-end-address" />
-
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Failed to generate gateway addresses using IpAddressTools" /></return></outcome></execute><switch test='`$tmp.aai-initial-subnet.dhcp-enabled`'>
-<outcome value='Y'>
-<block atomic="true"><set>
-<parameter name='tmp.l3-network.subnet.dhcp-enabled' value='true' />
-<parameter name='tmp.l3-network.subnet.dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />
-<parameter name='tmp.l3-network.subnet.dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />
-
-
-</set></block></outcome><outcome value='N'>
-<block atomic="true"><set>
-<parameter name='tmp.l3-network.subnet.dhcp-enabled' value='false' />
-<parameter name='tmp.l3-network.subnet.dhcp-start' value='' />
-<parameter name='tmp.l3-network.subnet.dhcp-end' value='' />
-
-
-</set></block></outcome></switch><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="subnet"
- key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id
- AND subnet.subnet-id = $eipam-ip-block.entity-id" >
-<!-- Create l3-network object -->
-<parameter name="network-id" value="`$pfx.eipam-initial-subnet.network-id`" />
-<parameter name="subnet-id" value="`$eipam-ip-block.entity-id`" />
-<parameter name="subnet-name" value="`$tmp.l3-network.subnet.subnet-name`" />
-<parameter name="gateway-address" value="`$tmp.return.generate.gateway-address`" />
-<parameter name="network-start-address" value="`$eipam-ip-block.ip-prefix`" />
-<parameter name="cidr-mask" value="`$eipam-ip-block.prefix-length`" />
-<parameter name="ip-version" value="`$tmp.version`" />
-<parameter name="dhcp-start" value="`$tmp.l3-network.subnet.dhcp-start`" />
-<parameter name="dhcp-end" value="`$tmp.l3-network.subnet.dhcp-end`" />
-<parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet.dhcp-enabled`" />
-<parameter name="orchestration-status" value="PendingCreate" /><outcome value='failure'>
-<return status='failure'>
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="'Cannot save subnet with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' in AnAI'" /></return></outcome><outcome value='not-found'>
-</outcome></save><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
-<parameter name="logger" value="message-log"/>
-<parameter name="field1" value="__TIMESTAMP__"/>
-<parameter name="field2" value="Added a subnetin AAI"/>
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
-<parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
-<parameter name="field8" value="`$eipam-ip-block.status`"/>
-<parameter name="field9" value="`$tmp.key-value`"/></record><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
-<parameter name='api-name' value='subnet' />
-<parameter name='api-action' value='add' />
-<parameter name='resp-prefix' value='contrailResp' />
-<parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' />
-<parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' />
-<parameter name='ip-prefix-len' value='`$eipam-ip-block.prefix-length`' />
-<parameter name='dns-server-address' value='0.0.0.0' />
-<parameter name='enable-dhcp' value='`$tmp.l3-network.subnet.dhcp-enabled`' />
-<parameter name='default-gateway' value='`$tmp.return.generate.gateway-address`' />
-<parameter name='subnet-name' value='`$tmp.l3-network.subnet.subnet-name`' />
-<parameter name='start' value='`$tmp.l3-network.subnet.dhcp-start`' />
-<parameter name='end' value='`$tmp.l3-network.subnet.dhcp-end`' />
-<outcome value='success'>
-<block>
-</block></outcome><outcome value='failure'>
-<block>
-<set>
- <parameter name="eipam-ip-block.status" value="ERROR" /></set><save
- plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
- resource='SQL'
- key="UPDATE EIPAM_IP_SUBNETS
- SET status = 'ERROR'
- WHERE entity_id = $eipam-ip-block.entity-id ; "
- force='true'
- pfx='pfx.eipam-subnet-row'>
-<outcome value='failure'>
-<return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />
- </return></outcome><outcome value="not-found"><return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />
- </return></outcome></save><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="subnet"
- key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id
- AND subnet.subnet-id = $eipam-ip-block.entity-id"></delete><save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">
- <parameter name="eipam-ip-block.status" value="ERROR" /></save><return status='failure'>
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`'Failed to create subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
-</return></block></outcome></execute><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
-<parameter name="logger" value="message-log"/>
-<parameter name="field1" value="__TIMESTAMP__"/>
-<parameter name="field2" value="Added a subnet in Contrail"/>
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
-<parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
-<parameter name="field8" value="`$eipam-ip-block.status`"/>
-<parameter name="field9" value="`$tmp.key-value`"/></record><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="subnet"
- key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id
- AND subnet.subnet-id = $eipam-ip-block.entity-id" >
- <parameter name="orchestration-status" value="Created" />
- <outcome value='not-found'>
-</outcome><outcome value='failure'>
-<block>
-<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
-<parameter name="logger" value="message-log"/>
-<parameter name="field1" value="__TIMESTAMP__"/>
-<parameter name="field2" value="Update status to Created failed in AAI"/>
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
-<parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
-<parameter name="field8" value="`$eipam-ip-block.status`"/>
-<parameter name="field9" value="`$tmp.key-value`"/></record><save
- plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
- resource='SQL'
- key="UPDATE EIPAM_IP_SUBNETS
- SET status = 'ERROR'
- WHERE entity_id = $eipam-ip-block.entity-id ; "
- force='true'
- pfx='pfx.eipam-subnet-row'>
-<outcome value='failure'>
-<return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />
- </return></outcome><outcome value="not-found"><return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />
- </return></outcome></save><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="subnet"
- key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id
- AND subnet.subnet-id = $eipam-ip-block.entity-id"></delete><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
-<parameter name='api-name' value='subnet' />
-<parameter name='api-action' value='delete' />
-<parameter name='resp-prefix' value='contrailResp' />
-<parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' />
-<parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' />
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`'Failed to delete subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
-</return></outcome></execute><set>
- <parameter name="eipam-ip-block.status" value="ERROR" /></set><return status='failure'>
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="'Cannot save subnet status to Created with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' in AnAI'" /></return></block></outcome></update><save
- plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
- resource='SQL'
- key="UPDATE EIPAM_IP_SUBNETS
- SET status = 'CREATED'
- WHERE entity_id = $eipam-ip-block.entity-id ; "
- force='true'
- pfx='pfx.eipam-subnet-row'>
-<outcome value='failure'>
-<return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="An error occured while updating subnet to CREATED in mysql." />
- </return></outcome><outcome value="not-found"><return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="An error occured while updating subnet to CREATED in mysql." />
- </return></outcome></save><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="activateSubnet">
-<outcome value='failure'><return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="An error occured while activating subnet in EIPAM." />
- </return></outcome></execute><save
- plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
- resource='SQL'
- key="UPDATE EIPAM_IP_SUBNETS
- SET status = 'ACTIVE'
- WHERE entity_id = $eipam-ip-block.entity-id ; "
- force='true'
- pfx='pfx.eipam-subnet-row'>
-<outcome value='failure'>
-<return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="An error occured while updating subnet to active in mysql." />
- </return></outcome><outcome value="not-found"><return status="failure">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="An error occured while updating subnet to active in mysql." />
- </return></outcome><outcome value='success'>
-</outcome></save><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="subnet"
- key="l3-network.network-id = $aai.l3-network.network-id
- AND subnet.subnet-id = $eipam-ip-block.entity-id" >
-<parameter name="orchestration-status" value="Created" />
- <outcome value='failure'>
-<return status="failure">
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet." />
- </return></outcome><outcome value="not-found"><return status="failure">
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet. Subnet not found." />
- </return></outcome></update> <return status="success">
- <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
-</return></block></outcome></execute></outcome></switch></block></method></service-logic> +<service-logic + xmlns='http://www.onap.org/sdnc/svclogic' + xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='SUBNET-API' version='${project.version}'> + <method rpc='subnet-allocated-notification' mode='sync'> + <block> + <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder"> + <parameter name="logger" value="message-log"/> + <parameter name="field1" value="__TIMESTAMP__"/> + <parameter name="field2" value="subnet-allocated-notification"/> + <parameter name="field3" value="`$eipam-ip-block.request-id`"/> + <parameter name="field4" value="`$eipam-ip-block.entity-id`"/> + <parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/> + <parameter name="field6" value="`$eipam-ip-block.ip-address`"/> + <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/> + <parameter name="field8" value="`$eipam-ip-block.status`"/> + <parameter name="field9" value="`$tmp.key-value`"/> + </record> + <!--Need to know which ipv version to get the plan name from the network-model.--> + <switch test="`$eipam-ip-block.ptnii-name`"> + <!--If there's ptnii-name, then it's Gamma service--> + <outcome value='Other'> + <block> + <configure adaptor="com.att.sdnctl.sli.adaptor.ncs.ncsAdaptor" key="SNIIR" activate="true"> + <parameter name="input.request-id" value="`$eipam-ip-block.request-id`" /> + <parameter name="input.source" value="SDNC" /> + <parameter name="input.ptnii-name" value="`$eipam-ip-block.ptnii-name`" /> + <parameter name="input.ip-address" value="`$eipam-ip-block.ip-address`" /> + <parameter name="input.mask" value="`$eipam-ip-block.prefix-length`" /> + <outcome value="success"> + <block> + <save + plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' + resource='SQL' + key="UPDATE EIPAM_IP_SUBNETS + SET status = 'PENDING-ACTIVE' + WHERE entity_id = $eipam-ip-block.entity-id ; " + force='true' + pfx='pfx.eipam-subnet-row'></save> + <set> + <parameter name="eipam-ip-block.status" value="PENDING-ACTIVE" /> + </set> + <save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block"> + <parameter name="eipam-ip-block.status" value="PENDING-ACTIVE" /> + </save> + <return status="success"></return> + </block> + </outcome> + <outcome value="Other"> + <!--subnet and subnet_keys are deleted in the EIPAMPlugin--> + <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePool"> + <outcome value="success"> + <block> + <set> + <parameter name="eipam-ip-block.status" value="DELETED" /> + </set> + <return status="failure"> + <parameter name="error-code" value="1000" /> + <parameter name="error-message" value="IpBlockInstall failure and deletePool deleted in EIPAM" /> + </return> + </block> + </outcome> + <outcome value="Other"> + <block> + <save + plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' + resource='SQL' + key="UPDATE EIPAM_IP_SUBNETS + SET + status = 'ERROR', + dealloc_failure = 'deletePool failed in response to NCS_IP_SUBNET_INSTALL_ERROR' + WHERE entity_id = $eipam-ip-block.entity-id ; " + force='true' + pfx='pfx.eipam-subnet-row'></save> + <set> + <parameter name="eipam-ip-block.status" value="NCS_IP_SUBNET_INSTALL_ERROR" /> + </set> + <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="generic-vnf" key="generic-vnf.vnf-id = $tmp.vpe-pool.vpe-id" pfx="vpe-after"> + <parameter name="operational-status" value="NCS_IP_SUBNET_INSTALL_ERROR" /> + <parameter name="summary-status" value="`$aai-summary-status-message`" /> + <parameter name="prov-status" value="PREPROV" /> + </update> + <return status="failure"> + <parameter name="error-code" value="1000" /> + <parameter name="error-message" value="IpBlockInstall failure and deletePool failed in EIPAM, need to manually delete" /> + </return> + </block> + </outcome> + </execute> + </outcome> + </configure> + </block> + </outcome> + <!--If no ptnii-name, check if VIPR or SRIOV--> + <outcome value=''> + <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="startsWith" emitsOutcome='true' > + <parameter name="source" value="`toUpperCase($eipam-ip-block.plan-name)`" /> + <parameter name="target" value="AIC_" /> + <outcome value='false'> + <return status="failure"> + <parameter name="error-code" value="500" /> + <parameter name="error-message" value="Unknown Address Plan - not supported!" /> + </return> + </outcome> + <outcome value='true'> + <block atomic='true'> + <get-resource + plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' + resource='SQL' + key="SELECT * FROM EIPAM_IP_POOLS where plan_name = $eipam-ip-block.plan-name and level = 2 and key_value = $tmp.level2-key-value ;" + pfx='tmp.eipam-pool-row'> + <outcome value='failure'> + <block atomic='true'> + <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder"> + <parameter name="logger" value="message-log"/> + <parameter name="field1" value="__TIMESTAMP__"/> + <parameter name="field2" value="subnet-allocated-notification"/> + <parameter name="field3" value="`$eipam-ip-block.request-id`"/> + <parameter name="field4" value="`$eipam-ip-block.entity-id`"/> + <parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/> + <parameter name="field6" value="`$eipam-ip-block.ip-address`"/> + <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/> + <parameter name="field8" value="`$eipam-ip-block.status`"/> + <parameter name="field9" value="Failed to find this record in DB!"/> + </record> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500" /> + <parameter name="error-message" value="Unknown EIPAM pool - not found in DB!" /> + </return> + </block> + </outcome> + <outcome value="not-found"> + <block atomic='true'> + <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder"> + <parameter name="logger" value="message-log"/> + <parameter name="field1" value="__TIMESTAMP__"/> + <parameter name="field2" value="subnet-allocated-notification"/> + <parameter name="field3" value="`$eipam-ip-block.request-id`"/> + <parameter name="field4" value="`$eipam-ip-block.entity-id`"/> + <parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/> + <parameter name="field6" value="`$eipam-ip-block.ip-address`"/> + <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/> + <parameter name="field8" value="`$eipam-ip-block.status`"/> + <parameter name="field9" value="This record is not found in DB!"/> + </record> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500" /> + <parameter name="error-message" value="Unknown EIPAM pool - not found in DB!" /> + </return> + </block> + </outcome> + </get-resource> + <!--initial subnet should exists--> + <get-resource + plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' + resource='SQL' + key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value and s.address_family = $tmp.version ; " + pfx='pfx.eipam-initial-subnet'> + <outcome value='failure'> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." /> + </return> + </outcome> + <outcome value="not-found"> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="Initial subnet not found, cannot auto extend." /> + </return> + </outcome> + </get-resource> + <!--check if new subnet already exists, possibly from previous attempt.--> + <get-resource + plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' + resource='SQL' + key="SELECT * from EIPAM_IP_SUBNETS s WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = $eipam-ip-block.entity-id and s.ip_address = $eipam-ip-block.ip-address ; " + pfx='pfx.eipam-subnet-with-same-ip'> + <outcome value='failure'> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." /> + </return> + </outcome> + <outcome value="not-found"></outcome> + </get-resource> + <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" + resource="l3-network" + key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id" + local-only="false" + pfx="aai.l3-network"> + <outcome value='not-found'> + <return status='failure'> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="404" /> + <parameter name="error-message" value="'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'Not found in AnAI'" /> + </return> + </outcome> + <outcome value='failure'> + <return status='failure'> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500" /> + <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'from AnAI'" /> + </return> + </outcome> + </get-resource> + <set> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + </set> + <save + plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' + resource='SQL' + key="INSERT EIPAM_IP_SUBNETS + SET + entity_id = $eipam-ip-block.entity-id , + service_type = $pfx.eipam-initial-subnet.service-type , + ip_address = $eipam-ip-block.ip-prefix , + prefix_length = $eipam-ip-block.mask , + plan_name = $eipam-ip-block.plan-name , + status = 'PENDING_ACTIVE' , + pool_id = $pfx.eipam-initial-subnet.pool-id , + address_family = $pfx.eipam-initial-subnet.address-family , + network_id = $pfx.eipam-initial-subnet.network-id ; " + force='true' + pfx='pfx.eipam-new-subnet'> + <outcome value='failure'> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNETS failed." /> + </return> + </outcome> + <outcome value='success'></outcome> + </save> + <save + plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' + resource='SQL' + key="INSERT EIPAM_IP_SUBNET_KEYS + SET + entity_id = $eipam-ip-block.entity-id , + key_name = $tmp.level1-key-name , + key_value = $tmp.level1-key-value , + level = 1 ; " + force='true' + pfx='pfx.eipam-subnet-level1'> + <outcome value='success'></outcome> + <outcome value='failure'> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNET_KEYS failed." /> + </return> + </outcome> + </save> + <save + plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' + resource='SQL' + key="INSERT EIPAM_IP_SUBNET_KEYS + SET + entity_id = $eipam-ip-block.entity-id , + key_name = $tmp.level2-key-name , + key_value = $tmp.level2-key-value , + level = 2 ; " + force='true' + pfx='pfx.eipam-subnet-level2'> + <outcome value='success'></outcome> + <outcome value='failure'> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNET_KEYS failed." /> + </return> + </outcome> + </save> + <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder"> + <parameter name="logger" value="message-log"/> + <parameter name="field1" value="__TIMESTAMP__"/> + <parameter name="field2" value="Added an entry for subnet-allocated-notification in EIPAM_IP_SUBNETS and EIPAM_IP_SUBNET_KEYS"/> + <parameter name="field3" value="`$eipam-ip-block.request-id`"/> + <parameter name="field4" value="`$eipam-ip-block.entity-id`"/> + <parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/> + <parameter name="field6" value="`$eipam-ip-block.ip-address`"/> + <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/> + <parameter name="field8" value="`$eipam-ip-block.status`"/> + <parameter name="field9" value="`$tmp.key-value`"/> + </record> + <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" + resource="subnet" + key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id + AND subnet.subnet-id = $eipam-ip-block.entity-id" + local-only="false" + pfx="tmp.aai-initial-subnet"> + <outcome value='not-found'> + <return status='failure'> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="404" /> + <parameter name="error-message" value="'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' is Not found in AnAI'" /> + </return> + </outcome> + <outcome value='failure'> + <return status='failure'> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500" /> + <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' from AnAI'" /> + </return> + </outcome> + </get-resource> + <switch test='`$aai.l3-network.subnets.subnet_length`'> + <outcome value=''> + <return status='failure'> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="404" /> + <parameter name="error-message" value="'No subnets found in AAI for network-id=' + $pfx.eipam-initial-subnet.network-id" /> + </return> + </outcome> + <outcome value='Other'> + <set> + <parameter name='tmp.l3-network.subnet.subnet-name' value="`$aai.l3-network.network-name + '_S' + $aai.l3-network.subnets.subnet_length`" /> + </set> + </outcome> + </switch> + <execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getSubnetAddresses"> + <parameter name="ipAddress" value="`$eipam-ip-block.ip-prefix`" /> + <parameter name="ipVersion" value="`tmp.version`" /> + <parameter name="subnet" value="`$eipam-ip-block.prefix-length`" /> + <parameter name="ctxGateway" value="tmp.return.generate.gateway-address" /> + <parameter name="ctxDhcpStart" value="tmp.return.generate.dhcp-start-address" /> + <parameter name="ctxDhcpEnd" value="tmp.return.generate.dhcp-end-address" /> + <outcome value='failure'> + <return status='failure'> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name='ack-final' value='Y'/> + <parameter name="error-code" value="500" /> + <parameter name="error-message" value="Failed to generate gateway addresses using IpAddressTools" /> + </return> + </outcome> + </execute> + <switch test='`$tmp.aai-initial-subnet.dhcp-enabled`'> + <outcome value='Y'> + <block atomic="true"> + <set> + <parameter name='tmp.l3-network.subnet.dhcp-enabled' value='true' /> + <parameter name='tmp.l3-network.subnet.dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' /> + <parameter name='tmp.l3-network.subnet.dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' /> + </set> + </block> + </outcome> + <outcome value='N'> + <block atomic="true"> + <set> + <parameter name='tmp.l3-network.subnet.dhcp-enabled' value='false' /> + <parameter name='tmp.l3-network.subnet.dhcp-start' value='' /> + <parameter name='tmp.l3-network.subnet.dhcp-end' value='' /> + </set> + </block> + </outcome> + </switch> + <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" + resource="subnet" + key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id + AND subnet.subnet-id = $eipam-ip-block.entity-id" > + <!-- Create l3-network object --> + <parameter name="network-id" value="`$pfx.eipam-initial-subnet.network-id`" /> + <parameter name="subnet-id" value="`$eipam-ip-block.entity-id`" /> + <parameter name="subnet-name" value="`$tmp.l3-network.subnet.subnet-name`" /> + <parameter name="gateway-address" value="`$tmp.return.generate.gateway-address`" /> + <parameter name="network-start-address" value="`$eipam-ip-block.ip-prefix`" /> + <parameter name="cidr-mask" value="`$eipam-ip-block.prefix-length`" /> + <parameter name="ip-version" value="`$tmp.version`" /> + <parameter name="dhcp-start" value="`$tmp.l3-network.subnet.dhcp-start`" /> + <parameter name="dhcp-end" value="`$tmp.l3-network.subnet.dhcp-end`" /> + <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet.dhcp-enabled`" /> + <parameter name="orchestration-status" value="PendingCreate" /> + <outcome value='failure'> + <return status='failure'> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500" /> + <parameter name="error-message" value="'Cannot save subnet with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' in AnAI'" /> + </return> + </outcome> + <outcome value='not-found'></outcome> + </save> + <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder"> + <parameter name="logger" value="message-log"/> + <parameter name="field1" value="__TIMESTAMP__"/> + <parameter name="field2" value="Added a subnetin AAI"/> + <parameter name="field3" value="`$eipam-ip-block.request-id`"/> + <parameter name="field4" value="`$eipam-ip-block.entity-id`"/> + <parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/> + <parameter name="field6" value="`$eipam-ip-block.ip-address`"/> + <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/> + <parameter name="field8" value="`$eipam-ip-block.status`"/> + <parameter name="field9" value="`$tmp.key-value`"/> + </record> + <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' > + <parameter name='api-name' value='subnet' /> + <parameter name='api-action' value='add' /> + <parameter name='resp-prefix' value='contrailResp' /> + <parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' /> + <parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' /> + <parameter name='ip-prefix-len' value='`$eipam-ip-block.prefix-length`' /> + <parameter name='dns-server-address' value='0.0.0.0' /> + <parameter name='enable-dhcp' value='`$tmp.l3-network.subnet.dhcp-enabled`' /> + <parameter name='default-gateway' value='`$tmp.return.generate.gateway-address`' /> + <parameter name='subnet-name' value='`$tmp.l3-network.subnet.subnet-name`' /> + <parameter name='start' value='`$tmp.l3-network.subnet.dhcp-start`' /> + <parameter name='end' value='`$tmp.l3-network.subnet.dhcp-end`' /> + <outcome value='success'> + <block></block> + </outcome> + <outcome value='failure'> + <block> + <set> + <parameter name="eipam-ip-block.status" value="ERROR" /> + </set> + <save + plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' + resource='SQL' + key="UPDATE EIPAM_IP_SUBNETS + SET status = 'ERROR' + WHERE entity_id = $eipam-ip-block.entity-id ; " + force='true' + pfx='pfx.eipam-subnet-row'> + <outcome value='failure'> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." /> + </return> + </outcome> + <outcome value="not-found"> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." /> + </return> + </outcome> + </save> + <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" + resource="subnet" + key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id + AND subnet.subnet-id = $eipam-ip-block.entity-id"></delete> + <save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block"> + <parameter name="eipam-ip-block.status" value="ERROR" /> + </save> + <return status='failure'> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500" /> + <parameter name="error-message" value="`'Failed to create subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" /> + </return> + </block> + </outcome> + </execute> + <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder"> + <parameter name="logger" value="message-log"/> + <parameter name="field1" value="__TIMESTAMP__"/> + <parameter name="field2" value="Added a subnet in Contrail"/> + <parameter name="field3" value="`$eipam-ip-block.request-id`"/> + <parameter name="field4" value="`$eipam-ip-block.entity-id`"/> + <parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/> + <parameter name="field6" value="`$eipam-ip-block.ip-address`"/> + <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/> + <parameter name="field8" value="`$eipam-ip-block.status`"/> + <parameter name="field9" value="`$tmp.key-value`"/> + </record> + <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" + resource="subnet" + key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id + AND subnet.subnet-id = $eipam-ip-block.entity-id" > + <parameter name="orchestration-status" value="Created" /> + <outcome value='not-found'></outcome> + <outcome value='failure'> + <block> + <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder"> + <parameter name="logger" value="message-log"/> + <parameter name="field1" value="__TIMESTAMP__"/> + <parameter name="field2" value="Update status to Created failed in AAI"/> + <parameter name="field3" value="`$eipam-ip-block.request-id`"/> + <parameter name="field4" value="`$eipam-ip-block.entity-id`"/> + <parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/> + <parameter name="field6" value="`$eipam-ip-block.ip-address`"/> + <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/> + <parameter name="field8" value="`$eipam-ip-block.status`"/> + <parameter name="field9" value="`$tmp.key-value`"/> + </record> + <save + plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' + resource='SQL' + key="UPDATE EIPAM_IP_SUBNETS + SET status = 'ERROR' + WHERE entity_id = $eipam-ip-block.entity-id ; " + force='true' + pfx='pfx.eipam-subnet-row'> + <outcome value='failure'> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." /> + </return> + </outcome> + <outcome value="not-found"> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." /> + </return> + </outcome> + </save> + <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" + resource="subnet" + key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id + AND subnet.subnet-id = $eipam-ip-block.entity-id"></delete> + <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' > + <parameter name='api-name' value='subnet' /> + <parameter name='api-action' value='delete' /> + <parameter name='resp-prefix' value='contrailResp' /> + <parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' /> + <parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' /> + <outcome value='failure'> + <return status='failure'> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500" /> + <parameter name="error-message" value="`'Failed to delete subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" /> + </return> + </outcome> + </execute> + <set> + <parameter name="eipam-ip-block.status" value="ERROR" /> + </set> + <return status='failure'> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500" /> + <parameter name="error-message" value="'Cannot save subnet status to Created with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' in AnAI'" /> + </return> + </block> + </outcome> + </update> + <save + plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' + resource='SQL' + key="UPDATE EIPAM_IP_SUBNETS + SET status = 'CREATED' + WHERE entity_id = $eipam-ip-block.entity-id ; " + force='true' + pfx='pfx.eipam-subnet-row'> + <outcome value='failure'> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="An error occured while updating subnet to CREATED in mysql." /> + </return> + </outcome> + <outcome value="not-found"> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="An error occured while updating subnet to CREATED in mysql." /> + </return> + </outcome> + </save> + <!--subnet and subnet_keys are deleted in the EIPAMPlugin--> + <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="activateSubnet"> + <outcome value='failure'> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="An error occured while activating subnet in EIPAM." /> + </return> + </outcome> + </execute> + <save + plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' + resource='SQL' + key="UPDATE EIPAM_IP_SUBNETS + SET status = 'ACTIVE' + WHERE entity_id = $eipam-ip-block.entity-id ; " + force='true' + pfx='pfx.eipam-subnet-row'> + <outcome value='failure'> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="An error occured while updating subnet to active in mysql." /> + </return> + </outcome> + <outcome value="not-found"> + <return status="failure"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="An error occured while updating subnet to active in mysql." /> + </return> + </outcome> + <outcome value='success'></outcome> + </save> + <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" + resource="subnet" + key="l3-network.network-id = $aai.l3-network.network-id + AND subnet.subnet-id = $eipam-ip-block.entity-id" > + <parameter name="orchestration-status" value="Created" /> + <outcome value='failure'> + <return status="failure"> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet." /> + </return> + </outcome> + <outcome value="not-found"> + <return status="failure"> + <parameter name="error-code" value="500"/> + <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet. Subnet not found." /> + </return> + </outcome> + </update> + <return status="success"> + <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" /> + </return> + </block> + </outcome> + </execute> + </outcome> + </switch> + </block> + </method> +</service-logic>
\ No newline at end of file |