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