connectivity attachment issue fix
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_sotn-attachment-topology-operation-delete.xml
1 <service-logic
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'>
5         <block atomic="true">
6             <set>
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`' />
9             </set>
10             <set>
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/'` " />
14             </set>
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' />
18             </execute>
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`"/>
24             </execute>
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'>
33                     <block></block>
34                 </outcome>
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" />
40                     </return>
41                 </outcome>
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" />
47                     </return>
48                 </outcome>
49             </execute>
50             <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>
51                 <outcome value=''>
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." />
56                     </return>
57                 </outcome>
58                 <outcome value='Other'>
59                     <block atomic="true">
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'>
63                                     <block atomic="true">
64                                         <set>
65                                             <parameter name='tmp.cidx' value='`$cidx`' />
66                                         </set>
67                                     </block>
68                                 </outcome>
69                             </switch>
70                         </for>
71                         <switch test="`$tmp.cidx`">
72                             <outcome value=''>
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" />
77                                 </return>
78                             </outcome>
79                         </switch>
80                     </block>
81                 </outcome>
82             </switch>
83             <set>
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`' />
86             </set>
87             <set>
88                 <parameter name='tmp.ar.parent-service-instance-id' value="`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />
89             </set>
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`"/>
95             </execute>
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'>
104                     <block></block>
105                 </outcome>
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" />
111                     </return>
112                 </outcome>
113             </execute>
114             <switch test='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`'>
115                 <outcome value=''>
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." />
120                     </return>
121                 </outcome>
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">
128                                         <set>
129                                             <parameter name='tmp.pidx' value='`$pidx`' />
130                                         </set>
131                                     </block>
132                                 </outcome>
133                             </switch>
134                         </for>
135                         <switch test="`$tmp.pidx`">
136                             <outcome value=''>
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" />
141                                 </return>
142                             </outcome>
143                         </switch>
144                     </block>
145                 </outcome>
146             </switch>
147             <set>
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`' />
150             </set>
151             <set>
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/'`"/>
157             </set>
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" />
168                     </return>
169                 </outcome>
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" />
175                     </return>
176                 </outcome>
177             </delete>
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`" />
182             </return>
183         </block>
184     </method>
185 </service-logic>