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