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