Add logic to delete resource also from AAI
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_bbs-access-connectivity-network-topology-operation-delete-huawei.xml
index ef6ba0b..75d15b5 100644 (file)
-<service-logic
-    xmlns='http://www.onap.org/sdnc/svclogic'
-    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
-    <method rpc='bbs-access-connectivity-network-topology-operation-delete-huawei' mode='sync'>
-        <block atomic="true">
-            <call module='GENERIC-RESOURCE-API' rpc='validate-bbs-network-input-parameters' mode='sync' ></call>
-            <set>
-                <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value='https://172.30.0.55:26335' />
-                <parameter name='network-input-parameters.' value='`$network-topology-operation-input.network-request-input.network-input-parameters.`' />
-            </set>
-            <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>
-            <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">
-                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/bbs-token-template.json'`"/>
-                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url+'/rest/plat/smapp/v1/oauth/token'`"/>
-                <parameter name="format" value="json"/>
-                <parameter name="httpMethod" value="put"/>
-                <parameter name="responsePrefix" value="token-result"/>
-                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
-                <parameter name="trustStorePassword" value="adminadmin"/>
-                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
-                <parameter name="keyStorePassword" value="adminadmin"/>
-                <outcome value='failure'>
-                    <return status='failure'>
-                        <parameter name='ack-final' value='Y'/>
-                        <parameter name="error-code" value="500" />
-                        <parameter name="error-message" value="Error failed to call queryTokenID" />
-                    </return>
-                </outcome>
-                <outcome value='success'>
-                    <switch test='`$token-result.accessSession`'>
-                        <outcome value=''>
-                            <return status='failure'>
-                                <parameter name='ack-final' value='Y'/>
-                                <parameter name="error-code" value="500" />
-                                <parameter name="error-message" value="Error executing queryTokenID,vaule is null" />
-                            </return>
-                        </outcome>
-                        <outcome value='Other'>
-                            <set>
-                                <parameter name='prop.sdncRestApi.token_id' value='`$token-result.accessSession`' />
-                            </set>
-                        </outcome>
-                    </switch>
-                </outcome>
-            </execute>
-            <for index='idx' start='0' end='`$network-input-parameters.param_length`' >
-                <switch test="`$network-input-parameters.param[$idx].name == 'serviceID'`">
-                    <outcome value='true'>
-                        <switch test='`$network-input-parameters.param[$idx].value`'>
-                            <outcome value='Other'>
-                                <set>
-                                    <parameter name='prop.bbs.serviceID' value='`$network-input-parameters.param[$idx].value`' />
-                                </set>
-                            </outcome>
-                            <outcome value=''>
-                                <return status='failure'>
-                                    <parameter name='ack-final' value='Y'/>
-                                    <parameter name="error-code" value="500" />
-                                    <parameter name="error-message" value="$network-input-parameters.param[$idx].name  +' value is null, please check it.'" />
-                                </return>
-                            </outcome>
-                        </switch>
-                    </outcome>
-                </switch>
-            </for>
-            <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">
-                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/ws/rest/1002/FanOpenAPI/DeactivateOnt?serviceID='+$prop.bbs.serviceID`" />
-                <parameter name="httpMethod" value="get"/>
-                <parameter name="contentType" value="application/x-www-form-urlencoded"/>
-                <parameter name="responsePrefix" value="service-result"/>
-                <parameter name="customHttpHeaders" value="`'X-Auth-Token=' + $prop.sdncRestApi.token_id`"/>
-                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
-                <parameter name="trustStorePassword" value="adminadmin"/>
-                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
-                <parameter name="keyStorePassword" value="adminadmin"/>
-                <outcome value='failure'>
-                    <return status='failure'>
-                        <parameter name='ack-final' value='Y'/>
-                        <parameter name="error-code" value="500" />
-                        <parameter name="error-message" value="Error failed to call deleteAccessConnectivityService" />
-                    </return>
-                </outcome>
-                <outcome value='success'>
-                    <block atomic="true">
-                        <switch test="`$service-result.errors.error[0].error-message`">
-                            <outcome value='Other'>
-                                <return status='failure'>
-                                    <parameter name='ack-final' value='Y'/>
-                                    <parameter name="error-code" value="500" />
-                                    <parameter name="error-message" value="`'Error deleteAccessConnectivityService return: '+$service-result.errors.error[0].error-message`" />
-                                </return>
-                            </outcome>
-                            <outcome value=''>
-                                <block></block>
-                            </outcome>
-                        </switch>
-                    </block>
-                </outcome>
-            </execute>
-            <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>
-    </method>
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='bbs-access-connectivity-network-topology-operation-delete-huawei' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-bbs-network-input-parameters' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value='https://172.30.0.55:26335' />\r
+                <parameter name='network-input-parameters.' value='`$network-topology-operation-input.network-request-input.network-input-parameters.`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/bbs-token-template.json'`"/>\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url+'/rest/plat/smapp/v1/oauth/token'`"/>\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="put"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='failure'>\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 failed to call queryTokenID" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <switch test='`$token-result.accessSession`'>\r
+                        <outcome value=''>\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 executing queryTokenID,vaule is null" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name='prop.sdncRestApi.token_id' value='`$token-result.accessSession`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </execute>\r
+            <for index='idx' start='0' end='`$network-input-parameters.param_length`' >\r
+                <switch test="`$network-input-parameters.param[$idx].name == 'serviceID'`">\r
+                    <outcome value='true'>\r
+                        <switch test='`$network-input-parameters.param[$idx].value`'>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='prop.bbs.serviceID' value='`$network-input-parameters.param[$idx].value`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="$network-input-parameters.param[$idx].name  +' value is null, please check it.'" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/ws/rest/1002/FanOpenAPI/DeactivateOnt?serviceID='+$prop.bbs.serviceID`" />\r
+                <parameter name="httpMethod" value="get"/>\r
+                <parameter name="contentType" value="application/x-www-form-urlencoded"/>\r
+                <parameter name="responsePrefix" value="service-result"/>\r
+                <parameter name="customHttpHeaders" value="`'X-Auth-Token=' + $prop.sdncRestApi.token_id`"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='failure'>\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 failed to call deleteAccessConnectivityService" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <switch test="`$service-result.errors.error[0].error-message`">\r
+                            <outcome value='Other'>\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 deleteAccessConnectivityService return: '+$service-result.errors.error[0].error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="service-instance" \r
+               key="customer.global-customer-id = $network-topology-operation-input.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $network-topology-operation-input.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $network-topology-operation-input.service-information.service-instance-id"\r
+        pfx='aai.service-instance' local-only='false' >\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='' />\r
+                        <parameter name='error-message' value='' />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic='true'>\r
+                        <for silentFailure='true' index='ridx' start='0' end="`$aai.service-instance.relationship-list.relationship_length`" >\r
+                            <for silentFailure='false' index='rdidx' start='0' end="`$aai.service-instance.relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                                <block atomic='true'>\r
+                                    <switch test='`$aai.service-instance.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                                        <outcome value='generic-vnf.vnf-id'>\r
+                                            <block atomic='true'>\r
+                                                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="generic-vnf" \r
+               key="generic-vnf.vnf-id = $aai.service-instance.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value"\r
+        pfx='aai.generic-vnf' local-only='false' >\r
+                                                    <outcome value='success'>\r
+                                                        <block atomic='true'>\r
+                                                            <switch test='`$aai.generic-vnf.vnf-type`'>\r
+                                                                <outcome value='AccessConnectivity'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.bbs.accessConnectivityVNFId' value='`$aai.generic-vnf.vnf-id`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </get-resource>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </for>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </get-resource>\r
+            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="generic-vnf" \r
+               key="generic-vnf.vnf-id = $prop.bbs.accessConnectivityVNFId">\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='' />\r
+                        <parameter name='error-message' value='' />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='' />\r
+                        <parameter name='error-message' value='' />\r
+                    </return>\r
+                </outcome>\r
+            </delete>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
 </service-logic>
\ No newline at end of file