Merge "Adding site Resource DG"
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_sotn-attachment-topology-operation-delete.xml
1 <service-logic\r
2     xmlns='http://www.onap.org/sdnc/svclogic'\r
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}'>\r
4     <method rpc='sotn-attachment-topology-operation-delete' mode='sync'>\r
5         <block atomic="true">\r
6             <set>\r
7                 <parameter name='tmp.ar.allotted-resource-id' value='`connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
8                 <parameter name='tmp.ar.parent-service-instance-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
9             </set>\r
10             <set>\r
11                 <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/'\r
12  + $tmp.ar.allotted-resource-id\r
13  + '/allotted-resource-data/connection-attachment-topology/'` " />\r
14             </set>\r
15             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
16                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
17                 <parameter name='contextPrefix' value='prop' />\r
18             </execute>\r
19             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
20                 <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>\r
21                 <parameter name="outputPath" value="tmp.ar-url"/>\r
22                 <parameter name="target" value="{allotted-resource-id}"/>\r
23                 <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
24             </execute>\r
25             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
26                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\r
27                 <parameter name='restapiUser' value='`$prop.controller.user`' />\r
28                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
29                 <parameter name='format' value='json' />\r
30                 <parameter name='httpMethod' value='Delete' />\r
31                 <parameter name="responsePrefix" value="mdsal-ar" />\r
32                 <outcome value='success'>\r
33                     <block></block>\r
34                 </outcome>\r
35                 <outcome value='failure'>\r
36                     <return status='failure'>\r
37                         <parameter name='ack-final' value='Y'/>\r
38                         <parameter name="error-code" value="500" />\r
39                         <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
40                     </return>\r
41                 </outcome>\r
42                 <outcome value='not-found'>\r
43                     <return status='failure'>\r
44                         <parameter name='ack-final' value='Y'/>\r
45                         <parameter name="error-code" value="500" />\r
46                         <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
47                     </return>\r
48                 </outcome>\r
49             </execute>\r
50             <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\r
51                 <outcome value=''>\r
52                     <return status='failure'>\r
53                         <parameter name='ack-final' value='Y'/>\r
54                         <parameter name="error-code" value="500" />\r
55                         <parameter name="error-message" value="Resource to be deleted doesn't exist in MDSAL." />\r
56                     </return>\r
57                 </outcome>\r
58                 <outcome value='Other'>\r
59                     <block atomic="true">\r
60                         <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\r
61                             <switch test="`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">\r
62                                 <outcome value='true'>\r
63                                     <block atomic="true">\r
64                                         <set>\r
65                                             <parameter name='tmp.cidx' value='`$cidx`' />\r
66                                         </set>\r
67                                         <break></break>\r
68                                     </block>\r
69                                 </outcome>\r
70                             </switch>\r
71                         </for>\r
72                         <switch test="`$tmp.cidx`">\r
73                             <outcome value=''>\r
74                                 <return status='failure'>\r
75                                     <parameter name='ack-final' value='Y'/>\r
76                                     <parameter name="error-code" value="500" />\r
77                                     <parameter name="error-message" value="resource to be deleted is not available in mdsal" />\r
78                                 </return>\r
79                             </outcome>\r
80                         </switch>\r
81                     </block>\r
82                 </outcome>\r
83             </switch>\r
84             <set>\r
85                 <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx]." value="" />\r
86                 <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`' />\r
87             </set>\r
88             <set>\r
89                 <parameter name='tmp.ar.parent-service-instance-id' value="`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />\r
90             </set>\r
91             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource' resource='GENERIC-RESOURCE-API' key='services/service/$tmp.ar.parent-service-instance-id/service-data' pfx='mdsal-psd' >\r
92                 <outcome value='success'>\r
93                     <block></block>\r
94                 </outcome>\r
95                 <outcome value='Other'>\r
96                     <return status='failure'>\r
97                         <parameter name='ack-final' value='Y'/>\r
98                         <parameter name="error-code" value="404" />\r
99                         <parameter name="error-message" value="Error: SOTN resource not found" />\r
100                     </return>\r
101                 </outcome>\r
102             </get-resource>\r
103             <switch test='`$mdsal-psd.provided-allotted-resources.provided-allotted-resource_length`'>\r
104                 <outcome value=''>\r
105                     <return status='failure'>\r
106                         <parameter name='ack-final' value='Y'/>\r
107                         <parameter name="error-code" value="500" />\r
108                         <parameter name="error-message" value="Resource to be deleted doesn't exist in MDSAL." />\r
109                     </return>\r
110                 </outcome>\r
111                 <outcome value='Other'>\r
112                     <block atomic="true">\r
113                         <for index='pidx' start='0' end='`$mdsal-psd.provided-allotted-resources.provided-allotted-resource_length`' >\r
114                             <switch test="`$mdsal-psd.provided-allotted-resources.provided-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">\r
115                                 <outcome value='true'>\r
116                                     <block atomic="true">\r
117                                         <set>\r
118                                             <parameter name='tmp.pidx' value='`$pidx`' />\r
119                                         </set>\r
120                                         <break></break>\r
121                                     </block>\r
122                                 </outcome>\r
123                             </switch>\r
124                         </for>\r
125                         <switch test="`$tmp.pidx`">\r
126                             <outcome value=''>\r
127                                 <return status='failure'>\r
128                                     <parameter name='ack-final' value='Y'/>\r
129                                     <parameter name="error-code" value="500" />\r
130                                     <parameter name="error-message" value="resource to be deleted is not available in mdsal" />\r
131                                 </return>\r
132                             </outcome>\r
133                         </switch>\r
134                     </block>\r
135                 </outcome>\r
136             </switch>\r
137             <set>\r
138                 <parameter name="service-data.provided-allotted-resources.consumed-allotted-resource[$pidx]." value="" />\r
139                 <parameter name='service-data.provided-allotted-resources.consumed-allotted-resource_length' value='`$service-data.provided-allotted-resources.consumed-allotted-resource_length - 1`' />\r
140             </set>\r
141             <set>\r
142                 <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
143                 <parameter name='connection-attachment-object-path' value="`$tmp.ar.self-link`"/>\r
144                 <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
145  + $connection-attachment-topology-operation-input.service-information.service-instance-id\r
146  + '/service-data/service-topology/'`"/>\r
147             </set>\r
148             <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource='allotted-resource'\r
149                 key="customer.global-customer-id = $connection-attachment-topology-operation-input.service-information.global-customer-id AND\r
150                         service-subscription.service-type = $connection-attachment-topology-operation-input.service-information.subscription-service-type AND\r
151                         service-instance.service-instance-id = $connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id AND\r
152                         allotted-resource.id = $tmp.ar.allotted-resource-id">\r
153                 <outcome value='failure'>\r
154                     <return status='failure'>\r
155                         <parameter name='ack-final' value='Y'/>\r
156                         <parameter name="error-code" value="500" />\r
157                         <parameter name="error-message" value="AAI failed" />\r
158                     </return>\r
159                 </outcome>\r
160                 <outcome value='not-found'>\r
161                     <return status='failure'>\r
162                         <parameter name='ack-final' value='Y'/>\r
163                         <parameter name="error-code" value="500" />\r
164                         <parameter name="error-message" value="AAI failed" />\r
165                     </return>\r
166                 </outcome>\r
167             </delete>\r
168             <return status='success'>\r
169                 <parameter name="ack-final-indicator" value="Y" />\r
170                 <parameter name="error-code" value="200" />\r
171                 <parameter name="error-message" value="`$error-message`" />\r
172             </return>\r
173         </block>\r
174     </method>\r
175 </service-logic>