+ <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'\r
+ value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role`' />\r
+ <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'\r
+ value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-name`' />\r
+ <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'\r
+ value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].network-start-address`' />\r
+ <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'\r
+ value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].gateway-address`' />\r
+ <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'\r
+ value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].cidr-mask`' />\r
+ </set>\r
+ <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].dhcp-enabled`'>\r
+ <outcome value='true'>\r
+ <set>\r
+ <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'\r
+ value='Y' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='false'>\r
+ <set>\r
+ <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'\r
+ value='N' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </for>\r
+ <set>\r
+ <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'\r
+ value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet_length`' />\r
+ </set>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+ key='SELECT * from VNF_RELATED_NETWORK_ROLE where vnf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid\r
+ and network_role = $db.vf-network-role-mapping[$role-index].network-role'\r
+ pfx='db.vnf-related-network-role[]'>\r
+ <outcome value='failure'>\r
+ <block>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+ <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+ <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+ </block>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="Error reading VNF_RELATED_NETWORK_ROLE table" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <block atomic="true">\r
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+ <parameter name="source" value="`$prop.restapi.network-topology-identifier-structure`"/>\r
+ <parameter name="outputPath" value="tmp.part"/>\r
+ <parameter name="target" value="{service-instance-id}"/>\r
+ <parameter name="replacement" value="`$network-service-instance-id`"/>\r
+ </execute>\r
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+ <parameter name="source" value="`$tmp.part`"/>\r
+ <parameter name="outputPath" value="tmp.ntis-url"/>\r
+ <parameter name="target" value="{network-id}"/>\r
+ <parameter name="replacement" value="`$l3-network-id`"/>\r
+ </execute>\r
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+ <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ntis-url`' />\r
+ <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+ <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+ <parameter name='format' value='json' />\r
+ <parameter name='httpMethod' value='GET' />\r
+ <parameter name="responsePrefix" value="mdsal-ntis" />\r
+ <outcome value='failure'>\r
+ <block>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+ <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+ <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+ </block>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`\r
+ 'Error retrieving network-topology-identifier-structure for service instance '\r
+ + $network-service-instance-id\r
+ + ' and network-id '\r
+ + $l3-network-id`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ </execute>\r
+ <set>\r
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].is-trunked'\r
+ value='`$mdsal-ntis.network-topology-identifier-structure.is-trunked`' />\r
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].segmentation-id'\r
+ value='`$mdsal-ntis.network-topology-identifier-structure.segmentation-id`' />\r
+ </set>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="custom-query"\r
+ key="format = 'resource'"\r
+ force="true"\r
+ local-only="false"\r
+ pfx="tmp.AnAI-data.oe">\r
+ <parameter name="start[0]" value="`'nodes/service-instances/service-instance?service-instance-id=' + $network-service-instance-id `" />\r
+ <parameter name="start_length" value="1" />\r
+ <parameter name="query" value="/query/owning-entity-fromService-instance" />\r
+ <outcome value='failure'>\r
+ <block>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+ <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+ <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+ </block>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="Error getting owning entity from service instance" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+ <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+ <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+ </block>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="Unable to find owning entity from service instance" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <set>\r
+ <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`' />\r
+ </set>\r
+ <switch test='`$rn-index`'>\r
+ <outcome value=''>\r
+ <set>\r
+ <parameter name='rn-index' value='0' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <for index='rel-network-role-index' start='0' end='`$db.vnf-related-network-role_length`' >\r
+ <block atomic="true">\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="custom-query"\r
+ key="format = 'resource'"\r
+ force="true"\r
+ local-only="false"\r
+ pfx="tmp.AnAI-data.get-networks">\r
+ <parameter name="start[0]" value="`'/business/owning-entities/owning-entity/' + $tmp.AnAI-data.oe.results[0].owning-entity.owning-entity-id `" />\r
+ <parameter name="start_length" value="1" />\r
+ <parameter name="query" value="`'/query/getNetworks?networkRole=' + $db.vnf-related-network-role[$rel-network-role-index].related-network-role\r
+ + '&cloudRegionId=' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
+ <outcome value='failure'>\r
+ <block>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+ <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+ <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+ </block>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="Error calling getNetworks custom query in AAI" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+ <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+ <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+ </block>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`'No l3-network returned from getNetworks custom query for related network role '\r
+ + $db.vnf-related-network-role[0].related-network-role`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <set>\r
+ <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'\r
+ value='`$tmp.AnAI-data.get-networks.results[0].l3-network.network-id`' />\r
+ <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'\r
+ value='`$tmp.AnAI-data.get-networks.results[0].l3-network.network-role`' />\r
+ </set>\r
+ <for index='rel-index' start='0' end='`$tmp.AnAI-data.get-networks.results[0].l3-network.relationship-list.relationship_length`' >\r
+ <switch test='`$tmp.AnAI-data.get-networks.results[0].l3-network.relationship-list.relationship[$rel-index].related-to`'>\r
+ <outcome value='vlan-tag'>\r
+ <block atomic="true">\r
+ <set>\r
+ <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`' />\r
+ </set>\r
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="vlan-tag" \r
+ key="vlan-tag.vlan-tag-id = $vlan-tag-id"\r
+ pfx='aai.vlan-tag' local-only='false'\r
+>\r
+ <outcome value='failure'>\r
+ <block>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+ <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+ <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+ </block>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="Error getting vlan-tag object from AAI" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <set>\r
+ <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'\r
+ value='`$aai.vlan-tag.vlan-tag-id`' />\r
+ <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'\r
+ value='`$aai.vlan-tag.vlan-id-outer`' />\r
+ <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'\r
+ value='`$aai.vlan-tag.vlan-id-inner`' />\r
+ <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'\r
+ value='`$aai.vlan-tag.is-private`' />\r
+ </set>\r
+ </outcome>\r
+ </get-resource>\r
+ <break/>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ </block>\r
+ </for>\r
+ <set>\r
+ <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'\r
+ value='`$rn-index + 1`' />\r
+ </set>\r
+ </block>\r
+ </outcome>\r
+ </get-resource>\r
+ <set>\r
+ <parameter name='network-index' value='`$network-index + 1`' />\r
+ </set>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+ <parameter name='filename' value='/var/tmp/bgb-vnfa.log' />\r
+ </execute>\r
+ <set>\r
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\r