1 <service-logic xsi:schemaLocation="http://www.onap.org/sdnc/svclogic ./svclogic.xsd" module="DataChange" version="${project.version}">
\r
2 <method rpc="update-network-links-to-aai" mode="sync">
\r
3 <block atomic="true">
\r
4 <for index="pidx" start="0" end="`$network.link_length`">
\r
6 <parameter name="link." value=""/>
\r
7 <parameter name="dst-tpId" value=""/>
\r
8 <parameter name="unique-dst-node-Id" value=""/>
\r
9 <parameter name="is-open-ended-link" value="false"/>
\r
10 <parameter name="is-invalid-open-ended-link" value="false"/>
\r
13 <parameter name="link." value="`$network.link[$pidx].`"/>
\r
14 <parameter name="unique-networkId" value="`$tmp.network-id`"/>
\r
17 <parameter name="unique-linkId" value="`'networkId-' + $unique-networkId + '-linkId-' + $link.link-id`"/>
\r
18 <parameter name="src-tpId" value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.source.source-node + '-ltpId-' + $link.source.source-tp`"/>
\r
19 <parameter name="unique-src-node-Id" value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.source.source-node`"/>
\r
21 <switch test="`$link.destination.dest-node`">
\r
25 <parameter name="is-open-ended-link" value="true"/>
\r
28 <parameter name="tmp.aai.p-interface" value=""/>
\r
29 <parameter name="tmp.aai.p-interface.inter-domain-plug-id" value=""/>
\r
31 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="p-interface" key="pnf.pnf-name = $unique-src-node-Id and p-interface.interface-name = $src-tpId" local-only="false" pfx="tmp.aai.p-interface">
\r
32 <outcome value="success">
\r
33 <switch test="`$tmp.aai.p-interface.inter-domain-plug-id`">
\r
36 <parameter name="is-open-ended-link" value="false"/>
\r
37 <parameter name="is-invalid-open-ended-link" value="true"/>
\r
40 <outcome value="Other">
\r
42 <parameter name="alt-unique-linkId" value="`$tmp.aai.p-interface.inter-domain-plug-id`"/>
\r
44 <parameter name='alt-unique-linkId' value="`'networkId-' + $unique-networkId + '-linkId-' + $tmp.aai.p-interface.inter-domain-plug-id`" />
\r
50 <outcome value="not-found">
\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="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_id`"/>
\r
57 <outcome value="failure">
\r
58 <return status="failure">
\r
59 <parameter name="error-code" value=""/>
\r
60 <parameter name="error-message" value=""/>
\r
66 <outcome value="Other">
\r
68 <parameter name="dst-tpId" value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.destination.dest-node + '-ltpId-' + $link.destination.dest-tp`"/>
\r
69 <parameter name="unique-dst-node-Id" value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.destination.dest-node`"/>
\r
70 <parameter name="is-open-ended-link" value="false"/>
\r
74 <switch test="`$is-invalid-open-ended-link`">
\r
75 <outcome value="true">
\r
78 <outcome value="false">
\r
79 <switch test="`$is-open-ended-link`">
\r
80 <outcome value="true">
\r
81 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link" key="logical-link.link-name = $alt-unique-linkId" local-only="false" pfx="tmp.aai.logical-link">
\r
82 <outcome value="success">
\r
84 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
\r
85 <parameter name="file" value="/opt/onap/logMerge.txt"/>
\r
86 <parameter name="field1" value="__TIMESTAMP__"/>
\r
87 <parameter name="field2" value="altUniqueLinkId"/>
\r
88 <parameter name="field3" value="`$alt-unique-linkId`"/>
\r
89 <parameter name="field4" value="srcTpId"/>
\r
90 <parameter name="field5" value="`$src-tpId`"/>
\r
91 <parameter name="field6" value="relationship-value"/>
\r
92 <parameter name="field7" value="`$tmp.aai.logical-link.relationship-list.relationship[0].relationship-data[1].relationship-value`"/>
\r
94 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link:relationship-list" key="logical-link.link-name = $alt-unique-linkId" force="true" pfx="tmp.AnAI-data">
\r
96 <parameter name="relationship-list.relationship[0].related-to" value="p-interface" />
\r
99 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`" />
\r
102 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name" />
\r
105 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`" />
\r
107 <parameter name="relationship-list.relationship[0].related-to" value="p-interface"/>
\r
108 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`"/>
\r
109 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name"/>
\r
110 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`"/>
\r
111 <outcome value="success">
\r
113 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
\r
114 <parameter name="file" value="/opt/onap/logMergeSuccess.txt"/>
\r
115 <parameter name="field1" value="__TIMESTAMP__"/>
\r
116 <parameter name="field2" value="altUniqueLinkId"/>
\r
117 <parameter name="field3" value="`$alt-unique-linkId`"/>
\r
118 <parameter name="field4" value="srcTpId"/>
\r
119 <parameter name="field5" value="`$src-tpId`"/>
\r
120 <parameter name="field6" value="relationship-value"/>
\r
121 <parameter name="field7" value="`$tmp.aai.logical-link.relationship-list.relationship[0].relationship-data[1].relationship-value`"/>
\r
125 <outcome value="failure">
\r
127 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
\r
128 <parameter name="file" value="/opt/onap/logMergeFailure.txt"/>
\r
129 <parameter name="field1" value="__TIMESTAMP__"/>
\r
130 <parameter name="field2" value="altUniqueLinkId"/>
\r
131 <parameter name="field3" value="`$alt-unique-linkId`"/>
\r
132 <parameter name="field4" value="srcTpId"/>
\r
133 <parameter name="field5" value="`$src-tpId`"/>
\r
134 <parameter name="field6" value="relationship-value"/>
\r
135 <parameter name="field7" value="`$tmp.aai.logical-link.relationship-list.relationship[0].relationship-data[1].relationship-value`"/>
\r
140 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="te-link-attribute" key="te-link-attribute.id = $link.te.te-link-attributes.name">
\r
141 <parameter name="id" value="`$link.te.te-link-attributes.name`"/>
\r
142 <parameter name="access-type" value="`$link.te.te-link-attributes.access-type`"/>
\r
144 <switch test="`$link.te.te-link-attributes.label-restriction_length`">
\r
148 <outcome value="0">
\r
151 <outcome value="Other">
\r
152 <for index="tidx" start="0" end="`$link.te.te-link-attributes.label-restriction_length`">
\r
154 <parameter name="label-restriction." value=""/>
\r
155 <parameter name="unique-lrId" value=""/>
\r
158 <parameter name="label-restriction." value="`$link.te.te-link-attributes.label-restriction[$tidx].`"/>
\r
161 <parameter name="unique-lrId" value="`$alt-unique-linkId + '-lrId-' + $label-restriction.index`"/>
\r
163 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="label-restriction" key="label-restriction.id = $unique-lrId">
\r
164 <parameter name="id" value="`$unique-lrId`"/>
\r
165 <parameter name="label-start" value="`$label-restriction.label-start.te-label-tpn`"/>
\r
166 <parameter name="label-end" value="`$label-restriction.label-end.te-label-tpn`"/>
\r
167 <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
\r
168 <parameter name="label-step" value="`$label-restriction.label-step`"/>
\r
169 <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
\r
170 <outcome value="success">
\r
173 <outcome value="failure">
\r
174 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="label-restriction" key="label-restriction.id = $unique-lrId">
\r
175 <parameter name="id" value="`$unique-lrId`"/>
\r
176 <parameter name="label-start" value="`$label-restriction.label-start.te-label-tpn`"/>
\r
177 <parameter name="label-end" value="`$label-restriction.label-end.te-label-tpn`"/>
\r
178 <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
\r
179 <parameter name="label-step" value="`$label-restriction.label-step`"/>
\r
180 <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
\r
184 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="te-link-attribute:relationship-list" key="te-link-attribute.id = $link.te.te-link-attributes.name" force="true" pfx="tmp.AnAI-data">
\r
185 <parameter name="relationship-list.relationship[0].related-to" value="logical-link"/>
\r
186 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/logical-links/logical-link/' + $alt-unique-linkId`"/>
\r
187 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="logical-link.link-name"/>
\r
188 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$alt-unique-linkId`"/>
\r
190 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="te-link-attribute:relationship-list" key="te-link-attribute.id = $link.te.te-link-attributes.name" force="true" pfx="tmp.AnAI-data">
\r
191 <parameter name="relationship-list.relationship[0].related-to" value="label-restriction"/>
\r
192 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`"/>
\r
193 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="label-restriction.id"/>
\r
194 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-lrId`"/>
\r
201 <outcome value="not-found">
\r
202 <block atomic="true">
\r
203 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link" key="logical-link.link-name = $alt-unique-linkId">
\r
204 <parameter name="link-name" value="`$alt-unique-linkId`"/>
\r
205 <parameter name="link-id" value="`$link.link-id`"/>
\r
206 <parameter name="link-type" value="`$link.te.te-link-attributes.access-type`"/>
\r
208 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link:relationship-list" key="logical-link.link-name = $alt-unique-linkId" force="true" pfx="tmp.AnAI-data">
\r
209 <parameter name="relationship-list.relationship[0].related-to" value="p-interface"/>
\r
210 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`"/>
\r
211 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name"/>
\r
212 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`"/>
\r
214 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="te-link-attribute" key="te-link-attribute.id = $link.te.te-link-attributes.name">
\r
215 <parameter name="id" value="`$link.te.te-link-attributes.name`"/>
\r
216 <parameter name="access-type" value="`$link.te.te-link-attributes.access-type`"/>
\r
218 <switch test="`$link.te.te-link-attributes.label-restriction_length`">
\r
222 <outcome value="0">
\r
225 <outcome value="Other">
\r
226 <for index="tidx" start="0" end="`$link.te.te-link-attributes.label-restriction_length`">
\r
228 <parameter name="label-restriction." value=""/>
\r
229 <parameter name="unique-lrId" value=""/>
\r
232 <parameter name="label-restriction." value="`$link.te.te-link-attributes.label-restriction[$tidx].`"/>
\r
235 <parameter name="unique-lrId" value="`$alt-unique-linkId + '-lrId-' + $label-restriction.index`"/>
\r
237 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="label-restriction" key="label-restriction.id = $unique-lrId">
\r
238 <parameter name="id" value="`$unique-lrId`"/>
\r
239 <parameter name="label-start" value="`$label-restriction.label-start.te-label-tpn`"/>
\r
240 <parameter name="label-end" value="`$label-restriction.label-end.te-label-tpn`"/>
\r
241 <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
\r
242 <parameter name="label-step" value="`$label-restriction.label-step`"/>
\r
243 <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
\r
244 <outcome value="success">
\r
247 <outcome value="failure">
\r
248 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="label-restriction" key="logical-link.link-name = $alt-unique-linkId AND label-restriction.id = $unique-lrId">
\r
249 <parameter name="id" value="`$unique-lrId`"/>
\r
250 <parameter name="label-start" value="`$label-restriction.label-start`"/>
\r
251 <parameter name="label-end" value="`$label-restriction.label-end`"/>
\r
252 <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
\r
253 <parameter name="label-step" value="`$label-restriction.label-step`"/>
\r
254 <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
\r
258 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="te-link-attribute:relationship-list" key="te-link-attribute.id = $link.te.te-link-attributes.name" force="true" pfx="tmp.AnAI-data">
\r
259 <parameter name="relationship-list.relationship[0].related-to" value="logical-link"/>
\r
260 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/logical-links/logical-link/' + $alt-unique-linkId`"/>
\r
261 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="logical-link.link-name"/>
\r
262 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$alt-unique-linkId`"/>
\r
264 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="te-link-attribute:relationship-list" key="te-link-attribute.id = $link.te.te-link-attributes.name" force="true" pfx="tmp.AnAI-data">
\r
265 <parameter name="relationship-list.relationship[0].related-to" value="label-restriction"/>
\r
266 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`"/>
\r
267 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="label-restriction.id"/>
\r
268 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-lrId`"/>
\r
277 <outcome value="false">
\r
278 <block atomic="true">
\r
279 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link" key="logical-link.link-name = $unique-linkId">
\r
280 <parameter name="link-name" value="`$unique-linkId`"/>
\r
281 <parameter name="link-id" value="`$link.link-id`"/>
\r
282 <parameter name="link-type" value="`$link.te.te-link-attributes.access-type`"/>
\r
284 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
\r
285 <parameter name="file" value="/opt/onap/logTopologyDiscovery.txt"/>
\r
286 <parameter name="field1" value="__TIMESTAMP__"/>
\r
287 <parameter name="field2" value="uniqueLinkId"/>
\r
288 <parameter name="field3" value="`$unique-linkId`"/>
\r
289 <parameter name="field4" value="srcTpId"/>
\r
290 <parameter name="field5" value="`$src-tpId`"/>
\r
291 <parameter name="field6" value="dstTpId"/>
\r
292 <parameter name="field7" value="`$dst-tpId`"/>
\r
294 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="logical-link:relationship-list" key="logical-link.link-name = $unique-linkId" force="true" pfx="tmp.AnAI-data">
\r
295 <parameter name="relationship-list.relationship[0].related-to" value="p-interface"/>
\r
296 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`"/>
\r
297 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name"/>
\r
298 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`"/>
\r
299 <parameter name="relationship-list.relationship[1].related-to" value="p-interface"/>
\r
300 <parameter name="relationship-list.relationship[1].related-link" value="`'/network/pnfs/pnf/' + $unique-dst-node-Id + '/p-interfaces/p-interface/' + $dst-tpId`"/>
\r
301 <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="p-interface.interface-name"/>
\r
302 <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="`$dst-tpId`"/>
\r
304 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="te-link-attribute" key="te-link-attribute.id = $link.te.te-link-attributes.name">
\r
305 <parameter name="id" value="`$link.te.te-link-attributes.name`"/>
\r
306 <parameter name="access-type" value="`$link.te.te-link-attributes.access-type`"/>
\r
308 <switch test="`$link.te.te-link-attributes.label-restriction_length`">
\r
312 <outcome value="0">
\r
315 <outcome value="Other">
\r
316 <for index="tidx" start="0" end="`$link.te.te-link-attributes.label-restriction_length`">
\r
318 <parameter name="label-restriction." value=""/>
\r
319 <parameter name="unique-lrId" value=""/>
\r
322 <parameter name="label-restriction." value="`$link.te.te-link-attributes.label-restriction[$tidx].`"/>
\r
325 <parameter name="unique-lrId" value="`$unique-linkId + '-lrId-' + $label-restriction.index`"/>
\r
327 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="label-restriction" key="label-restriction.id = $unique-lrId">
\r
328 <parameter name="id" value="`$unique-lrId`"/>
\r
329 <parameter name="label-start" value="`$label-restriction.label-start.te-label-tpn`"/>
\r
330 <parameter name="label-end" value="`$label-restriction.label-end.te-label-tpn`"/>
\r
331 <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
\r
332 <parameter name="label-step" value="`$label-restriction.label-step`"/>
\r
333 <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
\r
334 <outcome value="success">
\r
337 <outcome value="failure">
\r
338 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="label-restriction" key="logical-link.link-name = $unique-linkId AND label-restriction.id = $unique-lrId">
\r
339 <parameter name="id" value="`$unique-lrId`"/>
\r
340 <parameter name="label-start" value="`$label-restriction.label-start`"/>
\r
341 <parameter name="label-end" value="`$label-restriction.label-end`"/>
\r
342 <parameter name="range-bitmap" value="`$label-restriction.range-bitmap`"/>
\r
343 <parameter name="label-step" value="`$label-restriction.label-step`"/>
\r
344 <parameter name="inclusive-exclusive" value="`$label-restriction.inclusive-exclusive`"/>
\r
348 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="te-link-attribute:relationship-list" key="te-link-attribute.id = $link.te.te-link-attributes.name" force="true" pfx="tmp.AnAI-data">
\r
349 <parameter name="relationship-list.relationship[0].related-to" value="logical-link"/>
\r
350 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/logical-links/logical-link/' + $unique-linkId`"/>
\r
351 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="logical-link.link-name"/>
\r
352 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-linkId`"/>
\r
354 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="te-link-attribute:relationship-list" key="te-link-attribute.id = $link.te.te-link-attributes.name" force="true" pfx="tmp.AnAI-data">
\r
355 <parameter name="relationship-list.relationship[0].related-to" value="label-restriction"/>
\r
356 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`"/>
\r
357 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="label-restriction.id"/>
\r
358 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-lrId`"/>
\r