Bug fixing in topology discovery as part of CCVPN (Cross-Layer Cross-Domain VPN)...
[sdnc/oam.git] / platform-logic / datachange / src / main / xml / DataChange_esr-thirdparty-sdnc-discovery.xml
1 <service-logic xsi:schemaLocation="http://www.onap.org/sdnc/svclogic ./svclogic.xsd" module="DataChange" version="${project.version}">\r
2     <method rpc="esr-thirdparty-sdnc-discovery" mode="sync">\r
3         <block atomic="true">\r
4             <switch test="`$prop.sdncRestApi.vendor == 'ZTE'`">\r
5                 <outcome value="false">\r
6                     <switch test="`$data-change-notification-input.aai-event-trigger`">\r
7                         <outcome value="Update">\r
8                             <block>\r
9                                 <switch test="`$prop.sdncRestApi.type`">\r
10                                     <outcome value="SOTN">\r
11                                         <block atomic="true">\r
12                                             <execute plugin="org.onap.ccsdk.sli.plugins.prop.PropertiesNode" method="readProperties">\r
13                                                 <parameter name="fileName" value="%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties"/>\r
14                                                 <parameter name="contextPrefix" value="prop"/>\r
15                                             </execute>\r
16                                             <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
17                                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`"/>\r
18                                                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`"/>\r
19                                                 <parameter name="format" value="json"/>\r
20                                                 <parameter name="httpMethod" value="post"/>\r
21                                                 <parameter name="responsePrefix" value="token-result"/>\r
22                                                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
23                                                 <parameter name="trustStorePassword" value="adminadmin"/>\r
24                                                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
25                                                 <parameter name="keyStorePassword" value="adminadmin"/>\r
26                                                 <outcome value="success">\r
27                                                     <set>\r
28                                                         <parameter name="prop.sdncRestApi.token_id" value="`$token-result.data.token_id`"/>\r
29                                                     </set>\r
30                                                 </outcome>\r
31                                                 <outcome value="failure">\r
32                                                     <block/>\r
33                                                 </outcome>\r
34                                             </execute>\r
35                                             <switch test="`$prop.sdncRestApi.token_id`">\r
36                                                 <outcome value="">\r
37                                                     <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
38                                                         <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-network:networks'`"/>\r
39                                                         <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`"/>\r
40                                                         <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`"/>\r
41                                                         <parameter name="format" value="json"/>\r
42                                                         <parameter name="httpMethod" value="get"/>\r
43                                                         <parameter name="responsePrefix" value="topology"/>\r
44                                                         <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
45                                                         <parameter name="trustStorePassword" value="adminadmin"/>\r
46                                                         <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
47                                                         <parameter name="keyStorePassword" value="adminadmin"/>\r
48                                                         <outcome value="failure">\r
49                                                             <return status="failure">\r
50                                                                 <parameter name="ack-final" value="Y"/>\r
51                                                                 <parameter name="error-code" value="500"/>\r
52                                                                 <parameter name="error-message" value="Error executing Create vpn rest api"/>\r
53                                                             </return>\r
54                                                         </outcome>\r
55                                                         <outcome value="success">\r
56                                                             <block atomic="true">\r
57                                                                 <for index="nidx" start="0" end="`$topology.networks.network_length`">\r
58                                                                     <block>\r
59                                                                         <set>\r
60                                                                             <parameter name="network." value="`$topology.networks.network[$nidx].`"/>\r
61                                                                         </set>\r
62                                                                         <call module="DataChange" rpc="update-network-to-aai" mode="sync"/>\r
63                                                                     </block>\r
64                                                                 </for>\r
65                                                                 <switch test="`$topology.networks.network_length >= 2`">\r
66                                                                     <outcome value="true">\r
67                                                                         <block atomic="true">\r
68                                                                             <for index="netidx" start="0" end="`$topology.networks.network_length`">\r
69                                                                                 <block>\r
70                                                                                     <set>\r
71                                                                                         <parameter name="network." value=""/>\r
72                                                                                     </set>\r
73                                                                                     <set>\r
74                                                                                         <parameter name="network." value="`$topology.networks.network[$netidx].`"/>\r
75                                                                                     </set>\r
76                                                                                     <switch test="`$network.te-topology-id`">\r
77                                                                                         <outcome value="11">\r
78                                                                                             <block>\r
79                                                                                                 <set>\r
80                                                                                                     <parameter name="network-otn." value="`$topology.networks.network[$netidx].`"/>\r
81                                                                                                 </set>\r
82                                                                                             </block>\r
83                                                                                         </outcome>\r
84                                                                                         <outcome value="33">\r
85                                                                                             <block>\r
86                                                                                                 <set>\r
87                                                                                                     <parameter name="network-eth." value="`$topology.networks.network[$netidx].`"/>\r
88                                                                                                 </set>\r
89                                                                                             </block>\r
90                                                                                         </outcome>\r
91                                                                                     </switch>\r
92                                                                                 </block>\r
93                                                                             </for>\r
94                                                                             <call module="DataChange" rpc="update-tp-ttp-relationship" mode="sync"/>\r
95                                                                         </block>\r
96                                                                     </outcome>\r
97                                                                 </switch>\r
98                                                             </block>\r
99                                                         </outcome>\r
100                                                     </execute>\r
101                                                 </outcome>\r
102                                                 <outcome value="Other">\r
103                                                     <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
104                                                         <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-network:networks'`"/>\r
105                                                         <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`"/>\r
106                                                         <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`"/>\r
107                                                         <parameter name="format" value="json"/>\r
108                                                         <parameter name="httpMethod" value="get"/>\r
109                                                         <parameter name="responsePrefix" value="topology"/>\r
110                                                         <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
111                                                         <parameter name="trustStorePassword" value="adminadmin"/>\r
112                                                         <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
113                                                         <parameter name="keyStorePassword" value="adminadmin"/>\r
114                                                         <parameter name="customHttpHeaders" value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`"/>\r
115                                                         <outcome value="failure">\r
116                                                             <return status="failure">\r
117                                                                 <parameter name="ack-final" value="Y"/>\r
118                                                                 <parameter name="error-code" value="500"/>\r
119                                                                 <parameter name="error-message" value="Error executing Create vpn rest api"/>\r
120                                                             </return>\r
121                                                         </outcome>\r
122                                                         <outcome value="success">\r
123                                                             <block atomic="true">\r
124                                                                 <for index="nidx" start="0" end="`$topology.networks.network_length`">\r
125                                                                     <block>\r
126                                                                         <set>\r
127                                                                             <parameter name="network." value="`$topology.networks.network[$nidx].`"/>\r
128                                                                         </set>\r
129                                                                         <call module="DataChange" rpc="update-network-to-aai" mode="sync"/>\r
130                                                                     </block>\r
131                                                                 </for>\r
132                                                                 <switch test="`$topology.networks.network_length >= 2`">\r
133                                                                     <outcome value="true">\r
134                                                                         <block atomic="true">\r
135                                                                             <for index="netidx" start="0" end="`$topology.networks.network_length`">\r
136                                                                                 <block>\r
137                                                                                     <set>\r
138                                                                                         <parameter name="network." value=""/>\r
139                                                                                     </set>\r
140                                                                                     <set>\r
141                                                                                         <parameter name="network." value="`$topology.networks.network[$netidx].`"/>\r
142                                                                                     </set>\r
143                                                                                     <switch test="`$network.te-topology-id`">\r
144                                                                                         <outcome value="11">\r
145                                                                                             <block>\r
146                                                                                                 <set>\r
147                                                                                                     <parameter name="network-otn." value="`$topology.networks.network[$netidx].`"/>\r
148                                                                                                 </set>\r
149                                                                                             </block>\r
150                                                                                         </outcome>\r
151                                                                                         <outcome value="33">\r
152                                                                                             <block>\r
153                                                                                                 <set>\r
154                                                                                                     <parameter name="network-eth." value="`$topology.networks.network[$netidx].`"/>\r
155                                                                                                 </set>\r
156                                                                                             </block>\r
157                                                                                         </outcome>\r
158                                                                                     </switch>\r
159                                                                                 </block>\r
160                                                                             </for>\r
161                                                                             <call module="DataChange" rpc="update-tp-ttp-relationship" mode="sync"/>\r
162                                                                         </block>\r
163                                                                     </outcome>\r
164                                                                 </switch>\r
165                                                             </block>\r
166                                                         </outcome>\r
167                                                     </execute>\r
168                                                 </outcome>\r
169                                             </switch>\r
170                                             <set>\r
171                                                 <parameter name="input" value="ietf-subscribed-notifications:establish-subscription.input."/>\r
172                                                 <parameter name="`$input + 'encoding'`" value="encode-json"/>\r
173                                             </set>\r
174                                             <execute plugin="org.onap.ccsdk.sli.plugins.restconfdiscovery.RestconfDiscoveryNode" method="establishSubscription">\r
175                                                 <parameter name="subscriberId" value="sotn-controller"/>\r
176                                                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/operations/ietf-subscribed-notifications:establish-subscription'`"/>\r
177                                                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`"/>\r
178                                                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`"/>\r
179                                                 <parameter name="sseConnectURL" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/streams/yang-push-json'`"/>\r
180                                                 <parameter name="dirPath" value="/opt/sdnc/restconfapi/yang/notification"/>\r
181                                                 <parameter name="format" value="json"/>\r
182                                                 <parameter name="httpMethod" value="post"/>\r
183                                                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
184                                                 <parameter name="trustStorePassword" value="adminadmin"/>\r
185                                                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
186                                                 <parameter name="keyStorePassword" value="adminadmin"/>\r
187                                                 <parameter name="customHttpHeaders" value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`"/>\r
188                                                 <parameter name="module" value="DataChange"/>\r
189                                                 <parameter name="rpc" value="sotn-notification-handler"/>\r
190                                                 <parameter name="mode" value="sync"/>\r
191                                             </execute>\r
192                                         </block>\r
193                                     </outcome>\r
194                                     <outcome value="TAPI">\r
195                                         <block atomic="true">\r
196                                             <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
197                                                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/cxf/tapi/v2/topologies?topology-id-or-name=otn'`"/>\r
198                                                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`"/>\r
199                                                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`"/>\r
200                                                 <parameter name="format" value="json"/>\r
201                                                 <parameter name="httpMethod" value="get"/>\r
202                                                 <parameter name="responsePrefix" value="topologies"/>\r
203                                                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.tapi.jks"/>\r
204                                                 <parameter name="trustStorePassword" value="adminadmin"/>\r
205                                                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
206                                                 <parameter name="keyStorePassword" value="adminadmin"/>\r
207                                                 <outcome value="failure">\r
208                                                     <return status="failure">\r
209                                                         <parameter name="ack-final" value="Y"/>\r
210                                                         <parameter name="error-code" value="500"/>\r
211                                                         <parameter name="error-message" value="Error executing get topology TAPI rest api"/>\r
212                                                     </return>\r
213                                                 </outcome>\r
214                                                 <outcome value="success">\r
215                                                     <block atomic="true">\r
216                                                         <for index="tidx" start="0" end="`$topologies.topology_length`">\r
217                                                             <block>\r
218                                                                 <set>\r
219                                                                     <parameter name="topology." value="`$topologies.topology[$tidx].`"/>\r
220                                                                 </set>\r
221                                                                 <call module="DataChange" rpc="tapi-update-network-to-aai" mode="sync"/>\r
222                                                             </block>\r
223                                                         </for>\r
224                                                     </block>\r
225                                                 </outcome>\r
226                                             </execute>\r
227                                         </block>\r
228                                     </outcome>\r
229                                     <outcome value="MSA">\r
230                                         <block atomic="true">\r
231                                             <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
232                                                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/cxf/openroadm/v2/networks/otn-topology'`"/>\r
233                                                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`"/>\r
234                                                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`"/>\r
235                                                 <parameter name="format" value="json"/>\r
236                                                 <parameter name="httpMethod" value="get"/>\r
237                                                 <parameter name="responsePrefix" value="networks"/>\r
238                                                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.msa.jks"/>\r
239                                                 <parameter name="trustStorePassword" value="adminadmin"/>\r
240                                                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
241                                                 <parameter name="keyStorePassword" value="adminadmin"/>\r
242                                                 <outcome value="failure">\r
243                                                     <return status="failure">\r
244                                                         <parameter name="ack-final" value="Y"/>\r
245                                                         <parameter name="error-code" value="500"/>\r
246                                                         <parameter name="error-message" value="Error executing get topology MSA rest api"/>\r
247                                                     </return>\r
248                                                 </outcome>\r
249                                                 <outcome value="success">\r
250                                                     <block atomic="true">\r
251                                                         <call module="DataChange" rpc="msa-update-network-to-aai" mode="sync"/>\r
252                                                     </block>\r
253                                                 </outcome>\r
254                                             </execute>\r
255                                         </block>\r
256                                     </outcome>\r
257                                     <outcome value="Other">\r
258                                         <return status="failure">\r
259                                             <parameter name="ack-final" value="Y"/>\r
260                                             <parameter name="error-code" value="500"/>\r
261                                             <parameter name="error-message" value="`'Unsupported type = ' + $prop.sdncRestApi.type`"/>\r
262                                         </return>\r
263                                     </outcome>\r
264                                 </switch>\r
265                             </block>\r
266                         </outcome>\r
267                         <outcome value="Delete">\r
268                             <block atomic="true">\r
269                                 <switch test="`$prop.sdncRestApi.type`">\r
270                                     <outcome value="MSA">\r
271                                         <block atomic="true">\r
272                                             <set>\r
273                                                 <parameter name="controllerid" value="`$prop.sdncRestApi.type + '_' + $prop.sdncRestApi.thirdpartySdnc.url + '_' + $prop.sdncRestApi.thirdpartySdnc.id`"/>\r
274                                             </set>\r
275                                             <get-resource plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL" key="SELECT controller_id from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE WHERE controller_id = $controllerid" pfx="dbcontrollerid">\r
276                                                 <outcome value="success">\r
277                                                     <delete plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL" key="DELETE FROM TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE WHERE controller_id = $controllerid"/>\r
278                                                 </outcome>\r
279                                                 <outcome value="failure">\r
280                                                     <return status="failure">\r
281                                                         <parameter name="ack-final" value="Y"/>\r
282                                                         <parameter name="error-code" value="500"/>\r
283                                                         <parameter name="error-message" value="Failure in getting controller-id from DB"/>\r
284                                                     </return>\r
285                                                 </outcome>\r
286                                                 <outcome value="not-found">\r
287                                                     <return status="failure">\r
288                                                         <parameter name="ack-final" value="Y"/>\r
289                                                         <parameter name="error-code" value="500"/>\r
290                                                         <parameter name="error-message" value="controller-id could not be found in DB"/>\r
291                                                     </return>\r
292                                                 </outcome>\r
293                                             </get-resource>\r
294                                         </block>\r
295                                     </outcome>\r
296                                     <outcome value="TAPI">\r
297                                         <block>\r
298                                             <set>\r
299                                                 <parameter name="controllerid" value="`$prop.sdncRestApi.type + '_' + $prop.sdncRestApi.thirdpartySdnc.url + '_' + $prop.sdncRestApi.thirdpartySdnc.id`"/>\r
300                                             </set>\r
301                                             <get-resource plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL" key="SELECT controller_id from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE WHERE controller_id = $controllerid" pfx="dbcontrollerid">\r
302                                                 <outcome value="success">\r
303                                                     <delete plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL" key="DELETE FROM TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE WHERE controller_id = $controllerid"/>\r
304                                                 </outcome>\r
305                                                 <outcome value="failure">\r
306                                                     <return status="failure">\r
307                                                         <parameter name="ack-final" value="Y"/>\r
308                                                         <parameter name="error-code" value="500"/>\r
309                                                         <parameter name="error-message" value="Failure in getting controller-id from DB"/>\r
310                                                     </return>\r
311                                                 </outcome>\r
312                                                 <outcome value="not-found">\r
313                                                     <return status="failure">\r
314                                                         <parameter name="ack-final" value="Y"/>\r
315                                                         <parameter name="error-code" value="500"/>\r
316                                                         <parameter name="error-message" value="controller-id could not be found in DB"/>\r
317                                                     </return>\r
318                                                 </outcome>\r
319                                             </get-resource>\r
320                                         </block>\r
321                                     </outcome>\r
322                                     <outcome value="Other">\r
323                                         <return status="failure">\r
324                                             <parameter name="ack-final" value="Y"/>\r
325                                             <parameter name="error-code" value="500"/>\r
326                                             <parameter name="error-message" value="`'Unsupported type = ' + $prop.sdncRestApi.type`"/>\r
327                                         </return>\r
328                                     </outcome>\r
329                                 </switch>\r
330                             </block>\r
331                         </outcome>\r
332                     </switch>\r
333                 </outcome>\r
334                 <outcome value="true">\r
335                     <call module="DataChange" rpc="esr-thirdparty-sdnc-of-zte" mode="sync"/>\r
336                 </outcome>\r
337             </switch>\r
338         </block>\r
339     </method>\r
340 </service-logic>