Adding local-link-connectivity-list (llcl) information to match ttp and tp locally...
[sdnc/oam.git] / platform-logic / datachange / src / main / xml / DataChange_update-network-to-aai.xml
1 <service-logic xsi:schemaLocation="http://www.onap.org/sdnc/svclogic ./svclogic.xsd" module="DataChange" version="${project.version}">\r
2     <method rpc="update-network-to-aai" mode="sync">\r
3         <block atomic="true">\r
4             <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="replace">\r
5                 <parameter name="source" value="`$network.network-id`"/>\r
6                 <parameter name="outputPath" value="tmp.original-network-id"/>\r
7                 <parameter name="target" value="/"/>\r
8                 <parameter name="replacement" value="-"/>\r
9             </execute>\r
10             <set>\r
11                 <parameter name="tmp.network-id" value="`$prop.sdncRestApi.thirdpartySdnc.id + '-' + $tmp.original-network-id`"/>\r
12             </set>\r
13             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="network-resource" key="network-resource.network-id = $tmp.network-id">\r
14                 <parameter name="network-id" value="`$tmp.network-id`"/>\r
15                 <parameter name="client-id" value="`$network.client-id`"/>\r
16                 <parameter name="te-topo-id" value="`$network.te-topology-id`"/>\r
17                 <parameter name="provider-id" value="`$network.provider-id`"/>\r
18                 <parameter name="network-type" value="`$network.network-types`"/>\r
19             </save>\r
20             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="esr-thirdparty-sdnc" key="esr-thirdparty-sdnc.thirdparty-sdnc-id = $prop.sdncRestApi.thirdpartySdnc.id AND depth = '1'" pfx="tmp.aai.esr-thirdparty-sdnc" local-only="false">\r
21                 <outcome value="success">\r
22                     <block>\r
23                         <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="network-resource:relationship-list" key="network-resource.network-id = $tmp.network-id" force="true" pfx="tmp.AnAI-data">\r
24                             <parameter name="relationship-list.relationship[0].related-to" value="esr-thirdparty-sdnc"/>\r
25                             <parameter name="relationship-list.relationship[0].related-link" value="`'/aai/v19/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/' + $prop.sdncRestApi.thirdpartySdnc.id`"/>\r
26                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="esr-thirdparty-sdnc.thirdparty-sdnc-id"/>\r
27                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.sdncRestApi.thirdpartySdnc.id`"/>\r
28                             <!--\r
29                             /aai/v19/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/SOTNControllerDomain2\r
30                             -->\r
31                         </save>\r
32                     </block>\r
33                 </outcome>\r
34                 <outcome value="not-found">\r
35                     <return status="failure">\r
36                         <parameter name="ack-final" value="Y"/>\r
37                         <parameter name="error-code" value="500"/>\r
38                         <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`"/>\r
39                     </return>\r
40                 </outcome>\r
41                 <outcome value="Other">\r
42                     <return status="failure">\r
43                         <parameter name="ack-final" value="Y"/>\r
44                         <parameter name="error-code" value="500"/>\r
45                         <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`"/>\r
46                     </return>\r
47                 </outcome>\r
48             </get-resource>\r
49             <for index="pidx" start="0" end="`$network.node_length`">\r
50                 <set>\r
51                     <parameter name="node." value=""/>\r
52                 </set>\r
53                 <set>\r
54                     <parameter name="node." value="`$network.node[$pidx].`"/>\r
55                     <parameter name="unique-networkId" value="`$tmp.network-id`"/>\r
56                 </set>\r
57                 <set>\r
58                     <parameter name="unique-nodeId" value="`'networkId-' + $unique-networkId + '-nodeId-' + $node.node-id`"/>\r
59                 </set>\r
60                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="pnf" key="pnf.pnf-name = $unique-nodeId">\r
61                     <parameter name="pnf-name" value="`$unique-nodeId`"/>\r
62                     <parameter name="pnf-id" value="`$node.node-id`"/>\r
63                     <parameter name="operational-status" value="`$node.te.oper-status`"/>\r
64                     <parameter name="admin-status" value="`$node.te.te-node-attributes.admin-status`"/>\r
65                     <parameter name="in-maint" value="true"/>\r
66                 </save>\r
67                 <switch test="`$node.termination-point_length`">\r
68                     <outcome value="">\r
69                         <block/>\r
70                     </outcome>\r
71                     <outcome value="0">\r
72                         <block/>\r
73                     </outcome>\r
74                     <outcome value="Other">\r
75                         <for index="tidx" start="0" end="`$node.termination-point_length`">\r
76                             <set>\r
77                                 <parameter name="tp." value=""/>\r
78                             </set>\r
79                             <set>\r
80                                 <parameter name="tp." value="`$node.termination-point[$tidx].`"/>\r
81                             </set>\r
82                             <set>\r
83                                 <parameter name="unique-ltpId" value="`$unique-nodeId + '-ltpId-' + $tp.te-tp-id`"/>\r
84                             </set>\r
85                             <switch test="`length($tp.te.inter-domain-plug-id) == 0`">\r
86                                 <outcome value="true">\r
87                                     <set>\r
88                                         <parameter name="tmp.decoded-plug-id" value=""/>\r
89                                     </set>\r
90                                 </outcome>\r
91                                 <outcome value="false">\r
92                                     <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="base64DecodingAlgo">\r
93                                         <parameter name="encodedValue" value="`$tp.te.inter-domain-plug-id`"/>\r
94                                         <parameter name="decodedValue" value="tmp.decoded-plug-id"/>\r
95                                         <outcome value="success">\r
96                                             <block/>\r
97                                         </outcome>\r
98                                         <outcome value="failure">\r
99                                             <set>\r
100                                                 <parameter name="tmp.decoded-plug-id" value="`$tp.te.inter-domain-plug-id`"/>\r
101                                             </set>\r
102                                         </outcome>\r
103                                     </execute>\r
104                                 </outcome>\r
105                             </switch>\r
106                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="p-interface" key="pnf.pnf-name = $unique-nodeId AND p-interface.interface-name = $unique-ltpId">\r
107                                 <parameter name="interface-name" value="`$unique-ltpId`"/>\r
108                                 <parameter name="network-ref" value="`$tp.supporting-termination-point[0].network-ref`"/>\r
109                                 <parameter name="transparent" value="`$tp.svc.supported-classification.transparent`"/>\r
110                                 <parameter name="speed-value" value="`$tp.te.interface-switching-capability[0].max-lsp-bandwidth[0].te-bandwidth.eth-bandwidth`"/>\r
111                                 <parameter name="operational-status" value="`$tp.te.oper-status`"/>\r
112                                 <parameter name="in-maint" value="true"/>\r
113                                 <parameter name="inter-layer-lock-id" value="`$tp.te.inter-layer-lock-id[0]`"/>\r
114                                 <!--\r
115                                 <parameter name='inter-domain-plug-id' value='`$tp.te.inter-domain-plug-id`' />\r
116                                 -->\r
117                                 <parameter name="inter-domain-plug-id" value="`$tmp.decoded-plug-id`"/>\r
118                                 <outcome value="success">\r
119                                     <block/>\r
120                                 </outcome>\r
121                                 <outcome value="failure">\r
122                                     <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="p-interface" key="pnf.pnf-name = $unique-nodeId AND p-interface.interface-name = $unique-ltpId">\r
123                                         <parameter name="interface-name" value="`$unique-ltpId`"/>\r
124                                         <parameter name="network-ref" value="`$tp.supporting-termination-point[0].network-ref`"/>\r
125                                         <parameter name="transparent" value="`$tp.svc.supported-classification.transparent`"/>\r
126                                         <parameter name="speed-value" value="`$tp.te.interface-switching-capability[0].max-lsp-bandwidth[0].te-bandwidth.eth-bandwidth`"/>\r
127                                         <parameter name="operational-status" value="`$tp.te.oper-status`"/>\r
128                                         <parameter name="in-maint" value="true"/>\r
129                                         <parameter name="inter-layer-lock-id" value="`$tp.te.inter-layer-lock-id[0]`"/>\r
130                                         <!--\r
131                                         <parameter name='inter-domain-plug-id' value='`$tp.te.inter-domain-plug-id`' />\r
132                                         -->\r
133                                         <parameter name="inter-domain-plug-id" value="`$tmp.decoded-plug-id`"/>\r
134                                     </update>\r
135                                 </outcome>\r
136                             </save>\r
137                         </for>\r
138                     </outcome>\r
139                 </switch>\r
140                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="pnf:relationship-list" key="pnf.pnf-name = $unique-nodeId" force="true" pfx="tmp.AnAI-data">\r
141                     <parameter name="relationship-list.relationship[0].related-to" value="network-resource"/>\r
142                     <parameter name="relationship-list.relationship[0].related-link" value="`'/network/network-resources/network-resource/' + $tmp.network-id`"/>\r
143                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="network-resource.network-id"/>\r
144                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.network-id`"/>\r
145                 </save>\r
146                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="esr-thirdparty-sdnc:relationship-list" key="esr-thirdparty-sdnc.thirdparty-sdnc-id = $prop.sdncRestApi.thirdpartySdnc.id" force="true" pfx="tmp.AnAI-data">\r
147                     <parameter name="relationship-list.relationship[0].related-to" value="pnf"/>\r
148                     <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $node.node-id`"/>\r
149                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="pnf.pnf-name"/>\r
150                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$node.node-id`"/>\r
151                 </save>\r
152                 <switch test="`$node.te.tunnel-termination-point_length`">\r
153                     <outcome value="">\r
154                         <block/>\r
155                     </outcome>\r
156                     <outcome value="0">\r
157                         <block/>\r
158                     </outcome>\r
159                     <outcome value="Other">\r
160                         <for index="ttidx" start="0" end="`$node.te.tunnel-termination-point_length`">\r
161                             <set>\r
162                                 <parameter name="ttp." value=""/>\r
163                             </set>\r
164                             <set>\r
165                                 <parameter name="ttp." value="`$node.te.tunnel-termination-point[$ttidx].`"/>\r
166                             </set>\r
167                             <set>\r
168                                 <parameter name="unique-ttpId" value="`$unique-nodeId + '-ttpId-' + $ttp.tunnel-tp-id`"/>\r
169                             </set>\r
170                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="tunnel-termination-point" key="tunnel-termination-point.ttp-id = $unique-ttpId">\r
171                                 <parameter name="ttp-id" value="`$unique-ttpId`"/>\r
172                                 <parameter name="tunnel-tp-id" value="`$ttp.tunnel-tp-id`"/>\r
173                                 <parameter name="name" value="`$ttp.name`"/>\r
174                                 <parameter name="admin-status" value="`$ttp.admin-status`"/>\r
175                                 <parameter name="oper-status" value="`$ttp.oper-status`"/>\r
176                                 <parameter name="inter-layer-lock-id" value="`$ttp.inter-layer-lock-id[0]`"/>\r
177                                 <parameter name="switching-capability" value="`$ttp.switching-capability`"/>\r
178                                 <parameter name="protection-type" value="`$ttp.protection-type`"/>\r
179                                 <parameter name="encoding" value="`$ttp.encoding`"/>\r
180                                 <outcome value="success">\r
181                                     <block/>\r
182                                 </outcome>\r
183                                 <outcome value="failure">\r
184                                     <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="tunnel-termination-point" key="tunnel-termination-point.ttp-id = $unique-ttpId">\r
185                                         <parameter name="ttp-id" value="`$unique-ttpId`"/>\r
186                                         <parameter name="tunnel-tp-id" value="`$ttp.tunnel-tp-id`"/>\r
187                                         <parameter name="name" value="`$ttp.name`"/>\r
188                                         <parameter name="admin-status" value="`$ttp.admin-status`"/>\r
189                                         <parameter name="oper-status" value="`$ttp.oper-status`"/>\r
190                                         <parameter name="inter-layer-lock-id" value="`$ttp.inter-layer-lock-id[0]`"/>\r
191                                         <parameter name="switching-capability" value="`$ttp.switching-capability`"/>\r
192                                         <parameter name="protection-type" value="`$ttp.protection-type`"/>\r
193                                         <parameter name="encoding" value="`$ttp.encoding`"/>\r
194                                     </update>\r
195                                 </outcome>\r
196                             </save>\r
197                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="pnf:relationship-list" key="pnf.pnf-name = $unique-nodeId" force="true" pfx="tmp.AnAI-data">\r
198                                 <parameter name="relationship-list.relationship[0].related-to" value="tunnel-termination-point"/>\r
199                                 <!--\r
200                                 <parameter name="relationship-list.relationship[$ttidx].related-link" value="`'/network/network-resources/network-resource/' + $tmp.network-id + '/pnfs/pnf/' + $node.node-id '/tunnel-termination-points/tunnel-termination-point/' + $unique-ttpId`" />\r
201                                 -->\r
202                                 <parameter name="relationship-list.relationship[0].related-link" value="`'/network/tunnel-termination-points/tunnel-termination-point/' + $unique-ttpId`"/>\r
203                                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="tunnel-termination-point.ttp-id"/>\r
204                                 <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-ttpId`"/>\r
205                                 <outcome value="success">\r
206                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
207                                         <parameter name="file" value="/opt/onap/logTopologyDiscovery.txt"/>\r
208                                         <parameter name="field1" value="__TIMESTAMP__"/>\r
209                                         <parameter name="field2" value="sucess executing Hesam log file"/>\r
210                                         <parameter name="field3" value="`$node.te.tunnel-termination-point_length`"/>\r
211                                         <parameter name="field4" value="`$node.termination-point_length`"/>\r
212                                         <parameter name="field5" value="sucessfully saved ttp"/>\r
213                                         <parameter name="field6" value="`relationship-list.relationship[$ttidx].related-link`"/>\r
214                                     </record>\r
215                                 </outcome>\r
216                                 <outcome value="failure">\r
217                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
218                                         <parameter name="file" value="/opt/onap/logTopologyDiscovery.txt"/>\r
219                                         <parameter name="field1" value="__TIMESTAMP__"/>\r
220                                         <parameter name="field2" value="sucess executing Hesam log file"/>\r
221                                         <parameter name="field3" value="`$node.te.tunnel-termination-point_length`"/>\r
222                                         <parameter name="field4" value="`$node.termination-point_length`"/>\r
223                                         <parameter name="field5" value="failuire on saving ttp"/>\r
224                                         <parameter name="field6" value="`relationship-list.relationship[$ttidx].related-link`"/>\r
225                                     </record>\r
226                                 </outcome>\r
227                             </save>\r
228                             <switch test="`$node.te.tunnel-termination-point[$ttidx].local-link-connectivities.local-link-connectivity_length`">\r
229                                 <outcome value="">\r
230                                     <block/>\r
231                                 </outcome>\r
232                                 <outcome value="0">\r
233                                     <block/>\r
234                                 </outcome>\r
235                                 <outcome value="Other">\r
236                                     <block>\r
237                                         <set>\r
238                                             <parameter name="unique-ltpId-second" value="`$unique-nodeId + '-ltpId-' + $node.te.tunnel-termination-point[$ttidx].local-link-connectivities.local-link-connectivity[0].link-tp-ref`"/>\r
239                                         </set>\r
240                                         <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="tunnel-termination-point:relationship-list" key="tunnel-termination-point.ttp-id = $unique-ttpId" force="true" pfx="tmp.AnAI-data">\r
241                                             <parameter name="relationship-list.relationship[0].related-to" value="p-interface"/>\r
242                                             <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $unique-nodeId + '/p-interfaces/p-interface/' + $unique-ltpId-second`"/>\r
243                                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="p-interface.interface-name"/>\r
244                                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-ltpId-second`"/>\r
245                                         </save>\r
246                                     </block>\r
247                                 </outcome>\r
248                             </switch>\r
249                         </for>\r
250                     </outcome>\r
251                 </switch>\r
252                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
253                     <parameter name="file" value="/opt/onap/logTopologyDiscovery.txt"/>\r
254                     <parameter name="field1" value="__TIMESTAMP__"/>\r
255                     <parameter name="field2" value="sucess executing Hesam log file"/>\r
256                     <parameter name="field3" value="`$node.te.tunnel-termination-point_length`"/>\r
257                     <parameter name="field4" value="`$node.termination-point_length`"/>\r
258                 </record>\r
259             </for>\r
260             <call module="DataChange" rpc="update-network-links-to-aai" mode="sync"/>\r
261         </block>\r
262     </method>\r
263 </service-logic>