Support individual CLL deletion, and UNI removal from Ethernet Service, and
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / cloud_leased_line / GENERIC-RESOURCE-API_cll-vnf-topology-operation-cll-delete-VPNBs.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-delete-VPNBs' mode='sync'>
5         <block atomic='true'>
6             <set>
7                 <parameter name='allNetworksList.' value='' />
8             </set>
9             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
10                           resource="network-resources"
11                           key="selflink = 'https://aai.onap:8443/aai/v24/network/network-resources?depth=0'"
12                           local-only="false"
13                           pfx="allNetworksList" >
14                 <outcome value='success'></outcome>
15                 <outcome value='Other'></outcome>
16                 <outcome value='not-found'></outcome>
17             </get-resource>
18             <for index='netwidx' start='0' end='`$allNetworksList.network-resource_length`' >
19                 <switch test='`$allNetworksList.network-resource[$netwidx].provider-id == $param-prefix-domainA-pnfName[2]`'>
20                     <outcome value='true'>
21                         <switch test='`$allNetworksList.network-resource[$netwidx].te-topo-id != $param-prefix-domainA-pnfName[6]`'>
22                             <outcome value='true'>
23                                 <set>
24                                     <parameter name='otnTopoIdSrc' value='`$allNetworksList.network-resource[$netwidx].te-topo-id`' />
25                                 </set>
26                             </outcome>
27                         </switch>
28                     </outcome>
29                 </switch>
30             </for>
31             <set>
32                 <parameter name='tmp.pce-src-node.' value='' />
33             </set>
34             <set>
35                 <!--<parameter name='tmp.pce-src-node' value="`$param-prefix-domainA-pnfName[0] + '-' +-->
36                 <!--                                                   $param-prefix-domainA-pnfName[1] + '-' +-->
37                 <!--                                                   $param-prefix-domainA-pnfName[2] + '-' +-->
38                 <!--                                                   $param-prefix-domainA-pnfName[3] + '-' +-->
39                 <!--                                                   $param-prefix-domainA-pnfName[4] + '-' +-->
40                 <!--                                                   $param-prefix-domainA-pnfName[5] + '-' +-->
41                 <!--                                                   1 + '-' +-->
42                 <!--                                                   $param-prefix-domainA-pnfName[7] + '-' +-->
43                 <!--                                                   $param-prefix-domainA-pnfName[8]`" />-->
44                 <parameter name='tmp.pce-src-node' value="`$param-prefix-domainA-pnfName[0] + '-' +
45                                                    $param-prefix-domainA-pnfName[1] + '-' +
46                                                    $param-prefix-domainA-pnfName[2] + '-' +
47                                                    $param-prefix-domainA-pnfName[3] + '-' +
48                                                    $param-prefix-domainA-pnfName[4] + '-' +
49                                                    $param-prefix-domainA-pnfName[5] + '-' +
50                                                    $otnTopoIdSrc + '-' +
51                                                    $param-prefix-domainA-pnfName[7] + '-' +
52                                                    $param-prefix-domainA-pnfName[8]`" />
53             </set>
54             <set>
55                 <!--<parameter name='tmp.srcTtpOtnLayer' value="`$tmp.pce-src-node + '-' + -->
56                 <!--                                             $param-prefix-domainA[$param-prefix-domainA_length -2] + '-' +-->
57                 <!--                                             $tmp.source.ttp-id`" />-->
58                 <parameter name='tmp.srcTtpOtnLayer' value="`$tmp.pce-src-node`" />
59             </set>
60             <block>
61                 <set>
62                     <parameter name='tmp.aai.all-vpn-bindings.' value='' />
63                 </set>
64                 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
65                               resource="vpn-bindings"
66                               key="selflink = 'https://aai.onap:8443/aai/v24/network/vpn-bindings"
67                               local-only="false"
68                               pfx="tmp.aai.all-vpn-bindings" >
69                     <outcome value='success'>
70                         <block atomic="true">
71                             <for index='vpnbidx' start='0' end='`$tmp.aai.all-vpn-bindings.vpn-binding_length`' >
72                                 <block atomic='true'>
73                                     <switch test="`$tmp.aai.all-vpn-bindings.vpn-binding[$vpnbidx].ops-note == $tmp.srcTtpOtnLayer `">
74                                         <outcome value='true'>
75                                             <block atomic="true">
76                                                 <set>
77                                                     <parameter name='tmp.aai.vpn-binding.' value="" />
78                                                 </set>
79                                                 <set>
80                                                     <parameter name='tmp.aai.vpn-binding.' value="`$tmp.aai.all-vpn-bindings.vpn-binding[$vpnbidx].`" />
81                                                 </set>
82                                                 <set>
83                                                     <parameter name='tmp.domain.pnf-name' value="`'networkId-providerId-' +
84                                                    $tmp.aai.vpn-binding.access-provider-id + '-clientId-' +
85                                                    $tmp.aai.vpn-binding.access-client-id + '-topologyId-' +
86                                                    $tmp.aai.vpn-binding.access-topology-id + '-nodeId-' +
87                                                    $tmp.aai.vpn-binding.src-access-node-id`" />
88                                                 </set>
89                                                 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
90                                                               resource="pnf"
91                                                               key="pnf.pnf-name = $tmp.domain.pnf-name"
92                                                               pfx='tmp.aai.source-pnf' local-only='false' >
93                                                     <!--AND depth = '0'"-->
94                                                     <outcome value='success'>
95                                                         <block>
96                                                             <for silentFailure='true' index='spvidx' start='0' end='`$tmp.aai.source-pnf.relationship-list.relationship_length`' >
97                                                                 <switch test='`$tmp.aai.source-pnf.relationship-list.relationship[$spvidx].related-to`'>
98                                                                     <outcome value='esr-thirdparty-sdnc'>
99                                                                         <block atomic="true">
100                                                                             <set>
101                                                                                 <parameter name='tmp.domain.esr-thirdparty-id' value="`$tmp.aai.source-pnf.relationship-list.relationship[$spvidx].relationship-data[0].relationship-value`" />
102                                                                             </set>
103                                                                             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
104                                                                                           resource="esr-thirdparty-sdnc"
105                                                                                           key="esr-thirdparty-sdnc.thirdparty-sdnc-id = $tmp.domain.esr-thirdparty-id AND
106                      depth = '1'"
107                                                                                           pfx='tmp.aai.domain.esr-thirdparty-sdnc' local-only='false' >
108                                                                                 <outcome value='success'>
109                                                                                     <block>
110                                                                                         <set>
111                                                                                             <parameter name='prop.sdncRestApi.thirdpartySdnc.domain.url' value="`$tmp.aai.domain.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />
112                                                                                             <parameter name='prop.sdncRestApi.thirdpartySdnc.domain.user' value="`$tmp.aai.domain.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />
113                                                                                             <parameter name='prop.sdncRestApi.thirdpartySdnc.domain.password' value="`$tmp.aai.domain.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />
114                                                                                             <!--<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >-->
115                                                                                             <!--<parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-network:networks'`" />-->
116                                                                                             <!--<parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />-->
117                                                                                             <!--<parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />-->
118                                                                                             <!--<parameter name="format" value="json"/>-->
119                                                                                             <!--<parameter name="httpMethod" value="get"/>-->
120                                                                                             <!--<parameter name="responsePrefix" value="topology"/>-->
121                                                                                             <!--<parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>-->
122                                                                                             <!--<parameter name="trustStorePassword" value="adminadmin"/>-->
123                                                                                             <!--<parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>-->
124                                                                                             <!--<parameter name="keyStorePassword" value="adminadmin"/>-->
125                                                                                         </set>
126                                                                                     </block>
127                                                                                 </outcome>
128                                                                                 <outcome value='not-found'>
129                                                                                     <return status='failure'>
130                                                                                         <parameter name='ack-final' value='Y'/>
131                                                                                         <parameter name="error-code" value="500" />
132                                                                                         <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
133                                                                                     </return>
134                                                                                 </outcome>
135                                                                                 <outcome value='Other'>
136                                                                                     <return status='failure'>
137                                                                                         <parameter name='ack-final' value='Y'/>
138                                                                                         <parameter name="error-code" value="500" />
139                                                                                         <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
140                                                                                     </return>
141                                                                                 </outcome>
142                                                                             </get-resource>
143                                                                             <break/>
144                                                                         </block>
145                                                                     </outcome>
146                                                                 </switch>
147                                                             </for>
148                                                         </block>
149                                                     </outcome>
150                                                     <outcome value='not-found'>
151                                                         <return status='failure'>
152                                                             <parameter name='ack-final' value='Y'/>
153                                                             <parameter name="error-code" value="500" />
154                                                             <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
155                                                         </return>
156                                                     </outcome>
157                                                     <outcome value='Other'>
158                                                         <return status='failure'>
159                                                             <parameter name='ack-final' value='Y'/>
160                                                             <parameter name="error-code" value="500" />
161                                                             <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
162                                                         </return>
163                                                     </outcome>
164                                                 </get-resource>
165                                                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
166                                                     <!--<parameter name="templateFileName" value="`$prop.restapi.templateDir + '/' + $prop.restapi.ts-otn-src-domain-creation.templatefile`" />-->
167                                                     <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.domain.url + '/restconf/data/ietf-te:te/tunnels/tunnel=' + $tmp.aai.vpn-binding.vpn-name`" />
168                                                     <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.domain.user`" />
169                                                     <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.domain.password`" />
170                                                     <parameter name="format" value="json"/>
171                                                     <parameter name="httpMethod" value="delete"/>
172                                                     <parameter name="responsePrefix" value="otn-oof"/>
173                                                     <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
174                                                     <parameter name="trustStorePassword" value="adminadmin"/>
175                                                     <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
176                                                     <parameter name="keyStorePassword" value="adminadmin"/>
177                                                     <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
178                                                     <outcome value='failure'>
179                                                         <return status='failure'>
180                                                             <parameter name='ack-final' value='Y'/>
181                                                             <parameter name="error-code" value="500" />
182                                                             <parameter name="error-message" value="Error executing delete OTN tunnel rest api" />
183                                                         </return>
184                                                     </outcome>
185                                                     <outcome value='success'>
186                                                         <block atomic="true"></block>
187                                                     </outcome>
188                                                 </execute>
189                                                 <delete plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='vpn-binding'
190                                                         key='vpn-binding.vpn-id = $tmp.aai.vpn-binding.vpn-id' ></delete>
191                                             </block>
192                                         </outcome>
193                                         <outcome value='false'></outcome>
194                                     </switch>
195                                 </block>
196                             </for>
197                         </block>
198                     </outcome>
199                     <outcome value='not-found'>
200                         <return status='failure'>
201                             <parameter name='ack-final' value='Y'/>
202                             <parameter name="error-code" value="500" />
203                             <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_id`" />
204                         </return>
205                     </outcome>
206                     <outcome value='failure'>
207                         <return status='failure'>
208                             <parameter name='error-code' value='' />
209                             <parameter name='error-message' value='' />
210                         </return>
211                     </outcome>
212                 </get-resource>
213             </block>
214         </block>
215     </method>
216 </service-logic>