2     xmlns='http://www.onap.org/sdnc/svclogic'
 
   3     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}'>
 
   4     <method rpc='sotn-attachment-topology-operation-delete' mode='sync'>
 
   7                 <parameter name='tmp.ar.allotted-resource-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
 
   8                 <parameter name='tmp.ar.parent-service-instance-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
 
  11                 <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/'
 
  12  + $tmp.ar.allotted-resource-id
 
  13  + '/allotted-resource-data/connection-attachment-topology/'` " />
 
  15             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
 
  16                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
 
  17                 <parameter name='contextPrefix' value='prop' />
 
  19             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
 
  20                 <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>
 
  21                 <parameter name="outputPath" value="tmp.ar-url"/>
 
  22                 <parameter name="target" value="{allotted-resource-id}"/>
 
  23                 <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
 
  25             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
 
  26                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
 
  27                 <parameter name='restapiUser' value='`$prop.controller.user`' />
 
  28                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
 
  29                 <parameter name='format' value='json' />
 
  30                 <parameter name='httpMethod' value='Delete' />
 
  31                 <parameter name="responsePrefix" value="mdsal-ar" />
 
  32                 <outcome value='success'>
 
  35                 <outcome value='failure'>
 
  36                     <return status='failure'>
 
  37                         <parameter name='ack-final' value='Y'/>
 
  38                         <parameter name="error-code" value="500" />
 
  39                         <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />
 
  42                 <outcome value='not-found'>
 
  43                     <return status='failure'>
 
  44                         <parameter name='ack-final' value='Y'/>
 
  45                         <parameter name="error-code" value="500" />
 
  46                         <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />
 
  50             <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>
 
  52                     <return status='failure'>
 
  53                         <parameter name='ack-final' value='Y'/>
 
  54                         <parameter name="error-code" value="500" />
 
  55                         <parameter name="error-message" value="Resource to be deleted doesn't exist in MDSAL." />
 
  58                 <outcome value='Other'>
 
  60                         <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >
 
  61                             <switch test="`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">
 
  62                                 <outcome value='true'>
 
  65                                             <parameter name='tmp.cidx' value='`$cidx`' />
 
  71                         <switch test="`$tmp.cidx`">
 
  73                                 <return status='failure'>
 
  74                                     <parameter name='ack-final' value='Y'/>
 
  75                                     <parameter name="error-code" value="500" />
 
  76                                     <parameter name="error-message" value="resource to be deleted is not available in mdsal" />
 
  84                 <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx]." value="" />
 
  85                 <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`' />
 
  88                 <parameter name='tmp.ar.parent-service-instance-id' value="`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />
 
  90             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
 
  91                 <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>
 
  92                 <parameter name="outputPath" value="tmp.ar-url-psd"/>
 
  93                 <parameter name="target" value="{service-instance-id}"/>
 
  94                 <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
 
  96             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
 
  97                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-psd`' />
 
  98                 <parameter name='restapiUser' value='`$prop.controller.user`' />
 
  99                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
 
 100                 <parameter name='format' value='json' />
 
 101                 <parameter name='httpMethod' value='GET' />
 
 102                 <parameter name="responsePrefix" value="mdsal-psd" />
 
 103                 <outcome value='success'>
 
 106                 <outcome value='Other'>
 
 107                     <return status='failure'>
 
 108                         <parameter name='ack-final' value='Y'/>
 
 109                         <parameter name="error-code" value="404" />
 
 110                         <parameter name="error-message" value="Error: SOTN resource not found" />
 
 114             <switch test='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`'>
 
 116                     <return status='failure'>
 
 117                         <parameter name='ack-final' value='Y'/>
 
 118                         <parameter name="error-code" value="500" />
 
 119                         <parameter name="error-message" value="Resource to be deleted doesn't exist in MDSAL." />
 
 122                 <outcome value='Other'>
 
 123                     <block atomic="true">
 
 124                         <for index='pidx' start='0' end='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`' >
 
 125                             <switch test="`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[$pidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">
 
 126                                 <outcome value='true'>
 
 127                                     <block atomic="true">
 
 129                                             <parameter name='tmp.pidx' value='`$pidx`' />
 
 135                         <switch test="`$tmp.pidx`">
 
 137                                 <return status='failure'>
 
 138                                     <parameter name='ack-final' value='Y'/>
 
 139                                     <parameter name="error-code" value="500" />
 
 140                                     <parameter name="error-message" value="resource to be deleted is not available in mdsal" />
 
 148                 <parameter name="service-data.provided-allotted-resources.consumed-allotted-resource[$pidx]." value="" />
 
 149                 <parameter name="service-data.provided-allotted-resources.consumed-allotted-resource_length" value='`$service-data.provided-allotted-resources.consumed-allotted-resource_length - 1`' />
 
 152                 <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
 
 153                 <parameter name='connection-attachment-object-path' value="`$tmp.ar.self-link`"/>
 
 154                 <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
 
 155  + $connection-attachment-topology-operation-input.service-information.service-instance-id
 
 156  + '/service-data/service-topology/'`"/>
 
 158             <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource='allotted-resource'  
 
 159                 key="customer.global-customer-id = $connection-attachment-topology-operation-input.service-information.global-customer-id AND
 
 160                         service-subscription.service-type = $connection-attachment-topology-operation-input.service-information.subscription-service-type AND
 
 161                         service-instance.service-instance-id = $connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id AND
 
 162                         allotted-resource.id = $tmp.ar.allotted-resource-id">
 
 163                 <outcome value='failure'>
 
 164                     <return status='failure'>
 
 165                         <parameter name='ack-final' value='Y'/>
 
 166                         <parameter name="error-code" value="500" />
 
 167                         <parameter name="error-message" value="AAI failed" />
 
 170                 <outcome value='not-found'>
 
 171                     <return status='failure'>
 
 172                         <parameter name='ack-final' value='Y'/>
 
 173                         <parameter name="error-code" value="500" />
 
 174                         <parameter name="error-message" value="AAI failed" />
 
 178             <return status='success'>
 
 179                 <parameter name="ack-final-indicator" value="Y" />
 
 180                 <parameter name="error-code" value="200" />
 
 181                 <parameter name="error-message" value="`$error-message`" />