b867b56a54f5c6b39f9129dd03f9575fe9ba452a
[sdnc/oam.git] / platform-logic / datachange / src / main / xml / DataChange_update-network-links-to-aai.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='update-network-links-to-aai' mode='sync'>\r
5         <block atomic="true">\r
6             <for index='pidx' start='0' end='`$network.link_length`' >\r
7                 <set>\r
8                     <parameter name='link.' value='' />\r
9                     <parameter name='dst-tpId' value='' />\r
10                     <parameter name='unique-dst-node-Id' value='' />\r
11                     <parameter name='is-open-ended-link' value='false' />\r
12                     <parameter name='is-invalid-open-ended-link' value='false' />\r
13                 </set>\r
14                 <set>\r
15                     <parameter name='link.' value='`$network.link[$pidx].`' />\r
16                     <parameter name='unique-networkId' value='`$tmp.network-id`' />\r
17                 </set>\r
18                 <set>\r
19                     <parameter name='unique-linkId' value="`'networkId-' + $unique-networkId + '-linkId-' + $link.link-id`" />\r
20                     <parameter name='src-tpId' value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.source.source-node + '-ltpId-' + $link.source.source-tp`" />\r
21                     <parameter name='unique-src-node-Id' value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.source.source-node`" />\r
22                 </set>\r
23                 <switch test='`$link.destination.dest-node`'>\r
24                     <outcome value=''>\r
25                         <block>\r
26                             <set>\r
27                                 <parameter name='is-open-ended-link' value='true' />\r
28                             </set>\r
29                             <set>\r
30                                 <parameter name='tmp.aai.p-interface' value='' />\r
31                                 <parameter name='tmp.aai.p-interface.inter-domain-plug-id' value='' />\r
32                             </set>\r
33                             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
34         resource="p-interface"\r
35             key="pnf.pnf-name = $unique-src-node-Id\r
36                 and p-interface.interface-name = $src-tpId"\r
37                 local-only="false" \r
38                 pfx="tmp.aai.p-interface" >\r
39                                 <outcome value='success'>\r
40                                     <switch test='`$tmp.aai.p-interface.inter-domain-plug-id`'>\r
41                                         <outcome value=''>\r
42                                             <set>\r
43                                                 <parameter name='is-open-ended-link' value='false' />\r
44                                                 <parameter name='is-invalid-open-ended-link' value='true' />\r
45                                             </set>\r
46                                         </outcome>\r
47                                         <outcome value='Other'>\r
48                                             <set>\r
49                                                 <parameter name='alt-unique-linkId' value="`$tmp.aai.p-interface.inter-domain-plug-id`" />\r
50                                                 <!--<parameter name='alt-unique-linkId' value="`'networkId-' + $unique-networkId + '-linkId-' + $tmp.aai.p-interface.inter-domain-plug-id`" />-->\r
51                                             </set>\r
52                                         </outcome>\r
53                                     </switch>\r
54                                 </outcome>\r
55                                 <outcome value='not-found'>\r
56                                     <return status='failure'>\r
57                                         <parameter name='ack-final' value='Y'/>\r
58                                         <parameter name="error-code" value="500" />\r
59                                         <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.l3vpn.pe1_id`" />\r
60                                     </return>\r
61                                 </outcome>\r
62                                 <outcome value='failure'>\r
63                                     <return status='failure'>\r
64                                         <parameter name='error-code' value='' />\r
65                                         <parameter name='error-message' value='' />\r
66                                     </return>\r
67                                 </outcome>\r
68                             </get-resource>\r
69                         </block>\r
70                     </outcome>\r
71                     <outcome value='Other'>\r
72                         <set>\r
73                             <parameter name='dst-tpId' value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.destination.dest-node + '-ltpId-' + $link.destination.dest-tp`" />\r
74                             <parameter name='unique-dst-node-Id' value="`'networkId-' + $unique-networkId + '-nodeId-' + $link.destination.dest-node`" />\r
75                             <parameter name='is-open-ended-link' value='false' />\r
76                         </set>\r
77                     </outcome>\r
78                 </switch>\r
79                 <switch test='`$is-invalid-open-ended-link`'>\r
80                     <outcome value='true'>\r
81                         <block></block>\r
82                     </outcome>\r
83                     <outcome value='false'>\r
84                         <switch test='`$is-open-ended-link`'>\r
85                             <outcome value='true'>\r
86                                 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
87         resource="logical-link"\r
88             key="logical-link.link-name = $alt-unique-linkId"\r
89                 local-only="false" \r
90                 pfx="tmp.aai.logical-link" >\r
91                                     <outcome value='success'>\r
92                                         <block>\r
93                                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
94                                                 <parameter name="file" value="/opt/onap/logMerge.txt" />\r
95                                                 <parameter name="field1" value="__TIMESTAMP__" />\r
96                                                 <parameter name="field2" value="altUniqueLinkId" />\r
97                                                 <parameter name="field3" value="`$alt-unique-linkId`" />\r
98                                                 <parameter name="field4" value="srcTpId" />\r
99                                                 <parameter name="field5" value="`$src-tpId`" />\r
100                                                 <parameter name="field6" value="relationship-value" />\r
101                                                 <parameter name="field7" value='`$tmp.aai.logical-link.relationship-list.relationship[0].relationship-data[1].relationship-value`' />\r
102                                             </record>\r
103                                             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link:relationship-list' \r
104       key='logical-link.link-name = $alt-unique-linkId' force="true" pfx="tmp.AnAI-data">\r
105                                                 <!--<parameter name="relationship-list.relationship[0].related-to" value="p-interface" />-->\r
106                                                 <!--<parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`" />-->\r
107                                                 <!--<parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name" />-->\r
108                                                 <!--<parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`" />-->\r
109                                                 <parameter name="relationship-list.relationship[0].related-to" value="p-interface" />\r
110                                                 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`" />\r
111                                                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name" />\r
112                                                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`" />\r
113                                                 <outcome value='success'>\r
114                                                     <block>\r
115                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
116                                                             <parameter name="file" value="/opt/onap/logMergeSuccess.txt" />\r
117                                                             <parameter name="field1" value="__TIMESTAMP__" />\r
118                                                             <parameter name="field2" value="altUniqueLinkId" />\r
119                                                             <parameter name="field3" value="`$alt-unique-linkId`" />\r
120                                                             <parameter name="field4" value="srcTpId" />\r
121                                                             <parameter name="field5" value="`$src-tpId`" />\r
122                                                             <parameter name="field6" value="relationship-value" />\r
123                                                             <parameter name="field7" value='`$tmp.aai.logical-link.relationship-list.relationship[0].relationship-data[1].relationship-value`' />\r
124                                                         </record>\r
125                                                     </block>\r
126                                                 </outcome>\r
127                                                 <outcome value='failure'>\r
128                                                     <block>\r
129                                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
130                                                             <parameter name="file" value="/opt/onap/logMergeFailure.txt" />\r
131                                                             <parameter name="field1" value="__TIMESTAMP__" />\r
132                                                             <parameter name="field2" value="altUniqueLinkId" />\r
133                                                             <parameter name="field3" value="`$alt-unique-linkId`" />\r
134                                                             <parameter name="field4" value="srcTpId" />\r
135                                                             <parameter name="field5" value="`$src-tpId`" />\r
136                                                             <parameter name="field6" value="relationship-value" />\r
137                                                             <parameter name="field7" value='`$tmp.aai.logical-link.relationship-list.relationship[0].relationship-data[1].relationship-value`' />\r
138                                                         </record>\r
139                                                     </block>\r
140                                                 </outcome>\r
141                                             </save>\r
142                                         </block>\r
143                                     </outcome>\r
144                                     <outcome value='not-found'>\r
145                                         <block atomic='true'>\r
146                                             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link' \r
147       key='logical-link.link-name = $alt-unique-linkId' >\r
148                                                 <parameter name='link-name' value='`$alt-unique-linkId`' />\r
149                                                 <parameter name='link-id' value='`$link.link-id`' />\r
150                                                 <parameter name='link-type' value='`$link.te.te-link-attributes.access-type`' />\r
151                                             </save>\r
152                                             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link:relationship-list' \r
153       key='logical-link.link-name = $alt-unique-linkId' force="true" pfx="tmp.AnAI-data">\r
154                                                 <parameter name="relationship-list.relationship[0].related-to" value="p-interface" />\r
155                                                 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`" />\r
156                                                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name" />\r
157                                                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`" />\r
158                                             </save>\r
159                                             <switch test='`$link.te.te-link-attributes.label-restriction`'>\r
160                                                 <outcome value=''>\r
161                                                     <block></block>\r
162                                                 </outcome>\r
163                                                 <outcome value='Other'>\r
164                                                     <for index='tidx' start='0' end='`$link.te.te-link-attributes.label-restriction_length`' >\r
165                                                         <set>\r
166                                                             <parameter name='label-restriction.' value='`$link.te.te-link-attributes.label-restriction[$tidx].`' />\r
167                                                             <parameter name='unique-lrId' value="`$alt-unique-linkId + '-lrId-' + $label-restriction.index`" />\r
168                                                         </set>\r
169                                                         <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='label-restriction' \r
170       key='logical-link.link-name = $alt-unique-linkId\r
171       AND label-restriction.id = $unique-lrId' >\r
172                                                             <parameter name='id' value='`$unique-lrId`' />\r
173                                                             <parameter name='label-start' value='`$label-restriction.label-start`' />\r
174                                                             <parameter name='label-end' value='`$label-restriction.label-end`' />\r
175                                                             <parameter name='range-bitmap' value='`$label-restriction.range-bitmap`' />\r
176                                                             <parameter name='label-step' value='`$label-restriction.label-step`' />\r
177                                                             <parameter name='inclusive-exclusive' value='`$label-restriction.inclusive-exclusive`' />\r
178                                                             <outcome value='success'>\r
179                                                                 <block></block>\r
180                                                             </outcome>\r
181                                                             <outcome value='failure'>\r
182                                                                 <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='label-restriction' \r
183       key='logical-link.link-name = $alt-unique-linkId\r
184       AND label-restriction.id = $unique-lrId' >\r
185                                                                     <parameter name='id' value='`$unique-lrId`' />\r
186                                                                     <parameter name='label-start' value='`$label-restriction.label-start`' />\r
187                                                                     <parameter name='label-end' value='`$label-restriction.label-end`' />\r
188                                                                     <parameter name='range-bitmap' value='`$label-restriction.range-bitmap`' />\r
189                                                                     <parameter name='label-step' value='`$label-restriction.label-step`' />\r
190                                                                     <parameter name='inclusive-exclusive' value='`$label-restriction.inclusive-exclusive`' />\r
191                                                                 </update>\r
192                                                             </outcome>\r
193                                                         </save>\r
194                                                         <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link:relationship-list' \r
195       key='logical-link.link-name = $alt-unique-linkId' force="true" pfx="tmp.AnAI-data">\r
196                                                             <parameter name="relationship-list.relationship[$tidx].related-to" value="label-restriction" />\r
197                                                             <parameter name="relationship-list.relationship[$tidx].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`" />\r
198                                                             <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-key" value="label-restriction.id" />\r
199                                                             <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-value" value="`$unique-lrId`" />\r
200                                                         </save>\r
201                                                     </for>\r
202                                                 </outcome>\r
203                                             </switch>\r
204                                         </block>\r
205                                     </outcome>\r
206                                 </get-resource>\r
207                             </outcome>\r
208                             <outcome value='false'>\r
209                                 <block atomic='true'>\r
210                                     <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link' \r
211       key='logical-link.link-name = $unique-linkId' >\r
212                                         <parameter name='link-name' value='`$unique-linkId`' />\r
213                                         <parameter name='link-id' value='`$link.link-id`' />\r
214                                         <parameter name='link-type' value='`$link.te.te-link-attributes.access-type`' />\r
215                                     </save>\r
216                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
217                                         <parameter name="file" value="/opt/onap/logTopologyDiscovery.txt" />\r
218                                         <parameter name="field1" value="__TIMESTAMP__" />\r
219                                         <parameter name="field2" value="uniqueLinkId" />\r
220                                         <parameter name="field3" value="`$unique-linkId`" />\r
221                                         <parameter name="field4" value="srcTpId" />\r
222                                         <parameter name="field5" value="`$src-tpId`" />\r
223                                         <parameter name="field6" value="dstTpId" />\r
224                                         <parameter name="field7" value="`$dst-tpId`" />\r
225                                     </record>\r
226                                     <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link:relationship-list' \r
227       key='logical-link.link-name = $unique-linkId' force="true" pfx="tmp.AnAI-data">\r
228                                         <parameter name="relationship-list.relationship[0].related-to" value="p-interface" />\r
229                                         <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-src-node-Id + '/p-interfaces/p-interface/' + $src-tpId`" />\r
230                                         <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name" />\r
231                                         <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$src-tpId`" />\r
232                                         <parameter name="relationship-list.relationship[1].related-to" value="p-interface" />\r
233                                         <parameter name="relationship-list.relationship[1].related-link" value="`'/network/pnfs/pnf/' + $unique-dst-node-Id + '/p-interfaces/p-interface/' + $dst-tpId`" />\r
234                                         <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="p-interface.interface-name" />\r
235                                         <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="`$dst-tpId`" />\r
236                                     </save>\r
237                                     <switch test='`$link.te.te-link-attributes.label-restriction`'>\r
238                                         <outcome value=''>\r
239                                             <block></block>\r
240                                         </outcome>\r
241                                         <outcome value='Other'>\r
242                                             <for index='tidx' start='0' end='`$link.te.te-link-attributes.label-restriction_length`' >\r
243                                                 <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link:relationship-list' \r
244       key='logical-link.link-name = $unique-linkId' force="true" pfx="tmp.AnAI-data">\r
245                                                     <parameter name="relationship-list.relationship[$tidx].related-to" value="label-restriction" />\r
246                                                     <parameter name="relationship-list.relationship[$tidx].related-link" value="`'/network/label-restrictions/label-restriction/' + $unique-lrId`" />\r
247                                                     <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-key" value="label-restriction.id" />\r
248                                                     <parameter name="relationship-list.relationship[$tidx].relationship-data[0].relationship-value" value="`$unique-lrId`" />\r
249                                                 </save>\r
250                                                 <set>\r
251                                                     <parameter name='label-restriction.' value='`$link.te.te-link-attributes.label-restriction[$tidx].`' />\r
252                                                     <parameter name='unique-lrId' value="`$unique-linkId + '-lrId-' + $label-restriction.index`" />\r
253                                                 </set>\r
254                                                 <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='label-restriction' \r
255       key='logical-link.link-name = $unique-linkId\r
256       AND label-restriction.id = $unique-lrId' >\r
257                                                     <parameter name='id' value='`$unique-lrId`' />\r
258                                                     <parameter name='label-start' value='`$label-restriction.label-start`' />\r
259                                                     <parameter name='label-end' value='`$label-restriction.label-end`' />\r
260                                                     <parameter name='range-bitmap' value='`$label-restriction.range-bitmap`' />\r
261                                                     <parameter name='label-step' value='`$label-restriction.label-step`' />\r
262                                                     <parameter name='inclusive-exclusive' value='`$label-restriction.inclusive-exclusive`' />\r
263                                                     <outcome value='success'>\r
264                                                         <block></block>\r
265                                                     </outcome>\r
266                                                     <outcome value='failure'>\r
267                                                         <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='label-restriction' \r
268       key='logical-link.link-name = $unique-linkId\r
269       AND label-restriction.id = $unique-lrId' >\r
270                                                             <parameter name='id' value='`$unique-lrId`' />\r
271                                                             <parameter name='label-start' value='`$label-restriction.label-start`' />\r
272                                                             <parameter name='label-end' value='`$label-restriction.label-end`' />\r
273                                                             <parameter name='range-bitmap' value='`$label-restriction.range-bitmap`' />\r
274                                                             <parameter name='label-step' value='`$label-restriction.label-step`' />\r
275                                                             <parameter name='inclusive-exclusive' value='`$label-restriction.inclusive-exclusive`' />\r
276                                                         </update>\r
277                                                     </outcome>\r
278                                                 </save>\r
279                                             </for>\r
280                                         </outcome>\r
281                                     </switch>\r
282                                 </block>\r
283                             </outcome>\r
284                         </switch>\r
285                     </outcome>\r
286                 </switch>\r
287             </for>\r
288         </block>\r
289     </method>\r
290 </service-logic>