Merge "Fix for overlay DGs."
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_dci-connects-network-topology-operation-activate.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <service-logic xmlns="http://www.onap.org/sdnc/svclogic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.onap.org/sdnc/svclogic ./svclogic.xsd" module="GENERIC-RESOURCE-API" version="${project.version}">
3     <method rpc="dci-connects-network-topology-operation-activate" mode="sync">
4         <block atomic="true">
5             <call module="GENERIC-RESOURCE-API" rpc="validate-network-input-parameters" mode="sync" />
6             <block atomic="true">
7                 <block atomic="true">
8                     <for index="idx" start="0" end="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">
9                         <block>
10                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'name'`">
11                                 <outcome value="true">
12                                     <set>
13                                         <parameter name="prop.dci-connects.name" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
14                                     </set>
15                                 </outcome>
16                             </switch>
17                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site1_id'`">
18                                 <outcome value="true">
19                                     <set>
20                                         <parameter name="prop.dci-connects.id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
21                                     </set>
22                                 </outcome>
23                             </switch>
24                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site1_description'`">
25                                 <outcome value="true">
26                                     <set>
27                                         <parameter name="prop.dci-connects.description" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
28                                     </set>
29                                 </outcome>
30                             </switch>
31                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site1_networkName'`">
32                                 <outcome value="true" />
33                             </switch>
34                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site1_routerId'`">
35                                 <outcome value="true">
36                                     <set>
37                                         <parameter name="prop.dci-connects.router_id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
38                                     </set>
39                                 </outcome>
40                             </switch>
41                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site1_importRT1'`">
42                                 <outcome value="true">
43                                     <block atomic="true">
44                                         <set>
45                                             <parameter name="tmp.dci-connects.evpn_irts.original" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
46                                         </set>
47                                         <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="split">
48                                             <parameter name="original_string" value="`$tmp.dci-connects.evpn_irts.original`" />
49                                             <parameter name="regex" value="," />
50                                             <parameter name="ctx_memory_result_key" value="tmp.dci-connects.evpn_irts" />
51                                             <outcome value="success">
52                                                 <for index="idx" start="0" end="`$tmp.dci-connects.evpn_irts_length`">
53                                                     <set>
54                                                         <parameter name="prop.dci-connects.evpn_irts[$idx]" value="`$tmp.dci-connects.evpn_irts[$idx]`" />
55                                                     </set>
56                                                 </for>
57                                             </outcome>
58                                             <outcome value="failure">
59                                                 <return status="failure">
60                                                     <parameter name="error-code" value="" />
61                                                     <parameter name="error-message" value="An error occured while splitting sna1_route" />
62                                                 </return>
63                                             </outcome>
64                                         </execute>
65                                     </block>
66                                 </outcome>
67                             </switch>
68                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site1_exportRT1'`">
69                                 <outcome value="true">
70                                     <block atomic="true">
71                                         <set>
72                                             <parameter name="tmp.dci-connects.evpn_erts.original" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
73                                         </set>
74                                         <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="split">
75                                             <parameter name="original_string" value="`$tmp.dci-connects.evpn_erts.original`" />
76                                             <parameter name="regex" value="," />
77                                             <parameter name="ctx_memory_result_key" value="tmp.dci-connects.evpn_erts" />
78                                             <outcome value="success">
79                                                 <for index="idx" start="0" end="`$tmp.dci-connects.evpn_erts_length`">
80                                                     <set>
81                                                         <parameter name="prop.dci-connects.evpn_erts[$idx]" value="`$tmp.dci-connects.evpn_erts[$idx]`" />
82                                                     </set>
83                                                 </for>
84                                             </outcome>
85                                             <outcome value="failure">
86                                                 <return status="failure">
87                                                     <parameter name="error-code" value="" />
88                                                     <parameter name="error-message" value="An error occured while splitting sna1_route" />
89                                                 </return>
90                                             </outcome>
91                                         </execute>
92                                     </block>
93                                 </outcome>
94                             </switch>
95                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site1_vni'`">
96                                 <outcome value="true">
97                                     <set>
98                                         <parameter name="prop.dci-connects.vni" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
99                                     </set>
100                                 </outcome>
101                             </switch>
102                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'tunnelType'`">
103                                 <outcome value="true">
104                                     <set>
105                                         <parameter name="prop.dci-connects.tunnelType" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
106                                     </set>
107                                 </outcome>
108                             </switch>
109                         </block>
110                     </for>
111                     <block atomic="true">
112                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="esr-thirdparty-sdnc" key="esr-thirdparty-sdnc.thirdparty-sdnc-id = $prop.dci-connects.id AND         depth = '1'" pfx="tmp.aai.esr-thirdparty-sdnc" local-only="false">
113                             <outcome value="success">
114                                 <block atomic="true" />
115                             </outcome>
116                             <outcome value="not-found">
117                                 <return status="failure">
118                                     <parameter name="error-code" value="" />
119                                     <parameter name="error-message" value="" />
120                                 </return>
121                             </outcome>
122                             <outcome value="Other">
123                                 <return status="failure">
124                                     <parameter name="error-code" value="" />
125                                     <parameter name="error-message" value="" />
126                                 </return>
127                             </outcome>
128                         </get-resource>
129                         <set>
130                             <parameter name="prop.sdncRestApi.thirdpartySdnc.url" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.serviceUrl`" />
131                             <parameter name="prop.sdncRestApi.templateDir" value="/opt/onap/sdnc/data" />
132                             <parameter name="prop.sdncRestApi.thirdpartySdnc.user" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.user-name`" />
133                             <parameter name="prop.sdncRestApi.thirdpartySdnc.password" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.password`" />
134                         </set>
135                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
136                             <parameter name="logger" value="message-log" />
137                             <parameter name="field1" value="__TIMESTAMP__" />
138                             <parameter name="field2" value="dci-network-topology-operation-activate" />
139                             <parameter name="field3" value="dci-connects.name" />
140                             <parameter name="field4" value="`$prop.dci-connects.name`" />
141                             <parameter name="field5" value="dci-connects.id" />
142                             <parameter name="field6" value="`$prop.dci-connects.id`" />
143                             <parameter name="field7" value="dci-connects.tunnelType" />
144                             <parameter name="field8" value="`$prop.dci-connects.tunnelType`" />
145                             <parameter name="field9" value="sdncRestApi.thirdpartySdnc.url" />
146                             <parameter name="field10" value="`$prop.sdncRestApi.thirdpartySdnc.url`" />
147                         </record>
148                         <switch test="`$prop.dci-connects.tunnelType`">
149                             <outcome value="L3-DCI">
150                                 <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">
151                                     <parameter name="templateFileName" value="`$prop.sdncRestApi.tempDir +'/l3-dci-connects-template.json'`" />
152                                     <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url +'/v2.0/l3-dci-connects'`" />
153                                     <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
154                                     <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
155                                     <parameter name="format" value="json" />
156                                     <parameter name="httpMethod" value="post" />
157                                     <parameter name="responsePrefix" value="restapi-result" />
158                                 </execute>
159                             </outcome>
160                             <outcome value="L2-DCI">
161                                 <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">
162                                     <parameter name="templateFileName" value="`$prop.sdncRestApi.tempDir +'/l2-dci-connects-template.json'`" />
163                                     <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url +'/v2.0/l2-dci-connects'`" />
164                                     <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
165                                     <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
166                                     <parameter name="format" value="json" />
167                                     <parameter name="httpMethod" value="post" />
168                                     <parameter name="responsePrefix" value="restapi-result" />
169                                 </execute>
170                             </outcome>
171                         </switch>
172                     </block>
173                 </block>
174                 <block atomic="true">
175                     <for index="idx" start="0" end="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">
176                         <block>
177                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site2_id'`">
178                                 <outcome value="true">
179                                     <set>
180                                         <parameter name="prop.dci-connects.id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
181                                     </set>
182                                 </outcome>
183                             </switch>
184                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site2_description'`">
185                                 <outcome value="true">
186                                     <set>
187                                         <parameter name="prop.dci-connects.description" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
188                                     </set>
189                                 </outcome>
190                                 <outcome value="false">
191                                     <set>
192                                         <parameter name="prop.dci-connects.description" value="" />
193                                     </set>
194                                 </outcome>
195                             </switch>
196                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site2_networkName'`">
197                                 <outcome value="true" />
198                             </switch>
199                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site2_routerId'`">
200                                 <outcome value="true">
201                                     <set>
202                                         <parameter name="prop.dci-connects.router_id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
203                                     </set>
204                                 </outcome>
205                             </switch>
206                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site2_importRT1'`">
207                                 <outcome value="true">
208                                     <block atomic="true">
209                                         <set>
210                                             <parameter name="tmp.dci-connects.evpn_irts.original" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
211                                         </set>
212                                         <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="split">
213                                             <parameter name="original_string" value="`$tmp.dci-connects.evpn_irts.original`" />
214                                             <parameter name="regex" value="," />
215                                             <parameter name="ctx_memory_result_key" value="tmp.dci-connects.evpn_irts" />
216                                             <outcome value="success">
217                                                 <for index="idx" start="0" end="`$tmp.dci-connects.evpn_irts_length`">
218                                                     <set>
219                                                         <parameter name="prop.dci-connects.evpn_irts[$idx]" value="`$tmp.dci-connects.evpn_irts[$idx]`" />
220                                                     </set>
221                                                 </for>
222                                             </outcome>
223                                             <outcome value="failure">
224                                                 <return status="failure">
225                                                     <parameter name="error-code" value="" />
226                                                     <parameter name="error-message" value="An error occured while splitting sna1_route" />
227                                                 </return>
228                                             </outcome>
229                                         </execute>
230                                     </block>
231                                 </outcome>
232                             </switch>
233                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site2_exportRT1'`">
234                                 <outcome value="true">
235                                     <block atomic="true">
236                                         <set>
237                                             <parameter name="tmp.dci-connects.evpn_erts.original" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
238                                         </set>
239                                         <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="split">
240                                             <parameter name="original_string" value="`$tmp.dci-connects.evpn_erts.original`" />
241                                             <parameter name="regex" value="," />
242                                             <parameter name="ctx_memory_result_key" value="tmp.dci-connects.evpn_erts" />
243                                             <outcome value="success">
244                                                 <for index="idx" start="0" end="`$tmp.dci-connects.evpn_erts_length`">
245                                                     <set>
246                                                         <parameter name="prop.dci-connects.evpn_erts[$idx]" value="`$tmp.dci-connects.evpn_erts[$idx]`" />
247                                                     </set>
248                                                 </for>
249                                             </outcome>
250                                             <outcome value="failure">
251                                                 <return status="failure">
252                                                     <parameter name="error-code" value="" />
253                                                     <parameter name="error-message" value="An error occured while splitting sna1_route" />
254                                                 </return>
255                                             </outcome>
256                                         </execute>
257                                     </block>
258                                 </outcome>
259                             </switch>
260                             <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site2_vni'`">
261                                 <outcome value="true">
262                                     <set>
263                                         <parameter name="prop.dci-connects.vni" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
264                                     </set>
265                                 </outcome>
266                             </switch>
267                         </block>
268                     </for>
269                     <block atomic="true">
270                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="esr-thirdparty-sdnc" key="esr-thirdparty-sdnc.thirdparty-sdnc-id = $prop.dci-connects.id AND         depth = '1'" pfx="tmp.aai.esr-thirdparty-sdnc" local-only="false">
271                             <outcome value="success">
272                                 <block atomic="true" />
273                             </outcome>
274                             <outcome value="not-found">
275                                 <return status="failure">
276                                     <parameter name="error-code" value="" />
277                                     <parameter name="error-message" value="" />
278                                 </return>
279                             </outcome>
280                             <outcome value="Other">
281                                 <return status="failure">
282                                     <parameter name="error-code" value="" />
283                                     <parameter name="error-message" value="" />
284                                 </return>
285                             </outcome>
286                         </get-resource>
287                         <set>
288                             <parameter name="prop.sdncRestApi.thirdpartySdnc.url" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.serviceUrl`" />
289                             <parameter name="prop.sdncRestApi.templateDir" value="/opt/onap/sdnc/data" />
290                             <parameter name="prop.sdncRestApi.thirdpartySdnc.user" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.user-name`" />
291                             <parameter name="prop.sdncRestApi.thirdpartySdnc.password" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.password`" />
292                         </set>
293                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
294                             <parameter name="logger" value="message-log" />
295                             <parameter name="field1" value="__TIMESTAMP__" />
296                             <parameter name="field2" value="dci-network-topology-operation-activate" />
297                             <parameter name="field3" value="dci-connects.name" />
298                             <parameter name="field4" value="`$prop.dci-connects.name`" />
299                             <parameter name="field5" value="dci-connects.id" />
300                             <parameter name="field6" value="`$prop.dci-connects.id`" />
301                             <parameter name="field7" value="dci-connects.tunnelType" />
302                             <parameter name="field8" value="`$prop.dci-connects.tunnelType`" />
303                             <parameter name="field9" value="sdncRestApi.thirdpartySdnc.url" />
304                             <parameter name="field10" value="`$prop.sdncRestApi.thirdpartySdnc.url`" />
305                         </record>
306                         <switch test="`$prop.dci-connects.tunnelType`">
307                             <outcome value="L3-DCI">
308                                 <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">
309                                     <parameter name="templateFileName" value="`$prop.sdncRestApi.tempDir +'/l3-dci-connects-template.json'`" />
310                                     <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url +'/v2.0/l3-dci-connects'`" />
311                                     <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
312                                     <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
313                                     <parameter name="format" value="json" />
314                                     <parameter name="httpMethod" value="post" />
315                                     <parameter name="responsePrefix" value="restapi-result" />
316                                 </execute>
317                             </outcome>
318                             <outcome value="L2-DCI">
319                                 <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">
320                                     <parameter name="templateFileName" value="`$prop.sdncRestApi.tempDir +'/l2-dci-connects-template.json'`" />
321                                     <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url +'/v2.0/l2-dci-connects'`" />
322                                     <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
323                                     <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
324                                     <parameter name="format" value="json" />
325                                     <parameter name="httpMethod" value="post" />
326                                     <parameter name="responsePrefix" value="restapi-result" />
327                                 </execute>
328                             </outcome>
329                         </switch>
330                     </block>
331                 </block>
332                 <block atomic="true">
333                     <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">
334                         <parameter name="ctx-destination" value="prop.dci.network-id" />
335                     </execute>
336                     <switch test="`$service-data.networks.network_length`">
337                         <outcome value="">
338                             <set>
339                                 <parameter name="nidx" value="0" />
340                             </set>
341                         </outcome>
342                         <outcome value="Other">
343                             <set>
344                                 <parameter name="nidx" value="`$service-data.networks.network_length`" />
345                             </set>
346                         </outcome>
347                     </switch>
348                     <set>
349                         <parameter name="service-data.networks.network[$nidx].network-id" value="`$prop.dci.network-id`" />
350                         <parameter name="service-data.networks.network[$nidx].network-data.sdnc-request-header." value="`$network-topology-operation-input.sdnc-request-header.`" />
351                         <parameter name="service-data.networks.network[$nidx].network-data.request-information." value="`$network-topology-operation-input.request-information.`" />
352                         <parameter name="service-data.networks.network[$nidx].network-data.service-information." value="`$network-topology-operation-input.service-information.`" />
353                         <parameter name="service-data.networks.network[$nidx].network-data.network-information." value="`$network-topology-operation-input.network-information.`" />
354                         <parameter name="service-data.networks.network[$nidx].network-data.network-request-input." value="`$network-topology-operation-input.network-request-input.`" />
355                         <parameter name="service-data.networks.network_length" value="`$nidx+1`" />
356                         <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status" value="Created" />
357                         <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.last-rpc-action" value="`$network-topology-operation-input.sdnc-request-header.svc-action`" />
358                         <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action" value="`$network-topology-operation-input.request-information.request-action`" />
359                     </set>
360                     <set>
361                         <parameter name="networkId" value="`$prop.dci.network-id`" />
362                         <parameter name="network-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $network-topology-operation-input.service-information.service-instance-id  + '/service-data/networks/network/'  + $prop.dci.network-id  + '/network-data/'` " />
363                     </set>
364                 </block>
365             </block>
366             <return status="success">
367                 <parameter name="ack-final-indicator" value="Y" />
368                 <parameter name="error-code" value="200" />
369                 <parameter name="error-message" value="`$error-message`" />
370             </return>
371         </block>
372     </method>
373 </service-logic>