aboutsummaryrefslogtreecommitdiffstats
path: root/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml
diff options
context:
space:
mode:
Diffstat (limited to 'platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml')
-rwxr-xr-xplatform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml1531
1 files changed, 11 insertions, 1520 deletions
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml
index 66341c30..aaefc8e4 100755
--- a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml
@@ -2,1533 +2,24 @@
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='GENERIC-RESOURCE-API' version='${project.version}'>
<method rpc='vnf-topology-operation-assign' mode='sync'>
- <block atomic="true">
+ <block>
<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
<parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
<parameter name='contextPrefix' value='prop' />
</execute>
- <set>
- <parameter name="so.ack-final-indicator" value="Y" />
- <parameter name="so.response-code" value="500" />
- <parameter name="so.notification-url" value="`$vnf-topology-operation-input.sdnc-request-header.svc-notification-url`" />
- <parameter name="so.svc-request-id" value="`$vnf-topology-operation-input.sdnc-request-header.svc-request-id`" />
- <parameter name="so.service-type" value="`$vnf-topology-operation-input.service-information.subscription-service-type`" />
- <parameter name="so.service-instance-id" value="`$vnf-topology-operation-input.service-information.service-instance-id`" />
- </set>
- <switch test='`$vnf-topology-operation-input.vnf-request-input.cloud-owner`'>
- <outcome value=''>
- <block></block>
- </outcome>
- <outcome value='Other'>
- <set>
- <parameter name='prop.cloud-region.cloud-owner' value='`$vnf-topology-operation-input.vnf-request-input.cloud-owner`' />
- </set>
- </outcome>
- </switch>
- <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
- <outcome value='CreateVnfInstance'>
- <block></block>
- </outcome>
- <outcome value='Other'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateVnfInstance'" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </switch>
- <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'
- pfx='db.vf-model'>
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error reading VF_MODEL table" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </get-resource>
- <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-forking-logic' mode='sync' ></call>
- <switch test="`$ss.self-serve-flag`">
+ <switch test='length($vnf-topology-operation-input.sdnc-request-header.svc-notification-url) == 0'>
<outcome value='true'>
- <block atomic="true">
- <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-assign' mode='sync' >
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'Failed to create self-serve assignment for vnf with vnf-id=' + $vnf-topology-operation-input.vnf-information.vnf-id + ' with error: ' + $error-message`" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </call>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />
- </set>
- <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
- <parameter name='filename' value='/var/tmp/ss-vnfend.log' />
- </execute>
- <set>
- <parameter name="so.response-code" value="200" />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='success'>
- <parameter name="ack-final-indicator" value="Y" />
- <parameter name="error-code" value="200" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
+ <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign-sync' mode='sync' ></call>
</outcome>
<outcome value='false'>
- <block atomic="true">
- <switch test='`$service-data.vnfs.vnf_length`'>
- <outcome value=''>
- <set>
- <parameter name='vnf-index' value='0' />
- </set>
- </outcome>
- <outcome value='Other'>
- <block atomic='true'>
- <set>
- <parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />
- </set>
- <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >
- <switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>
- <outcome value='true'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id
- + ' already exists'`" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </switch>
- </for>
- </block>
- </outcome>
- </switch>
- <set>
- <parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />
- </set>
- <set>
- <parameter name='tmp.vnf-network-collection_length' value='0' />
- </set>
- <for silentFailure='true' index='inst-group-index' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids_length`' >
- <block atomic="true">
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="instance-group"
- key="instance-group.id = $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id"
- pfx='aai.instance-group' local-only='false' >
- <outcome value='not-found'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'Cannot find instance group id ' +
- $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id
- + ' in AAI'`" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error retrieving instance-group from AAI" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </get-resource>
- <for index='rel-index' start='0' end='`$aai.instance-group.relationship-list.relationship_length`' >
- <switch test='`$aai.instance-group.relationship-list.relationship[$rel-index].related-to`'>
- <outcome value='collection'>
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="collection"
- key="collection.collection-id = $aai.instance-group.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value"
- pfx='aai.collection' local-only='false' >
- <outcome value='not-found'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'Unable to find AAI relationship from collection '
- + $aai.instance-group.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value
- + ' to service instance'`" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'Failed to get network service instance '
- + $network-service-instance + ' from MD-SAL'`" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='success'>
- <block atomic="true">
- <set>
- <parameter name='found-network-instance-group' value='false' />
- </set>
- <for silentFailure='true' index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >
- <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id
- == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>
- <outcome value='true'>
- <block>
- <set>
- <parameter name='found-network-instance-group' value='true' />
- </set>
- <break/>
- </block>
- </outcome>
- </switch>
- </for>
- <switch test='`$found-network-instance-group`'>
- <outcome value='false'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'Could not find network instance group ' +
- $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id
- + ' in MD-SAL service instance '
- + $network-service-instance`" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </switch>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-instance-group-function'
- value='`$aai.instance-group.instance-group-function`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-instance-group-id'
- value='`$aai.instance-group.id`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-collection-service-instance-id'
- value='`$service-data.network-instance-groups.network-instance-group[$nig-index].service-instance-id`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-collection-customization-uuid'
- value='`$aai.collection.collection-customization-id`' />
- </set>
- <set>
- <parameter name='tmp.vnf-network-collection_length' value='`$tmp.vnf-network-collection_length + 1`' />
- </set>
- </block>
- </outcome>
- </get-resource>
- </outcome>
- </switch>
- </for>
- </block>
- </for>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection_length'
- value='`$tmp.vnf-network-collection_length`' />
- </set>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'
- value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'
- value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'
- value='`$db.vf-model.nf-type`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'
- value='`$db.vf-model.nf-role`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'
- value='`$db.vf-model.nf-function`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'
- value='`$db.vf-model.nf-code`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'
- value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'
- value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />
- </set>
- <switch test='`$vnf-topology-operation-input.vnf-information.vnf-name`'>
- <outcome value=''>
- <block atomic="true">
- <switch test='`$db.vf-model.ecomp-generated-naming`'>
- <outcome value='Y'>
- <block></block>
- </outcome>
- <outcome value='N'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='Other'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </switch>
- <switch test='`$db.vf-model.naming-policy`'>
- <outcome value=''>
- <block atomic="true">
- <set>
- <parameter name='generate-unique-name-input.action' value='ASSIGN' />
- <parameter name='generate-unique-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />
- <parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />
- <parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />
- <parameter name='generate-unique-name-input.prefix' value="`'z' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + $db.vf-model.nf-code`" />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />
- </set>
- </outcome>
- </call>
- </block>
- </outcome>
- <outcome value='Other'>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.vf-model.naming-policy`' />
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />
- <parameter name='naming-policy-generate-name-input.query-parameter' value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Unable to generate VNF name" />
- </set>
- <block atomic='true'>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='tmp.vnf-name' value='`$naming-policy-generate-name-output.vnf-name`' />
- </set>
- </outcome>
- </call>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='Other'>
- <set>
- <parameter name='tmp.vnf-name' value="`$vnf-topology-operation-input.vnf-information.vnf-name`" />
- </set>
- </outcome>
- </switch>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'
- value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- </set>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'
- value='`$tmp.vnf-name`' />
- </set>
- <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>
- <outcome value=''>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'
- value='`$db.vf-model.invariant-uuid`' />
- </set>
- </outcome>
- <outcome value='Other'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'
- value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />
- </set>
- </outcome>
- </switch>
- <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>
- <outcome value=''>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'
- value='`$db.vf-model.uuid`' />
- </set>
- </outcome>
- <outcome value='Other'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'
- value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />
- </set>
- </outcome>
- </switch>
- <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>
- <outcome value=''>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'
- value='`$db.vf-model.version`' />
- </set>
- </outcome>
- <outcome value='Other'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'
- value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />
- </set>
- </outcome>
- </switch>
- <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>
- <outcome value=''>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'
- value='`$db.vf-model.name`' />
- </set>
- </outcome>
- <outcome value='Other'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'
- value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />
- </set>
- </outcome>
- </switch>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'
- value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />
- </set>
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="cloud-region"
- key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND
- cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND
- depth='all'"
- pfx='aai.cloud-region' local-only='false' >
- <outcome value='not-found'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Cloud region not found in AAI" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error retrieving cloud region from AAI" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </get-resource>
- <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >
- <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>
- <outcome value='complex'>
- <block atomic="true">
- <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
- <parameter name='ctx_memory_result_key' value='aai-uid-split' />
- <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />
- <parameter name='regex' value='/' />
- </execute>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'
- value='`$aai-uid-split[$aai-uid-split_length - 1]`' />
- </set>
- <break/>
- </block>
- </outcome>
- </switch>
- </for>
- <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>
- <outcome value=''>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </switch>
- <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- key='SELECT * from VF_TO_NETWORK_ROLE_MAPPING WHERE vf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'
- pfx='db.vf-network-role-mapping[]'>
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error reading VF_TO_NETWORK_ROLE_MAPPING table" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='db.vf-network-role-mapping_length' value='0' />
- </set>
- </outcome>
- </get-resource>
- <set>
- <parameter name='network-index' value='0' />
- </set>
- <for silentFailure='true' index='role-index' start='0' end='`$db.vf-network-role-mapping_length`'>
- <switch test='`$db.vf-network-role-mapping[$role-index].network-role`'>
- <outcome value=''>
- <block></block>
- </outcome>
- <outcome value='null'>
- <block></block>
- </outcome>
- <outcome value='NULL'>
- <block></block>
- </outcome>
- <outcome value='Other'>
- <block atomic="true">
- <set>
- <parameter name='aai.l3-network.' value='' />
- </set>
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="l3-networks"
- key="l3-network.network-role = $db.vf-network-role-mapping[$role-index].network-role"
- pfx='aai.l3-network' local-only='false'
->
- <outcome value='not-found'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'Unable to find l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error retrieving l3-network from AAI" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </get-resource>
- <set>
- <parameter name='l3-network-id' value='-1' />
- </set>
- <block>
- <set>
- <parameter name='found-network' value='false' />
- </set>
- <for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >
- <block atomic="true">
- <switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>
- <outcome value='PendingCreate'>
- <block></block>
- </outcome>
- <outcome value='Pending Create'>
- <block></block>
- </outcome>
- <outcome value='PendingDelete'>
- <block></block>
- </outcome>
- <outcome value='Pending Delete'>
- <block></block>
- </outcome>
- <outcome value='Other'>
- <for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >
- <block atomic="true">
- <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>
- <outcome value='service-instance'>
- <for silentFailure='true' index='db-data-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data_length`' >
- <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>
- <outcome value='service-instance.service-instance-id'>
- <set>
- <parameter name='network-service-instance-id'
- value='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value`' />
- </set>
- </outcome>
- </switch>
- </for>
- </outcome>
- <outcome value='cloud-region'>
- <for silentFailure='true' index='db-data-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data_length`' >
- <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>
- <outcome value='cloud-region.cloud-region-id'>
- <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value == $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>
- <outcome value='true'>
- <block atomic="true">
- <set>
- <parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />
- </set>
- <set>
- <parameter name='found-network' value='true' />
- </set>
- <break/>
- </block>
- </outcome>
- </switch>
- </outcome>
- </switch>
- </for>
- </outcome>
- </switch>
- <switch test='`$found-network`'>
- <outcome value='true'>
- <break/>
- </outcome>
- </switch>
- </block>
- </for>
- </outcome>
- </switch>
- <switch test='`$found-network`'>
- <outcome value='true'>
- <break/>
- </outcome>
- </switch>
- </block>
- </for>
- </block>
- <switch test='`$l3-network-id`'>
- <outcome value='-1'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'Unable to find l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </switch>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'
- value='`$db.vf-network-role-mapping[$role-index].network-role`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'
- value='`$aai.l3-network.l3-network[$db-network-index].network-name`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'
- value='`$aai.l3-network.l3-network[$db-network-index].neutron-network-id`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'
- value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].contrail-network-fqdn'
- value='`$aai.l3-network.l3-network[$db-network-index].contrail-network-fqdn`' />
- </set>
- <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet_length`'>
- <outcome value=''>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'
- value='0' />
- </set>
- </outcome>
- <outcome value='0'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'
- value='0' />
- </set>
- </outcome>
- <outcome value='Other'>
- <block>
- <for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet_length`' >
- <block>
- <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role`'>
- <outcome value=''>
- <set>
- <parameter name='aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role' value='NONE' />
- </set>
- </outcome>
- </switch>
- <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`'>
- <outcome value='4'>
- <set>
- <parameter name='tmp.ip-version' value='ipv4' />
- </set>
- </outcome>
- <outcome value='6'>
- <set>
- <parameter name='tmp.ip-version' value='ipv6' />
- </set>
- </outcome>
- </switch>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].ip-version'
- value='`$tmp.ip-version`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-id'
- value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].neutron-subnet-id`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].sdnc-subnet-id'
- value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-id`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-role'
- value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-name'
- value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-name`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].network-start-address'
- value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].network-start-address`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].gateway-address'
- value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].gateway-address`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].cidr-mask'
- value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].cidr-mask`' />
- </set>
- <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].dhcp-enabled`'>
- <outcome value='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].dhcp-enabled'
- value='Y' />
- </set>
- </outcome>
- <outcome value='false'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].dhcp-enabled'
- value='N' />
- </set>
- </outcome>
- </switch>
- </block>
- </for>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'
- value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet_length`' />
- </set>
- </block>
- </outcome>
- </switch>
- <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- key='SELECT * from VNF_RELATED_NETWORK_ROLE where vnf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid
- and network_role = $db.vf-network-role-mapping[$role-index].network-role'
- pfx='db.vnf-related-network-role[]'>
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error reading VNF_RELATED_NETWORK_ROLE table" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='success'>
- <block atomic="true">
- <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
- <parameter name="source" value="`$prop.restapi.network-topology-identifier-structure`"/>
- <parameter name="outputPath" value="tmp.part"/>
- <parameter name="target" value="{service-instance-id}"/>
- <parameter name="replacement" value="`$network-service-instance-id`"/>
- </execute>
- <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
- <parameter name="source" value="`$tmp.part`"/>
- <parameter name="outputPath" value="tmp.ntis-url"/>
- <parameter name="target" value="{network-id}"/>
- <parameter name="replacement" value="`$l3-network-id`"/>
- </execute>
- <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
- <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ntis-url`' />
- <parameter name='restapiUser' value='`$prop.controller.user`' />
- <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
- <parameter name='format' value='json' />
- <parameter name='httpMethod' value='GET' />
- <parameter name="responsePrefix" value="mdsal-ntis" />
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`
- 'Error retrieving network-topology-identifier-structure for service instance '
- + $network-service-instance-id
- + ' and network-id '
- + $l3-network-id`" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </execute>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].is-trunked'
- value='`$mdsal-ntis.network-topology-identifier-structure.is-trunked`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].segmentation-id'
- value='`$mdsal-ntis.network-topology-identifier-structure.segmentation-id`' />
- </set>
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="custom-query"
- key="format = 'resource'"
- force="true"
- local-only="false"
- pfx="tmp.AnAI-data.oe">
- <parameter name="start[0]" value="`'nodes/service-instances/service-instance?service-instance-id=' + $network-service-instance-id `" />
- <parameter name="start_length" value="1" />
- <parameter name="query" value="/query/owning-entity-fromService-instance" />
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error getting owning entity from service instance" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Unable to find owning entity from service instance" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </save>
- <set>
- <parameter name='rn-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network_length`' />
- </set>
- <switch test='`$rn-index`'>
- <outcome value=''>
- <set>
- <parameter name='rn-index' value='0' />
- </set>
- </outcome>
- </switch>
- <for index='rel-network-role-index' start='0' end='`$db.vnf-related-network-role_length`' >
- <block atomic="true">
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="custom-query"
- key="format = 'resource'"
- force="true"
- local-only="false"
- pfx="tmp.AnAI-data.get-networks">
- <parameter name="start[0]" value="`'/business/owning-entities/owning-entity/' + $tmp.AnAI-data.oe.results[0].owning-entity.owning-entity-id `" />
- <parameter name="start_length" value="1" />
- <parameter name="query" value="`'/query/getNetworks?networkRole=' + $db.vnf-related-network-role[$rel-network-role-index].related-network-role
- + '&amp;cloudRegionId=' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error calling getNetworks custom query in AAI" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'No l3-network returned from getNetworks custom query for related network role '
- + $db.vnf-related-network-role[0].related-network-role`" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </save>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network[$rn-index].network-id'
- value='`$tmp.AnAI-data.get-networks.results[0].l3-network.network-id`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network[$rn-index].network-role'
- value='`$tmp.AnAI-data.get-networks.results[0].l3-network.network-role`' />
- </set>
- <for index='rel-index' start='0' end='`$tmp.AnAI-data.get-networks.results[0].l3-network.relationship-list.relationship_length`' >
- <switch test='`$tmp.AnAI-data.get-networks.results[0].l3-network.relationship-list.relationship[$rel-index].related-to`'>
- <outcome value='vlan-tag'>
- <block atomic="true">
- <set>
- <parameter name='vlan-tag-id' value='`$tmp.AnAI-data.get-networks.results[0].l3-network.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value`' />
- </set>
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vlan-tag"
- key="vlan-tag.vlan-tag-id = $vlan-tag-id"
- pfx='aai.vlan-tag' local-only='false'
->
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error getting vlan-tag object from AAI" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network[$rn-index].vlan-tags.vlan-interface'
- value='`$aai.vlan-tag.vlan-tag-id`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network[$rn-index].vlan-tags.upper-tag-id'
- value='`$aai.vlan-tag.vlan-id-outer`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network[$rn-index].vlan-tags.lower-tag-id'
- value='`$aai.vlan-tag.vlan-id-inner`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network[$rn-index].vlan-tags.is-private'
- value='`$aai.vlan-tag.is-private`' />
- </set>
- </outcome>
- </get-resource>
- <break/>
- </block>
- </outcome>
- </switch>
- </for>
- </block>
- </for>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].related-networks.related-network_length'
- value='`$rn-index + 1`' />
- </set>
- </block>
- </outcome>
- </get-resource>
- <set>
- <parameter name='network-index' value='`$network-index + 1`' />
- </set>
- </block>
- </outcome>
- </switch>
- </for>
- <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
- <parameter name='filename' value='/var/tmp/bgb-vnfa.log' />
- </execute>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'
- value='`$network-index`' />
- </set>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'
- value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />
- </set>
- <switch test='`$aai.cloud-region.availability-zones.availability-zone_length`'>
- <outcome value=''>
- <switch test='`$db.vf-model.avail-zone-max-count &gt; 0`'>
- <outcome value='true'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'No availability zones found in AAI for cloud region '
- + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='false'>
- <set>
- <parameter name='aai.cloud-region.availability-zones.availability-zone_length' value='0' />
- </set>
- </outcome>
- </switch>
- </outcome>
- </switch>
- <for index='idx' start='0' end='`$aai.cloud-region.availability-zones.availability-zone_length`' >
- <block atomic="true">
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'
- value='`$aai.cloud-region.availability-zones.availability-zone[$idx].availability-zone-name`' />
- </set>
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf:relationship-list"
- key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"
- force="true" pfx="tmp.AnAI-data">
- <parameter name="relationship-list.relationship[0].related-to" value="availability-zone" />
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.cloud-region.cloud-owner`" />
- <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />
- <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />
- <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="availability-zone.availability-zone-name" />
- <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$aai.cloud-region.availability-zones.availability-zone[$idx].availability-zone-name`" />
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error updating generic-vnf in AAI" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </save>
- </block>
- </for>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'
- value='`$db.vf-model.avail-zone-max-count`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'
- value='`$aai.cloud-region.availability-zones.availability-zone_length`' />
- </set>
- <for index='vnf-nw-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >
- <block atomic="true">
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf:relationship-list"
- key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"
- force="true" pfx="tmp.AnAI-data">
- <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="l3-network.network-id" />
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-nw-index].network-id`" />
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error updating generic-vnf in AAI" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </save>
- </block>
- </for>
- <set>
- <parameter name='vnf-object-path'
- value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
- + $vnf-topology-operation-input.service-information.service-instance-id
- + '/service-data/vnfs/vnf/'
- + $service-data.vnfs.vnf[$vnf-index].vnf-id
- + '/vnf-data/vnf-topology/'`"/>
- <parameter name='service-object-path'
- value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
- + $vnf-topology-operation-input.service-information.service-instance-id
- + '/service-data/service-topology/'`"/>
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf"
- key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id"
- force="true" pfx="tmp.AnAI-data">
- <parameter name="vnf-name" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`" />
- <parameter name="prov-status" value="PREPROV" />
- <!-- <parameter name="operational-status" value="out-of-service-path" /> -->
- <parameter name="equipment-role" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`" />
- <parameter name="model-invariant-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`" />
- <parameter name="model-version-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`" />
- <parameter name="model-customization-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`" />
- <parameter name="in-maint" value="true" />
- <parameter name="selflink" value="`$vnf-object-path`" />
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error updating selflink in generic-vnf in AAI" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </update>
- <for silentFailure='true' index='inst-group-index' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids_length`' >
- <block atomic="true">
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf:relationship-list"
- key="generic-vnf.vnf-id = $vnf-topology-operation-input.vnf-information.vnf-id"
- force="true" pfx="tmp.AnAI-data">
- <parameter name="relationship-list.relationship[0].related-to" value="instance-group" />
- <parameter name="relationship-list.relationship[0].related-link"
- value="`'/aai/v$/network/instance-groups/instance-group/'
- + $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id`" />
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error updating relationship in generic-vnf in AAI" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </save>
- </block>
- </for>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />
- </set>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />
- </set>
- <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
- <parameter name="source" value="`$prop.restapi.vnf-assign`"/>
- <parameter name="outputPath" value="tmp.part"/>
- <parameter name="target" value="{service-instance-id}"/>
- <parameter name="replacement" value="`$service-data.service-topology.service-topology-identifier.service-instance-id`"/>
- </execute>
- <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
- <parameter name="source" value="`$tmp.part`"/>
- <parameter name="outputPath" value="tmp.vnf.url"/>
- <parameter name="target" value="{vnf-id}"/>
- <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-id`"/>
- </execute>
- <set>
- <parameter name='vnf-data.' value='service-data.vnfs.vnf[$vnf-index].vnf-data.' />
- </set>
- <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
- <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + 'vnf-data-assign.json'`" />
- <parameter name='restapiUrl' value="`$prop.controller.url + $tmp.vnf.url`" />
- <parameter name='restapiUser' value='`$prop.controller.user`' />
- <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
- <parameter name='format' value='json' />
- <parameter name='httpMethod' value='PUT' />
- <parameter name="responsePrefix" value="vnf-assign" />
- <outcome value='failure'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error doing PUT of vnf-data" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic="true">
- <set>
- <parameter name="error-message" value="Error doing PUT of vnf-data" />
- </set>
- <block atomic="true">
- <set>
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
- </block>
- </outcome>
- </execute>
- <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
- <parameter name='filename' value='/var/tmp/bgb-vnf.log' />
- </execute>
- <set>
- <parameter name="so.response-code" value="200" />
- </set>
- <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>
- <return status='success'>
- <parameter name="ack-final-indicator" value="Y" />
- <parameter name="error-code" value="200" />
- <parameter name="error-message" value="`$error-message`" />
- </return>
- </block>
+ <switch test='$vnf-topology-operation-input.sdnc-request-header.svc-notification-url) == $prop.so.ignore-url'>
+ <outcome value='true'>
+ <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign-sync' mode='sync' ></call>
+ </outcome>
+ <outcome value='false'>
+ <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign-async' mode='sync' ></call>
+ </outcome>
+ </switch>
</outcome>
</switch>
</block>