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='GENERIC-RESOURCE-API' version='${project.version}'>
\r
4 <method rpc='tsli-vnf-topology-operation-get-otn-tunnel-path-from-oof' mode='sync'>
\r
5 <block atomic="true">
\r
6 <block atomic='true'>
\r
7 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
\r
8 resource="network-resources"
\r
9 key="selflink = 'https://aai.onap:8443/aai/v21/network/network-resources?depth=0'"
\r
11 pfx="allNetworksList" >
\r
12 <outcome value='success'></outcome>
\r
13 <outcome value='Other'></outcome>
\r
14 <outcome value='not-found'></outcome>
\r
16 <for index='netwidx' start='0' end='`$allNetworksList.network-resource_length`' >
\r
17 <switch test='`$allNetworksList.network-resource[$netwidx].provider-id == $param-prefix-domainA-pnfName[2]`'>
\r
18 <outcome value='true'>
\r
19 <switch test='`$allNetworksList.network-resource[$netwidx].te-topo-id != $param-prefix-domainA-pnfName[6]`'>
\r
20 <outcome value='true'>
\r
22 <parameter name='otnTopoIdSrc' value='`$allNetworksList.network-resource[$netwidx].te-topo-id`' />
\r
27 <outcome value='false'>
\r
28 <switch test='`$allNetworksList.network-resource[$netwidx].provider-id == $param-prefix-domainB-pnfName[2]`'>
\r
29 <outcome value='true'>
\r
30 <switch test='`$allNetworksList.network-resource[$netwidx].te-topo-id != $param-prefix-domainB-pnfName[6]`'>
\r
31 <outcome value='true'>
\r
33 <parameter name='otnTopoIdDst' value='`$allNetworksList.network-resource[$netwidx].te-topo-id`' />
\r
43 <parameter name='tmp.pce-src-node.' value='' />
\r
46 <parameter name='tmp.pce-dst-node.' value='' />
\r
49 <!--<parameter name='`otn-oof`' value='' />-->
\r
50 <parameter name='otn-oof.' value='' />
\r
51 <!--<parameter name='`otn-oof.solutions`' value='' />-->
\r
52 <!--<parameter name='`otn-oof.solutions.`' value='' />-->
\r
53 <!--<parameter name='`otn-oof.solutions_length`' value='0' />-->
\r
56 <!--<parameter name='tmp.pce-src-node' value="`$param-prefix-domainA-pnfName[0] + '-' +-->
\r
57 <!-- $param-prefix-domainA-pnfName[1] + '-' +-->
\r
58 <!-- $param-prefix-domainA-pnfName[2] + '-' +-->
\r
59 <!-- $param-prefix-domainA-pnfName[3] + '-' +-->
\r
60 <!-- $param-prefix-domainA-pnfName[4] + '-' +-->
\r
61 <!-- $param-prefix-domainA-pnfName[5] + '-' +-->
\r
63 <!-- $param-prefix-domainA-pnfName[7] + '-' +-->
\r
64 <!-- $param-prefix-domainA-pnfName[8]`" />-->
\r
65 <parameter name='tmp.pce-src-node' value="`$param-prefix-domainA-pnfName[0] + '-' +
\r
66 $param-prefix-domainA-pnfName[1] + '-' +
\r
67 $param-prefix-domainA-pnfName[2] + '-' +
\r
68 $param-prefix-domainA-pnfName[3] + '-' +
\r
69 $param-prefix-domainA-pnfName[4] + '-' +
\r
70 $param-prefix-domainA-pnfName[5] + '-' +
\r
71 $otnTopoIdSrc + '-' +
\r
72 $param-prefix-domainA-pnfName[7] + '-' +
\r
73 $param-prefix-domainA-pnfName[8]`" />
\r
76 <!--<parameter name='$tmp.pce-dst-node' value="`$param-prefix-domainB-pnfName[0] + '-' +-->
\r
77 <!-- $param-prefix-domainB-pnfName[1] + '-' +-->
\r
78 <!-- $param-prefix-domainB-pnfName[2] + '-' +-->
\r
79 <!-- $param-prefix-domainB-pnfName[3] + '-' +-->
\r
80 <!-- $param-prefix-domainB-pnfName[4] + '-' +-->
\r
81 <!-- $param-prefix-domainB-pnfName[5] + '-' +-->
\r
83 <!-- $param-prefix-domainB-pnfName[7] + '-' +-->
\r
84 <!-- $param-prefix-domainB-pnfName[8]`" />-->
\r
85 <parameter name='tmp.pce-dst-node' value="`$param-prefix-domainB-pnfName[0] + '-' +
\r
86 $param-prefix-domainB-pnfName[1] + '-' +
\r
87 $param-prefix-domainB-pnfName[2] + '-' +
\r
88 $param-prefix-domainB-pnfName[3] + '-' +
\r
89 $param-prefix-domainB-pnfName[4] + '-' +
\r
90 $param-prefix-domainB-pnfName[5] + '-' +
\r
91 $otnTopoIdDst + '-' +
\r
92 $param-prefix-domainB-pnfName[7] + '-' +
\r
93 $param-prefix-domainB-pnfName[8]`" />
\r
95 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
\r
96 <parameter name="logger" value="message-log" />
\r
97 <parameter name="level" value="info" />
\r
98 <!--<parameter name="field1" value="Path computation succeed!"/>-->
\r
99 <!--<parameter name="field2" value="`$ccsdkTopo.resp.solutions_length`"/>-->
\r
100 <!--<parameter name="field1" value="`$tmp.src.domainA.pnf-name`"/>-->
\r
101 <!--<parameter name="field2" value="`$tmp.dst.domainB.pnf-name`"/>-->
\r
102 <parameter name="field1" value="`$tmp.pce-src-node`"/>
\r
103 <parameter name="field2" value="`$tmp.pce-dst-node`"/>
\r
105 <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
\r
106 <parameter name="logger" value="message-log" />
\r
107 <parameter name="level" value="info" />
\r
108 <parameter name="field1" value="`$otn-oof.`"/>
\r
111 <!--<parameter name='tmp.pce-src-node' value="`$param-prefix-domainA-pnfName[0] + '-' +-->
\r
112 <!-- $param-prefix-domainA-pnfName[1] + '-' +-->
\r
113 <!-- $param-prefix-domainA-pnfName[2] + '-' +-->
\r
114 <!-- $param-prefix-domainA-pnfName[3] + '-' +-->
\r
115 <!-- $param-prefix-domainA-pnfName[4] + '-' +-->
\r
116 <!-- $param-prefix-domainA-pnfName[5] + '-' +-->
\r
118 <!-- $param-prefix-domainA-pnfName[7] + '-' +-->
\r
119 <!-- $param-prefix-domainA-pnfName[8]`" />-->
\r
120 <parameter name='filenamemm' value="`$tmp.pce-src-node + $tmp.pce-dst-node`" />
\r
122 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliTopologyUtils' method='computePath' >
\r
123 <parameter name="pnfs-pfx" value='ccsdkTopopnfs'/>
\r
124 <parameter name="links-pfx" value="ccsdkTopologicalLinks"/>
\r
125 <parameter name="response-pfx" value="otn-oof"/>
\r
126 <parameter name="output-end-to-end-path" value="false"/>
\r
127 <!--<parameter name="src-node" value="`$tmp.src.domainA.pnf-name`"/>-->
\r
128 <!--<parameter name="dst-node" value="`$tmp.dst.domainB.pnf-name`"/>-->
\r
129 <parameter name="src-node" value="`$tmp.pce-src-node`"/>
\r
130 <parameter name="dst-node" value="`$tmp.pce-dst-node`"/>
\r
131 <outcome value='success'></outcome>
\r
132 <outcome value='Other'></outcome>
\r
133 <outcome value='not-found'></outcome>
\r
137 <parameter name='`tmp.otninfo.`' value='' />
\r
138 <!--<parameter name='`tmp.otninfo_length`' value='0' />-->
\r
140 <for index='vidx' start='0' end='`$otn-oof.solutions_length`' >
\r
141 <block atomic="true">
\r
143 <parameter name='otn-oof.link-name' value='' />
\r
144 <!--<parameter name='tmp.aai.cross-link' value='' />-->
\r
145 <parameter name='tmp.aai.cross-link.' value='' />
\r
146 <!--<parameter name='tmp.aai.cross-link.link-role' value='' />-->
\r
149 <parameter name='otn-oof.link-name' value='`$otn-oof.solutions[$vidx].original_link`' />
\r
150 <parameter name='otn-oof.start-node' value='`$otn-oof.solutions[$vidx].src_node`' />
\r
151 <parameter name='otn-oof.end-node' value='`$otn-oof.solutions[$vidx].dst_node`' />
\r
154 <parameter name='tmp.cross-link.src-ltpId' value="`$otn-oof.solutions[$vidx].src_pinterface`" />
\r
155 <parameter name='tmp.src-pnf-name' value="`$otn-oof.solutions[$vidx].src_node`" />
\r
158 <parameter name='tmp.cross-link.dst-ltpId' value="`$otn-oof.solutions[$vidx].dst_pinterface`" />
\r
159 <parameter name='tmp.dst-pnf-name' value="`$otn-oof.solutions[$vidx].dst_node`" />
\r
161 <block atomic="true">
\r
162 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
\r
163 resource="p-interface"
\r
164 key="pnf.pnf-name = $tmp.src-pnf-name
\r
165 AND p-interface.interface-name = $tmp.cross-link.src-ltpId"
\r
166 pfx='tmp.aai.src-tp' local-only='false' >
\r
167 <!--AND depth = '0'"-->
\r
168 <outcome value='success'>
\r
170 <for silentFailure='true' index='pintsidx' start='0' end='`$tmp.aai.src-tp.relationship-list.relationship_length`' >
\r
171 <switch test='`$tmp.aai.src-tp.relationship-list.relationship[$pintsidx].related-to`'>
\r
172 <outcome value='tunnel-termination-point'>
\r
173 <block atomic="true">
\r
174 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
\r
175 <!--<parameter name="original_string" value='`$tmp.aai.src-tp`'/>-->
\r
176 <parameter name="original_string" value='`$tmp.aai.src-tp.interface-name`'/>
\r
177 <!--<parameter name="regex" value="[^-]+$"/>-->
\r
178 <parameter name="regex" value="[-]+"/>
\r
179 <parameter name="ctx_memory_result_key" value="param-prefix-src-tp"/>
\r
180 <outcome value='success'>
\r
181 <block atomic="true">
\r
183 <parameter name='domain-A.ltpId' value='`$param-prefix-src-tp[$param-prefix-src-tp_length -1]`' />
\r
184 <parameter name='`tmp.otninfo[$vidx].dstPort.dst-ltp-id`' value="`$param-prefix-src-tp[$param-prefix-src-tp_length -1]`" />
\r
185 <parameter name='`tmp.otninfo_length`' value='`$vidx + 1`' />
\r
189 <outcome value='failure'>
\r
190 <return status='failure'>
\r
191 <parameter name='error-code' value='' />
\r
192 <parameter name='error-message' value="An error occured while splitting sna1_route" />
\r
196 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
\r
198 key="pnf.pnf-name = $tmp.src-pnf-name"
\r
199 pfx='tmp.aai.src-pnf' local-only='false' >
\r
200 <!--AND depth = '0'"-->
\r
201 <outcome value='success'>
\r
204 <parameter name='domain-A.node-id' value="`$tmp.aai.src-pnf.pnf-id`" />
\r
205 <parameter name='domain-A.tpn' value='1' />
\r
206 <parameter name='`tmp.otninfo[$vidx].dstPort.dst-access-node-id`' value="`$tmp.aai.src-pnf.pnf-id`" />
\r
207 <parameter name='`tmp.otninfo_length`' value='`$vidx + 1`' />
\r
209 <for silentFailure='true' index='pvidx' start='0' end='`$tmp.aai.src-pnf.relationship-list.relationship_length`' >
\r
210 <switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$pvidx].related-to`'>
\r
211 <outcome value='network-resource'>
\r
212 <block atomic="true">
\r
214 <parameter name='tmp.domain-A.network-id' value="`$tmp.aai.src-pnf.relationship-list.relationship[$pvidx].relationship-data[0].relationship-value`" />
\r
216 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
\r
217 resource="network-resource"
\r
218 key="network-resource.network-id = $tmp.domain-A.network-id
\r
220 pfx='tmp.aai.src-network-resource' local-only='false' >
\r
221 <outcome value='success'>
\r
223 <parameter name='domain-A.network-id' value="`$tmp.aai.src-network-resource.network-id`" />
\r
224 <parameter name='domain-A.provider-id' value="`$tmp.aai.src-network-resource.provider-id`" />
\r
225 <parameter name='domain-A.client-id' value="`$tmp.aai.src-network-resource.client-id`" />
\r
226 <parameter name='domain-A.te-topo-id' value="`$tmp.aai.src-network-resource.te-topo-id`" />
\r
227 <parameter name='domain-A.network-type' value="`$tmp.aai.src-network-resource.network-type`" />
\r
228 <parameter name='`tmp.otninfo[$vidx].dstPort.dst-access-network-id`' value="`$tmp.aai.src-network-resource.network-id`" />
\r
229 <parameter name='`tmp.otninfo[$vidx].dstPort.dst-access-provider-id`' value="`$tmp.aai.src-network-resource.provider-id`" />
\r
230 <parameter name='`tmp.otninfo[$vidx].dstPort.dst-access-client-id`' value="`$tmp.aai.src-network-resource.client-id`" />
\r
231 <parameter name='`tmp.otninfo[$vidx].dstPort.dst-access-topology-id`' value="`$tmp.aai.src-network-resource.te-topo-id`" />
\r
232 <parameter name='`tmp.otninfo[$vidx].dstPort.dst-access-network-type`' value="`$tmp.aai.src-network-resource.network-type`" />
\r
233 <parameter name='`tmp.otninfo_length`' value='`$vidx + 1`' />
\r
244 <outcome value='not-found'>
\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="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
\r
251 <outcome value='Other'>
\r
252 <return status='failure'>
\r
253 <parameter name='ack-final' value='Y'/>
\r
254 <parameter name="error-code" value="500" />
\r
255 <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
\r
260 <parameter name='tmp.domain-A.ttp-id' value="`$tmp.aai.src-tp.relationship-list.relationship[$pintsidx].relationship-data[0].relationship-value`" />
\r
262 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
\r
263 resource="tunnel-termination-point"
\r
264 key="tunnel-termination-point.ttp-id = $tmp.domain-A.ttp-id
\r
266 pfx='tmp.aai.src-ttp' local-only='false' >
\r
267 <outcome value='success'>
\r
268 <block atomic="true">
\r
270 <parameter name='domain-A.tunnel-tp-id' value="`$tmp.aai.src-ttp.tunnel-tp-id`" />
\r
271 <parameter name='`tmp.otninfo[$vidx].dstPort.dst-tunnel-tp-id`' value="`$tmp.aai.src-ttp.tunnel-tp-id`" />
\r
272 <parameter name='`tmp.otninfo_length`' value='`$vidx + 1`' />
\r
284 <outcome value='not-found'>
\r
285 <return status='failure'>
\r
286 <parameter name='ack-final' value='Y'/>
\r
287 <parameter name="error-code" value="500" />
\r
288 <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
\r
291 <outcome value='Other'>
\r
292 <return status='failure'>
\r
293 <parameter name='ack-final' value='Y'/>
\r
294 <parameter name="error-code" value="500" />
\r
295 <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
\r
299 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
\r
300 resource="p-interface"
\r
301 key="pnf.pnf-name = $tmp.dst-pnf-name
\r
302 AND p-interface.interface-name = $tmp.cross-link.dst-ltpId"
\r
303 pfx='tmp.aai.dst-tp' local-only='false' >
\r
304 <!--AND depth = '0'"-->
\r
305 <outcome value='success'>
\r
307 <for silentFailure='true' index='pintdidx' start='0' end='`$tmp.aai.dst-tp.relationship-list.relationship_length`' >
\r
308 <switch test='`$tmp.aai.dst-tp.relationship-list.relationship[$pintdidx].related-to`'>
\r
309 <outcome value='tunnel-termination-point'>
\r
310 <block atomic="true">
\r
311 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
\r
312 <parameter name="original_string" value='`$tmp.aai.dst-tp`'/>
\r
313 <!--<parameter name="regex" value="[^-]+$"/>-->
\r
314 <parameter name="regex" value="[-]+"/>
\r
315 <parameter name="ctx_memory_result_key" value="param-prefix-dst-tp"/>
\r
316 <outcome value='success'>
\r
317 <block atomic="true">
\r
319 <parameter name='domain-B.ltpId' value='`$param-prefix-dst-tp[$param-prefix-dst-tp_length -1]`' />
\r
320 <parameter name='`tmp.otninfo[$vidx + 1].srcPort.src-ltp-id`' value="`$param-prefix-dst-tp[$param-prefix-dst-tp_length -1]`" />
\r
321 <parameter name='`tmp.otninfo_length`' value='`$vidx + 2`' />
\r
325 <outcome value='failure'>
\r
326 <return status='failure'>
\r
327 <parameter name='error-code' value='' />
\r
328 <parameter name='error-message' value="An error occured while splitting sna1_route" />
\r
332 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
\r
334 key="pnf.pnf-name = $tmp.dst-pnf-name"
\r
335 pfx='tmp.aai.dst-pnf' local-only='false' >
\r
336 <!--AND depth = '0'"-->
\r
337 <outcome value='success'>
\r
340 <parameter name='domain-B.node-id' value="`$tmp.aai.dst-pnf.pnf-id`" />
\r
341 <parameter name='domain-B.tpn' value='1' />
\r
342 <parameter name='`tmp.otninfo[$vidx + 1].srcPort.src-access-node-id`' value="`$tmp.aai.dst-pnf.pnf-id`" />
\r
343 <parameter name='`tmp.otninfo_length`' value='`$vidx + 2`' />
\r
345 <for silentFailure='true' index='mvidx' start='0' end='`$tmp.aai.dst-pnf.relationship-list.relationship_length`' >
\r
346 <switch test='`$tmp.aai.dst-pnf.relationship-list.relationship[$mvidx].related-to`'>
\r
347 <outcome value='network-resource'>
\r
348 <block atomic="true">
\r
350 <parameter name='tmp.domain-B.network-id' value="`$tmp.aai.dst-pnf.relationship-list.relationship[$mvidx].relationship-data[0].relationship-value`" />
\r
352 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
\r
353 resource="network-resource"
\r
354 key="network-resource.network-id = $tmp.domain-B.network-id
\r
356 pfx='tmp.aai.dst-network-resource' local-only='false' >
\r
357 <outcome value='success'>
\r
359 <parameter name='domain-B.network-id' value="`$tmp.aai.dst-network-resource.network-id`" />
\r
360 <parameter name='domain-B.provider-id' value="`$tmp.aai.dst-network-resource.provider-id`" />
\r
361 <parameter name='domain-B.client-id' value="`$tmp.aai.dst-network-resource.client-id`" />
\r
362 <parameter name='domain-B.te-topo-id' value="`$tmp.aai.dst-network-resource.te-topo-id`" />
\r
363 <parameter name='domain-B.network-type' value="`$tmp.aai.dst-network-resource.network-type`" />
\r
364 <parameter name='`tmp.otninfo[$vidx + 1].srcPort.src-access-network-id`' value="`$tmp.aai.dst-network-resource.network-id`" />
\r
365 <parameter name='`tmp.otninfo[$vidx + 1].srcPort.src-access-provider-id`' value="`$tmp.aai.dst-network-resource.provider-id`" />
\r
366 <parameter name='`tmp.otninfo[$vidx + 1].srcPort.src-access-client-id`' value="`$tmp.aai.dst-network-resource.client-id`" />
\r
367 <parameter name='`tmp.otninfo[$vidx + 1].srcPort.src-access-topology-id`' value="`$tmp.aai.dst-network-resource.te-topo-id`" />
\r
368 <parameter name='`tmp.otninfo[$vidx + 1].srcPort.src-access-network-type`' value="`$tmp.aai.dst-network-resource.network-type`" />
\r
369 <parameter name='`tmp.otninfo_length`' value='`$vidx + 2`' />
\r
380 <outcome value='not-found'>
\r
381 <return status='failure'>
\r
382 <parameter name='ack-final' value='Y'/>
\r
383 <parameter name="error-code" value="500" />
\r
384 <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
\r
387 <outcome value='Other'>
\r
388 <return status='failure'>
\r
389 <parameter name='ack-final' value='Y'/>
\r
390 <parameter name="error-code" value="500" />
\r
391 <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
\r
396 <parameter name='tmp.domain-B.ttp-id' value="`$tmp.aai.dst-tp.relationship-list.relationship[$pintdidx].relationship-data[0].relationship-value`" />
\r
398 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
\r
399 resource="tunnel-termination-point"
\r
400 key="tunnel-termination-point.ttp-id = $tmp.domain-B.ttp-id
\r
402 pfx='tmp.aai.dst-ttp' local-only='false' >
\r
403 <outcome value='success'>
\r
404 <block atomic="true">
\r
406 <parameter name='domain-B.tunnel-tp-id' value="`$tmp.aai.dst-ttp.tunnel-tp-id`" />
\r
407 <parameter name='`tmp.otninfo[$vidx + 1].srcPort.src-tunnel-tp-id`' value="`$tmp.aai.dst-ttp.tunnel-tp-id`" />
\r
408 <parameter name='`tmp.otninfo_length`' value='`$vidx + 2`' />
\r
420 <outcome value='not-found'>
\r
421 <return status='failure'>
\r
422 <parameter name='ack-final' value='Y'/>
\r
423 <parameter name="error-code" value="500" />
\r
424 <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
\r
427 <outcome value='Other'>
\r
428 <return status='failure'>
\r
429 <parameter name='ack-final' value='Y'/>
\r
430 <parameter name="error-code" value="500" />
\r
431 <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
\r