Bug fixing in topology discovery as part of CCVPN (Cross-Layer Cross-Domain VPN)...
[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             <for index="pidx" start="0" end="`$network.node_length`">\r
21                 <set>\r
22                     <parameter name="node." value=""/>\r
23                 </set>\r
24                 <set>\r
25                     <parameter name="node." value="`$network.node[$pidx].`"/>\r
26                     <parameter name="unique-networkId" value="`$tmp.network-id`"/>\r
27                 </set>\r
28                 <set>\r
29                     <parameter name="unique-nodeId" value="`'networkId-' + $unique-networkId + '-nodeId-' + $node.node-id`"/>\r
30                 </set>\r
31                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="pnf" key="pnf.pnf-name = $unique-nodeId">\r
32                     <parameter name="pnf-name" value="`$unique-nodeId`"/>\r
33                     <parameter name="pnf-id" value="`$node.node-id`"/>\r
34                     <parameter name="operational-status" value="`$node.te.oper-status`"/>\r
35                     <parameter name="admin-status" value="`$node.te.te-node-attributes.admin-status`"/>\r
36                     <parameter name="in-maint" value="true"/>\r
37                 </save>\r
38                 <switch test="`$node.te.tunnel-termination-point_length`">\r
39                     <outcome value="">\r
40                         <block/>\r
41                     </outcome>\r
42                     <outcome value="0">\r
43                         <block/>\r
44                     </outcome>\r
45                     <outcome value="Other">\r
46                         <for index="ttidx" start="0" end="`$node.te.tunnel-termination-point_length`">\r
47                             <set>\r
48                                 <parameter name="ttp." value=""/>\r
49                             </set>\r
50                             <set>\r
51                                 <parameter name="ttp." value="`$node.te.tunnel-termination-point[$ttidx].`"/>\r
52                             </set>\r
53                             <set>\r
54                                 <parameter name="unique-ttpId" value="`$unique-nodeId + '-ttpId-' + $ttp.tunnel-tp-id`"/>\r
55                             </set>\r
56                             <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="tunnel-termination-point" key="tunnel-termination-point.ttp-id = $unique-ttpId">\r
57                                 <parameter name="ttp-id" value="`$unique-ttpId`"/>\r
58                                 <parameter name="tunnel-tp-id" value="`$ttp.tunnel-tp-id`"/>\r
59                                 <parameter name="name" value="`$ttp.name`"/>\r
60                                 <parameter name="admin-status" value="`$ttp.admin-status`"/>\r
61                                 <parameter name="oper-status" value="`$ttp.oper-status`"/>\r
62                                 <parameter name="inter-layer-lock-id" value="`$ttp.inter-layer-lock-id`"/>\r
63                                 <parameter name="switching-capability" value="`$ttp.switching-capability`"/>\r
64                                 <parameter name="protection-type" value="`$ttp.protection-type`"/>\r
65                                 <parameter name="encoding" value="`$ttp.encoding`"/>\r
66                                 <outcome value="success">\r
67                                     <block/>\r
68                                 </outcome>\r
69                                 <outcome value="failure">\r
70                                     <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="tunnel-termination-point" key="tunnel-termination-point.ttp-id = $unique-ttpId">\r
71                                         <parameter name="ttp-id" value="`$unique-ttpId`"/>\r
72                                         <parameter name="tunnel-tp-id" value="`$ttp.tunnel-tp-id`"/>\r
73                                         <parameter name="name" value="`$ttp.name`"/>\r
74                                         <parameter name="admin-status" value="`$ttp.admin-status`"/>\r
75                                         <parameter name="oper-status" value="`$ttp.oper-status`"/>\r
76                                         <parameter name="inter-layer-lock-id" value="`$ttp.inter-layer-lock-id`"/>\r
77                                         <parameter name="switching-capability" value="`$ttp.switching-capability`"/>\r
78                                         <parameter name="protection-type" value="`$ttp.protection-type`"/>\r
79                                         <parameter name="encoding" value="`$ttp.encoding`"/>\r
80                                     </update>\r
81                                 </outcome>\r
82                             </save>\r
83                             <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
84                                 <parameter name="`relationship-list.relationship[$ttidx].related-to`" value="tunnel-termination-point"/>\r
85                                 <!--\r
86                                 <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
87                                 -->\r
88                                 <parameter name="`relationship-list.relationship[$ttidx].related-link`" value="`'/network/tunnel-termination-points/tunnel-termination-point/' + $unique-ttpId`"/>\r
89                                 <parameter name="`relationship-list.relationship[$ttidx].relationship-data[0].relationship-key`" value="tunnel-termination-point.ttp-id"/>\r
90                                 <parameter name="`relationship-list.relationship[$ttidx].relationship-data[0].relationship-value`" value="`$unique-ttpId`"/>\r
91                                 <outcome value="success">\r
92                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
93                                         <parameter name="file" value="/opt/onap/logTopologyDiscovery.txt"/>\r
94                                         <parameter name="field1" value="__TIMESTAMP__"/>\r
95                                         <parameter name="field2" value="sucess executing Hesam log file"/>\r
96                                         <parameter name="field3" value="`$node.te.tunnel-termination-point_length`"/>\r
97                                         <parameter name="field4" value="`$node.termination-point_length`"/>\r
98                                         <parameter name="field5" value="sucessfully saved ttp"/>\r
99                                         <parameter name="field6" value="`relationship-list.relationship[$ttidx].related-link`"/>\r
100                                     </record>\r
101                                 </outcome>\r
102                                 <outcome value="failure">\r
103                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
104                                         <parameter name="file" value="/opt/onap/logTopologyDiscovery.txt"/>\r
105                                         <parameter name="field1" value="__TIMESTAMP__"/>\r
106                                         <parameter name="field2" value="sucess executing Hesam log file"/>\r
107                                         <parameter name="field3" value="`$node.te.tunnel-termination-point_length`"/>\r
108                                         <parameter name="field4" value="`$node.termination-point_length`"/>\r
109                                         <parameter name="field5" value="failuire on saving ttp"/>\r
110                                         <parameter name="field6" value="`relationship-list.relationship[$ttidx].related-link`"/>\r
111                                     </record>\r
112                                 </outcome>\r
113                             </save>\r
114                         </for>\r
115                     </outcome>\r
116                 </switch>\r
117                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
118                     <parameter name="file" value="/opt/onap/logTopologyDiscovery.txt"/>\r
119                     <parameter name="field1" value="__TIMESTAMP__"/>\r
120                     <parameter name="field2" value="sucess executing Hesam log file"/>\r
121                     <parameter name="field3" value="`$node.te.tunnel-termination-point_length`"/>\r
122                     <parameter name="field4" value="`$node.termination-point_length`"/>\r
123                 </record>\r
124                 <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
125                     <parameter name="relationship-list.relationship[0].related-to" value="network-resource"/>\r
126                     <parameter name="relationship-list.relationship[0].related-link" value="`'/network/network-resources/network-resource/' + $tmp.network-id`"/>\r
127                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="network-resource.network-id"/>\r
128                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.network-id`"/>\r
129                 </save>\r
130                 <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
131                     <parameter name="relationship-list.relationship[0].related-to" value="pnf"/>\r
132                     <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $node.node-id`"/>\r
133                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="pnf.pnf-name"/>\r
134                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$node.node-id`"/>\r
135                 </save>\r
136                 <switch test="`$node.termination-point_length`">\r
137                     <outcome value="">\r
138                         <block/>\r
139                     </outcome>\r
140                     <outcome value="0">\r
141                         <block/>\r
142                     </outcome>\r
143                     <outcome value="Other">\r
144                         <for index="tidx" start="0" end="`$node.termination-point_length`">\r
145                             <set>\r
146                                 <parameter name="tp." value=""/>\r
147                             </set>\r
148                             <set>\r
149                                 <parameter name="tp." value="`$node.termination-point[$tidx].`"/>\r
150                             </set>\r
151                             <set>\r
152                                 <parameter name="unique-ltpId" value="`$unique-nodeId + '-ltpId-' + $tp.te-tp-id`"/>\r
153                             </set>\r
154                             <switch test="`length($tp.te.inter-domain-plug-id) == 0`">\r
155                                 <outcome value="true">\r
156                                     <set>\r
157                                         <parameter name="tmp.decoded-plug-id" value=""/>\r
158                                     </set>\r
159                                 </outcome>\r
160                                 <outcome value="false">\r
161                                     <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="base64DecodingAlgo">\r
162                                         <parameter name="encodedValue" value="`$tp.te.inter-domain-plug-id`"/>\r
163                                         <parameter name="decodedValue" value="tmp.decoded-plug-id"/>\r
164                                         <outcome value="success">\r
165                                             <block/>\r
166                                         </outcome>\r
167                                         <outcome value="failure">\r
168                                             <set>\r
169                                                 <parameter name="tmp.decoded-plug-id" value="`$tp.te.inter-domain-plug-id`"/>\r
170                                             </set>\r
171                                         </outcome>\r
172                                     </execute>\r
173                                 </outcome>\r
174                             </switch>\r
175                             <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
176                                 <parameter name="interface-name" value="`$unique-ltpId`"/>\r
177                                 <parameter name="network-ref" value="`$tp.supporting-termination-point[0].network-ref`"/>\r
178                                 <parameter name="transparent" value="`$tp.svc.supported-classification.transparent`"/>\r
179                                 <parameter name="speed-value" value="`$tp.te.interface-switching-capability[0].max-lsp-bandwidth[0].te-bandwidth.eth-bandwidth`"/>\r
180                                 <parameter name="operational-status" value="`$tp.te.oper-status`"/>\r
181                                 <parameter name="in-maint" value="true"/>\r
182                                 <parameter name="inter-layer-lock-id" value="`$tp.te.inter-layer-lock-id[0]`"/>\r
183                                 <!--\r
184                                 <parameter name='inter-domain-plug-id' value='`$tp.te.inter-domain-plug-id`' />\r
185                                 -->\r
186                                 <parameter name="inter-domain-plug-id" value="`$tmp.decoded-plug-id`"/>\r
187                                 <outcome value="success">\r
188                                     <block/>\r
189                                 </outcome>\r
190                                 <outcome value="failure">\r
191                                     <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
192                                         <parameter name="interface-name" value="`$unique-ltpId`"/>\r
193                                         <parameter name="network-ref" value="`$tp.supporting-termination-point[0].network-ref`"/>\r
194                                         <parameter name="transparent" value="`$tp.svc.supported-classification.transparent`"/>\r
195                                         <parameter name="speed-value" value="`$tp.te.interface-switching-capability[0].max-lsp-bandwidth[0].te-bandwidth.eth-bandwidth`"/>\r
196                                         <parameter name="operational-status" value="`$tp.te.oper-status`"/>\r
197                                         <parameter name="in-maint" value="true"/>\r
198                                         <parameter name="inter-layer-lock-id" value="`$tp.te.inter-layer-lock-id[0]`"/>\r
199                                         <!--\r
200                                         <parameter name='inter-domain-plug-id' value='`$tp.te.inter-domain-plug-id`' />\r
201                                         -->\r
202                                         <parameter name="inter-domain-plug-id" value="`$tmp.decoded-plug-id`"/>\r
203                                     </update>\r
204                                 </outcome>\r
205                             </save>\r
206                         </for>\r
207                     </outcome>\r
208                 </switch>\r
209             </for>\r
210             <call module="DataChange" rpc="update-network-links-to-aai" mode="sync"/>\r
211         </block>\r
212     </method>\r
213 </service-logic>