self-serve DG for Casablanca
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml
index 9f60d4b..8c1d216 100755 (executable)
                                             </set>\r
                                         </outcome>\r
                                     </switch>\r
-                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
-                                        <parameter name='filename' value='/var/tmp/bgb-vnf.log' />\r
-                                    </execute>\r
                                     <set>\r
                                         <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\r
    value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
                                                                         <for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >\r
                                                                             <block atomic="true">\r
                                                                                 <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>\r
+                                                                                    <outcome value='service-instance'>\r
+                                                                                        <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`' >\r
+                                                                                            <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\r
+                                                                                                <outcome value='service-instance.service-instance-id'>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='network-service-instance-id'\r
+  value='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value`' />\r
+                                                                                                    </set>\r
+                                                                                                </outcome>\r
+                                                                                            </switch>\r
+                                                                                        </for>\r
+                                                                                    </outcome>\r
                                                                                     <outcome value='cloud-region'>\r
                                                                                         <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`' >\r
                                                                                             <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\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
                                                             </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
+  + '&amp;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
                                             </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
   value='`$network-index`' />\r
  + $vnf-topology-operation-input.service-information.service-instance-id\r
  + '/service-data/vnfs/vnf/'\r
  + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
- + '/vnf-data/vnf-topology'`"/>\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                                        <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vnf-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
                                     </set>\r
                                     <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
    resource="generic-vnf"\r
                                         <parameter name="model-invariant-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`" />\r
                                         <parameter name="model-version-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`" />\r
                                         <parameter name="model-customization-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`" />\r
+                                        <parameter name="in-maint" value="true" />\r
                                         <parameter name="selflink" value="`$vnf-object-path`" />\r
                                         <outcome value='failure'>\r
                                             <block>\r
                                         <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`' />\r
                                     </set>\r
                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
-                                        <parameter name='filename' value='/var/tmp/bgb-viprend.log' />\r
+                                        <parameter name='filename' value='/var/tmp/bgb-vnf.log' />\r
                                     </execute>\r
                                     <return status='success'>\r
                                         <parameter name="ack-final-indicator" value="Y" />\r