New DGs required for deletion and bandwidth modification of a given cloud leased...
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / cloud_leased_line / GENERIC-RESOURCE-API_cll-vnf-topology-operation-cll-modify.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='cll-vnf-topology-operation-cll-modify' mode='sync'>
5         <block atomic="true">
6             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
7                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
8                 <parameter name='contextPrefix' value='prop' />
9             </execute>
10             <!--<get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" -->
11             <!--        resource="service-instance"-->
12             <!--        key='service-instance.service-instance-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id-->
13             <!--         AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.global-customer-id -->
14             <!--         AND service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.subscription-service-type'-->
15             <!--        local-only="false"-->
16             <!--        force="true" pfx="tmp.aai.service-instance">-->
17             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
18                           resource="service-instance"
19                           key='service-instance.service-instance-id = $vnf-topology-operation-input.service-information.service-instance-id
20          AND customer.global-customer-id = $vnf-topology-operation-input.service-information.global-customer-id
21          AND service-subscription.service-type = $vnf-topology-operation-input.service-information.subscription-service-type'
22                           local-only="false"
23                           force="true" pfx="tmp.aai.service-instance">
24                 <!--<get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" -->
25                 <!--    resource="service-instance"-->
26                 <!--    key='service-instance.service-instance-id = $service-data.service-information.service-instance-id-->
27                 <!--         AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.global-customer-id -->
28                 <!--         AND service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.subscription-service-type'-->
29                 <!--    local-only="false"-->
30                 <!--    force="true" pfx="tmp.aai.service-instance">-->
31                 <outcome value='success'>
32                     <switch test='`$tmp.aai.service-instance.allotted-resources.allotted-resource_length != 0`'>
33                         <outcome value='false'></outcome>
34                         <outcome value='true'>
35                             <block>
36                                 <set>
37                                     <parameter name='tmp.arr' value='' />
38                                     <parameter name='tmp.arridx' value='0' />
39                                     <parameter name='tmp.arr_length' value='0' />
40                                     <parameter name='otn-tunnel-slice' value='' />
41                                     <parameter name='otn-tunnel-slice_length' value='0' />
42                                     <!--<parameter name='tmp.slicevpns' value='' />-->
43                                     <!--<parameter name='tmp.slicevpns_length' value='0' />-->
44                                     <!--<parameter name='tmp.slicevpnuuids' value='' />-->
45                                     <!--<parameter name='tmp.slicevpnuuids.' value='' />-->
46                                     <parameter name='bwModified' value='false' />
47                                 </set>
48                                 <for index='aridx' start='0' end='`$tmp.aai.service-instance.allotted-resources.allotted-resource_length`' >
49                                     <set>
50                                         <parameter name='allotted-resource-id' value="`$tmp.aai.service-instance.allotted-resources.allotted-resource[$aridx].id`" />
51                                     </set>
52                                     <!--<get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" -->
53                                     <!--        resource="allotted-resource"-->
54                                     <!--        key='service-instance.service-instance-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id-->
55                                     <!--         AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.global-customer-id -->
56                                     <!--         AND service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.subscription-service-type-->
57                                     <!--         AND allotted-resource.id = $allotted-resource-id'-->
58                                     <!--        local-only="false"-->
59                                     <!--        force="true" pfx="tmp.aai.allotted-resource">-->
60                                     <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
61                                                   resource="allotted-resource"
62                                                   key='service-instance.service-instance-id = $vnf-topology-operation-input.service-information.service-instance-id
63          AND customer.global-customer-id = $vnf-topology-operation-input.service-information.global-customer-id
64          AND service-subscription.service-type = $vnf-topology-operation-input.service-information.subscription-service-type
65          AND allotted-resource.id = $allotted-resource-id'
66                                                   local-only="false"
67                                                   force="true" pfx="tmp.aai.allotted-resource">
68                                         <outcome value='not-found'>
69                                             <return status='failure'>
70                                                 <parameter name='ack-final' value='Y'/>
71                                                 <parameter name="error-code" value="500" />
72                                                 <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_id`" />
73                                             </return>
74                                         </outcome>
75                                         <outcome value='failure'>
76                                             <return status='failure'>
77                                                 <parameter name='error-code' value='' />
78                                                 <parameter name='error-message' value='' />
79                                             </return>
80                                         </outcome>
81                                         <outcome value='success'>
82                                             <block atomic="true">
83                                                 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
84                                                               resource="allotted-resource:relationship-list"
85                                                               key='service-instance.service-instance-id = $vnf-topology-operation-input.service-information.service-instance-id
86          AND customer.global-customer-id = $vnf-topology-operation-input.service-information.global-customer-id
87          AND service-subscription.service-type = $vnf-topology-operation-input.service-information.subscription-service-type
88          AND allotted-resource.id = $allotted-resource-id'
89                                                               local-only="false"
90                                                               force="true" pfx="tmp.aai.allotted-resource.relationship-list">
91                                                     <outcome value='not-found'>
92                                                         <return status='failure'>
93                                                             <parameter name='ack-final' value='Y'/>
94                                                             <parameter name="error-code" value="500" />
95                                                             <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_id`" />
96                                                         </return>
97                                                     </outcome>
98                                                     <outcome value='failure'>
99                                                         <return status='failure'>
100                                                             <parameter name='error-code' value='' />
101                                                             <parameter name='error-message' value='' />
102                                                         </return>
103                                                     </outcome>
104                                                     <outcome value='success'>
105                                                         <block atomic="true">
106                                                             <switch test='`$tmp.aai.allotted-resource.relationship-list.relationship_length != 0`'>
107                                                                 <outcome value='false'></outcome>
108                                                                 <outcome value='true'>
109                                                                     <block atomic="true">
110                                                                         <for index='idx' start='0' end='`$tmp.aai.allotted-resource.relationship-list.relationship_length`' >
111                                                                             <switch test='`$tmp.aai.allotted-resource.relationship-list.relationship[$idx].related-to`'>
112                                                                                 <outcome value='network-policy'>
113                                                                                     <block atomic="true">
114                                                                                         <set>
115                                                                                             <parameter name='network-policy-id' value="`$tmp.aai.allotted-resource.relationship-list.relationship[$idx].relationship-data[0].relationship-value`" />
116                                                                                         </set>
117                                                                                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
118                                                                                                       resource="network-policy"
119                                                                                                       key='network-policy.network-policy-id = $network-policy-id'
120                                                                                                       local-only="false"
121                                                                                                       force="true" pfx="tmp.aai.network-policy">
122                                                                                             <outcome value='not-found'>
123                                                                                                 <return status='failure'>
124                                                                                                     <parameter name='ack-final' value='Y'/>
125                                                                                                     <parameter name="error-code" value="500" />
126                                                                                                     <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_id`" />
127                                                                                                 </return>
128                                                                                             </outcome>
129                                                                                             <outcome value='failure'>
130                                                                                                 <return status='failure'>
131                                                                                                     <parameter name='error-code' value='' />
132                                                                                                     <parameter name='error-message' value='' />
133                                                                                                 </return>
134                                                                                             </outcome>
135                                                                                             <outcome value='success'>
136                                                                                                 <block>
137                                                                                                     <set>
138                                                                                                         <parameter name='maximum-bandwidth' value="`$tmp.aai.network-policy.max-bandwidth`" />
139                                                                                                         <parameter name='route-distinguisher' value='`$maximum-bandwidth /1000 *4 /5 +1`' />
140                                                                                                     </set>
141                                                                                                     <set>
142                                                                                                         <parameter name='gfp' value='`$maximum-bandwidth /1000 *4 /5 +1`' />
143                                                                                                     </set>
144                                                                                                 </block>
145                                                                                             </outcome>
146                                                                                         </get-resource>
147                                                                                     </block>
148                                                                                 </outcome>
149                                                                             </switch>
150                                                                         </for>
151                                                                         <block atomic='true'>
152                                                                             <for index='rel-index' start='0' end='`$tmp.aai.service-instance.relationship-list.relationship_length`' >
153                                                                                 <switch test='`$tmp.aai.service-instance.relationship-list.relationship[$rel-index].related-to`'>
154                                                                                     <outcome value='connectivity'>
155                                                                                         <block atomic="true">
156                                                                                             <set>
157                                                                                                 <parameter name='tmp.aai.connectivity.' value='' />
158                                                                                             </set>
159                                                                                             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
160                                                                                                           resource="connectivity"
161                                                                                                           key="connectivity.connectivity-id = $tmp.aai.service-instance.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value"
162                                                                                                           local-only="false"
163                                                                                                           pfx="tmp.aai.connectivity" >
164                                                                                                 <outcome value='success'>
165                                                                                                     <block atomic="true">
166                                                                                                         <switch test='`$tmp.aai.connectivity.bandwidth-profile-name == $gfp`'>
167                                                                                                             <outcome value='true'></outcome>
168                                                                                                             <outcome value='false'>
169                                                                                                                 <block atomic="true">
170                                                                                                                     <set>
171                                                                                                                         <parameter name='bwModified' value="true" />
172                                                                                                                     </set>
173                                                                                                                     <for silentFailure='true' index='cridx' start='0' end='`$tmp.aai.connectivity.relationship-list.relationship_length`' >
174                                                                                                                         <switch test='`$tmp.aai.connectivity.relationship-list.relationship[$cridx].related-to`'>
175                                                                                                                             <outcome value='vpn-binding'>
176                                                                                                                                 <block atomic="true">
177                                                                                                                                     <set>
178                                                                                                                                         <parameter name='tmp.aai.vpn-binding.' value='' />
179                                                                                                                                     </set>
180                                                                                                                                     <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
181                                                                                                                                                   resource="vpn-binding"
182                                                                                                                                                   key="vpn-binding.vpn-id = $tmp.aai.connectivity.relationship-list.relationship[$cridx].relationship-data[0].relationship-value"
183                                                                                                                                                   local-only="false"
184                                                                                                                                                   pfx="tmp.aai.vpn-binding" >
185                                                                                                                                         <outcome value='success'>
186                                                                                                                                             <block atomic="true">
187                                                                                                                                                 <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='vpn-binding'
188                                                                                                                                                         key='vpn-binding.vpn-id = $tmp.aai.vpn-binding.vpn-id' >
189                                                                                                                                                     <parameter name='vpn-id' value='`$tmp.aai.vpn-binding.vpn-id`' />
190                                                                                                                                                     <parameter name='vpn-name' value='`$tmp.aai.vpn-binding.vpn-name`' />
191                                                                                                                                                     <parameter name='route-distinguisher' value='`$gfp`' />
192                                                                                                                                                     <parameter name='operational-status' value='Modified' />
193                                                                                                                                                 </update>
194                                                                                                                                                 <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='connectivity'
195                                                                                                                                                         key='connectivity.connectivity-id = $tmp.aai.connectivity.connectivity-id'>
196                                                                                                                                                     <parameter name='connectivity-id' value='`$tmp.aai.connectivity.connectivity-id`' />
197                                                                                                                                                     <parameter name='operational-status' value='Modified' />
198                                                                                                                                                     <parameter name='bandwidth-profile-name' value='`$gfp`' />
199                                                                                                                                                     <parameter name='cir' value='`$gfp *1000000`' />
200                                                                                                                                                     <parameter name='eir' value='`$gfp *1000000`' />
201                                                                                                                                                 </update>
202                                                                                                                                             </block>
203                                                                                                                                         </outcome>
204                                                                                                                                         <outcome value='not-found'>
205                                                                                                                                             <return status='failure'>
206                                                                                                                                                 <parameter name='ack-final' value='Y'/>
207                                                                                                                                                 <parameter name="error-code" value="500" />
208                                                                                                                                                 <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_id`" />
209                                                                                                                                             </return>
210                                                                                                                                         </outcome>
211                                                                                                                                         <outcome value='failure'>
212                                                                                                                                             <return status='failure'>
213                                                                                                                                                 <parameter name='error-code' value='' />
214                                                                                                                                                 <parameter name='error-message' value='' />
215                                                                                                                                             </return>
216                                                                                                                                         </outcome>
217                                                                                                                                     </get-resource>
218                                                                                                                                 </block>
219                                                                                                                             </outcome>
220                                                                                                                         </switch>
221                                                                                                                     </for>
222                                                                                                                 </block>
223                                                                                                             </outcome>
224                                                                                                         </switch>
225                                                                                                     </block>
226                                                                                                 </outcome>
227                                                                                                 <outcome value='not-found'>
228                                                                                                     <return status='failure'>
229                                                                                                         <parameter name='ack-final' value='Y'/>
230                                                                                                         <parameter name="error-code" value="500" />
231                                                                                                         <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_id`" />
232                                                                                                     </return>
233                                                                                                 </outcome>
234                                                                                                 <outcome value='failure'>
235                                                                                                     <return status='failure'>
236                                                                                                         <parameter name='error-code' value='' />
237                                                                                                         <parameter name='error-message' value='' />
238                                                                                                     </return>
239                                                                                                 </outcome>
240                                                                                             </get-resource>
241                                                                                         </block>
242                                                                                     </outcome>
243                                                                                 </switch>
244                                                                             </for>
245                                                                             <call module='GENERIC-RESOURCE-API' rpc='cll-vnf-topology-operation-cll-F1-activate' mode='sync' ></call>
246                                                                         </block>
247                                                                     </block>
248                                                                 </outcome>
249                                                             </switch>
250                                                         </block>
251                                                     </outcome>
252                                                 </get-resource>
253                                             </block>
254                                         </outcome>
255                                     </get-resource>
256                                 </for>
257                             </block>
258                         </outcome>
259                     </switch>
260                 </outcome>
261                 <outcome value='not-found'>
262                     <return status='failure'>
263                         <parameter name='ack-final' value='Y'/>
264                         <parameter name="error-code" value="500" />
265                         <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_id`" />
266                     </return>
267                 </outcome>
268                 <outcome value='failure'>
269                     <return status='failure'>
270                         <parameter name='error-code' value='' />
271                         <parameter name='error-message' value='' />
272                     </return>
273                 </outcome>
274             </get-resource>
275             <return status='success'>
276                 <parameter name="ack-final-indicator" value="Y" />
277                 <parameter name="error-code" value="200" />
278                 <parameter name="error-message" value="`$error-message`" />
279             </return>
280         </block>
281     </method>
282 </service-logic>