Bug fixing in topology discovery as part of CCVPN (Cross-Layer Cross-Domain VPN)...
[sdnc/oam.git] / platform-logic / datachange / src / main / xml / DataChange_esr-thirdparty-sdnc-discovery-of-zte.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='esr-thirdparty-sdnc-discovery-of-zte' mode='sync'>\r
5         <block atomic='true'>\r
6             <switch test="`$data-change-notification-input.aai-event-trigger`">\r
7                 <outcome value='Update'>\r
8                     <block>\r
9                         <switch test="`$zte.prop.sdncRestApi.type`">\r
10                             <outcome value='SOTN'>\r
11                                 <block atomic='true'>\r
12                                     <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
13                                         <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
14                                         <parameter name='contextPrefix' value='prop' />\r
15                                     </execute>\r
16                                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
17                                         <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/getzteodutopotemplate.json'`" />\r
18                                         <parameter name="restapiUrl" value="`$zte.prop.sdncRestApi.thirdpartySdnc.url + '/restconf/operations/ZTE-API-Topology:get-topology-details'`" />\r
19                                         <parameter name="restapiUser" value="`$zte.prop.sdncRestApi.thirdpartySdnc.user`" />\r
20                                         <parameter name="restapiPassword" value="`$zte.prop.sdncRestApi.thirdpartySdnc.password`" />\r
21                                         <parameter name="format" value="json"/>\r
22                                         <parameter name="httpMethod" value="POST"/>\r
23                                         <parameter name="responsePrefix" value="ztetopology"/>\r
24                                         <outcome value='success'>\r
25                                             <block atomic="true"></block>\r
26                                         </outcome>\r
27                                         <outcome value='failure'>\r
28                                             <return status='failure'>\r
29                                                 <parameter name='ack-final' value='Y'/>\r
30                                                 <parameter name="error-code" value="500" />\r
31                                                 <parameter name="error-message" value="Error executing Get odutopo rest api" />\r
32                                             </return>\r
33                                         </outcome>\r
34                                     </execute>\r
35                                     <for index='nidx' start='0' end='`$ztetopology.output.topology.node-ref-id_length`' >\r
36                                         <block>\r
37                                             <set>\r
38                                                 <parameter name='prop.zte.odutopo.name' value='`$ztetopology.output.topology.node-ref-id[$nidx]`' />\r
39                                             </set>\r
40                                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
41                                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/getzteodutoponodetemplate.json'`" />\r
42                                                 <parameter name="restapiUrl" value="`$zte.prop.sdncRestApi.thirdpartySdnc.url + '/restconf/operations/ZTE-API-Topology:get-topology-details'`" />\r
43                                                 <parameter name="restapiUser" value="`$zte.prop.sdncRestApi.thirdpartySdnc.user`" />\r
44                                                 <parameter name="restapiPassword" value="`$zte.prop.sdncRestApi.thirdpartySdnc.password`" />\r
45                                                 <parameter name="format" value="json"/>\r
46                                                 <parameter name="httpMethod" value="POST"/>\r
47                                                 <parameter name="responsePrefix" value="ztetopologynode"/>\r
48                                                 <outcome value='failure'>\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="Error executing Get odutopo node rest api" />\r
53                                                     </return>\r
54                                                 </outcome>\r
55                                                 <outcome value='success'>\r
56                                                     <switch test="`$ztetopologynode.output.topology.layer-protocol-name[0] == 'ODU'`">\r
57                                                         <outcome value='false'>\r
58                                                             <block></block>\r
59                                                         </outcome>\r
60                                                         <outcome value='true'>\r
61                                                             <block>\r
62                                                                 <set>\r
63                                                                     <parameter name='prop.zte.network-id' value="zteNetwork" />\r
64                                                                     <parameter name='prop.zte.client-id' value="zteClient1" />\r
65                                                                     <parameter name='prop.zte.topo-id' value="zteTopo1" />\r
66                                                                     <parameter name='prop.zte.provider-id' value="zteProvider1" />\r
67                                                                 </set>\r
68                                                                 <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='network-resource'  \r
69      key='network-resource.network-id = $prop.zte.network-id' >\r
70                                                                     <parameter name='network-id' value='`$prop.zte.network-id`' />\r
71                                                                     <parameter name='client-id' value='`$prop.zte.client-id`' />\r
72                                                                     <parameter name='te-topo-id' value='`$prop.zte.topo-id`' />\r
73                                                                     <parameter name='provider-id' value='`$prop.zte.provider-id`' />\r
74                                                                 </save>\r
75                                                                 <for index='pidx' start='0' end='`$ztetopologynode.output.topology.node-ref-id_length`' >\r
76                                                                     <block>\r
77                                                                         <set>\r
78                                                                             <parameter name='prop.zte.odutopo.node.name' value='`$ztetopologynode.output.topology.node-ref-id[$pidx]`' />\r
79                                                                         </set>\r
80                                                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
81                                                                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/getzteodutoponodedetailstemplate.json'`" />\r
82                                                                             <parameter name="restapiUrl" value="`$zte.prop.sdncRestApi.thirdpartySdnc.url + '/restconf/operations/ZTE-API-Topology:get-node-details'`" />\r
83                                                                             <parameter name="restapiUser" value="`$zte.prop.sdncRestApi.thirdpartySdnc.user`" />\r
84                                                                             <parameter name="restapiPassword" value="`$zte.prop.sdncRestApi.thirdpartySdnc.password`" />\r
85                                                                             <parameter name="format" value="json"/>\r
86                                                                             <parameter name="httpMethod" value="POST"/>\r
87                                                                             <parameter name="responsePrefix" value="ztetopologynodedetails"/>\r
88                                                                             <outcome value='failure'>\r
89                                                                                 <return status='failure'>\r
90                                                                                     <parameter name='ack-final' value='Y'/>\r
91                                                                                     <parameter name="error-code" value="500" />\r
92                                                                                     <parameter name="error-message" value="Error executing Get odutopo node details rest api" />\r
93                                                                                 </return>\r
94                                                                             </outcome>\r
95                                                                             <outcome value='success'>\r
96                                                                                 <block>\r
97                                                                                     <switch test="`$ztetopologynodedetails.output.node.global-state-pac.operational-state == 'ENABLED'`">\r
98                                                                                         <outcome value='true'>\r
99                                                                                             <switch test="`$ztetopologynodedetails.output.node.global-state-pac.administrative-state == 'LOCKED'`">\r
100                                                                                                 <outcome value='true'>\r
101                                                                                                     <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf' \r
102       key='pnf.pnf-name = $ztetopologynodedetails.output.node.uuid' >\r
103                                                                                                         <parameter name='pnf-name' value='`$ztetopologynodedetails.output.node.uuid`' />\r
104                                                                                                         <parameter name='pnf-id' value='`$ztetopologynodedetails.output.node.uuid`' />\r
105                                                                                                         <parameter name='operational-status' value="up" />\r
106                                                                                                         <parameter name='admin-status' value="up" />\r
107                                                                                                         <parameter name='in-maint' value='true' />\r
108                                                                                                     </save>\r
109                                                                                                 </outcome>\r
110                                                                                                 <outcome value='false'>\r
111                                                                                                     <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf' \r
112       key='pnf.pnf-name = $ztetopologynodedetails.output.node.uuid' >\r
113                                                                                                         <parameter name='pnf-name' value='`$ztetopologynodedetails.output.node.uuid`' />\r
114                                                                                                         <parameter name='pnf-id' value='`$ztetopologynodedetails.output.node.uuid`' />\r
115                                                                                                         <parameter name='operational-status' value="up" />\r
116                                                                                                         <parameter name='admin-status' value="down" />\r
117                                                                                                         <parameter name='in-maint' value='true' />\r
118                                                                                                     </save>\r
119                                                                                                 </outcome>\r
120                                                                                             </switch>\r
121                                                                                         </outcome>\r
122                                                                                         <outcome value='false'>\r
123                                                                                             <switch test="`$ztetopologynodedetails.output.node.global-state-pac.administrative-state == 'LOCKED'`">\r
124                                                                                                 <outcome value='true'>\r
125                                                                                                     <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf' \r
126       key='pnf.pnf-name = $ztetopologynodedetails.output.node.uuid' >\r
127                                                                                                         <parameter name='pnf-name' value='`$ztetopologynodedetails.output.node.uuid`' />\r
128                                                                                                         <parameter name='pnf-id' value='`$ztetopologynodedetails.output.node.uuid`' />\r
129                                                                                                         <parameter name='operational-status' value="down" />\r
130                                                                                                         <parameter name='admin-status' value="up" />\r
131                                                                                                         <parameter name='in-maint' value='true' />\r
132                                                                                                     </save>\r
133                                                                                                 </outcome>\r
134                                                                                                 <outcome value='false'>\r
135                                                                                                     <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf' \r
136       key='pnf.pnf-name = $ztetopologynodedetails.output.node.uuid' >\r
137                                                                                                         <parameter name='pnf-name' value='`$ztetopologynodedetails.output.node.uuid`' />\r
138                                                                                                         <parameter name='pnf-id' value='`$ztetopologynodedetails.output.node.uuid`' />\r
139                                                                                                         <parameter name='operational-status' value="down" />\r
140                                                                                                         <parameter name='admin-status' value="down" />\r
141                                                                                                         <parameter name='in-maint' value='true' />\r
142                                                                                                     </save>\r
143                                                                                                 </outcome>\r
144                                                                                             </switch>\r
145                                                                                         </outcome>\r
146                                                                                     </switch>\r
147                                                                                     <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf:relationship-list' \r
148       key='pnf.pnf-name = $ztetopologynodedetails.output.node.uuid' force="true" pfx="tmp.AnAI-data">\r
149                                                                                         <parameter name="relationship-list.relationship[0].related-to" value="network-resource" />\r
150                                                                                         <parameter name="relationship-list.relationship[0].related-link" value="`'/network/network-resources/network-resource/' + $prop.zte.network-id`" />\r
151                                                                                         <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="network-resource.network-id" />\r
152                                                                                         <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.zte.network-id`" />\r
153                                                                                     </save>\r
154                                                                                     <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='esr-thirdparty-sdnc:relationship-list' \r
155       key='esr-thirdparty-sdnc.thirdparty-sdnc-id = $zte.prop.sdncRestApi.thirdpartySdnc.id' \r
156       force="true" pfx="tmp.AnAI-data">\r
157                                                                                         <parameter name="relationship-list.relationship[0].related-to" value="pnf" />\r
158                                                                                         <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $ztetopologynodedetails.output.node.uuid`" />\r
159                                                                                         <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="pnf.pnf-name" />\r
160                                                                                         <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$ztetopologynodedetails.output.node.uuid`" />\r
161                                                                                     </save>\r
162                                                                                     <for index='ridx' start='0' end='`$ztetopologynodedetails.output.node.node-edge-point-id_length`' >\r
163                                                                                         <block>\r
164                                                                                             <set>\r
165                                                                                                 <parameter name='prop.zte.odutopo.node.nep.uuid' value='`$ztetopologynodedetails.output.node.node-edge-point-id[$ridx]`' />\r
166                                                                                             </set>\r
167                                                                                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
168                                                                                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/getzteodutoponodenepdetailstemplate.json'`" />\r
169                                                                                                 <parameter name="restapiUrl" value="`$zte.prop.sdncRestApi.thirdpartySdnc.url + '/restconf/operations/ZTE-API-Topology:get-node-edge-point-details'`" />\r
170                                                                                                 <parameter name="restapiUser" value="`$zte.prop.sdncRestApi.thirdpartySdnc.user`" />\r
171                                                                                                 <parameter name="restapiPassword" value="`$zte.prop.sdncRestApi.thirdpartySdnc.password`" />\r
172                                                                                                 <parameter name="format" value="json"/>\r
173                                                                                                 <parameter name="httpMethod" value="POST"/>\r
174                                                                                                 <parameter name="responsePrefix" value="ztetopologynodenepdetails"/>\r
175                                                                                                 <outcome value='failure'>\r
176                                                                                                     <return status='failure'>\r
177                                                                                                         <parameter name='ack-final' value='Y'/>\r
178                                                                                                         <parameter name="error-code" value="500" />\r
179                                                                                                         <parameter name="error-message" value="Error executing Get odutopo node edge point details rest api" />\r
180                                                                                                     </return>\r
181                                                                                                 </outcome>\r
182                                                                                                 <outcome value='success'>\r
183                                                                                                     <for index='tidx' start='0' end='`$ztetopologynodenepdetails.output.node-edge-point.name_length`' >\r
184                                                                                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >\r
185                                                                                                             <parameter name="source" value="`$ztetopologynodenepdetails.node-edge-point.name[tidx].value`"/>\r
186                                                                                                             <parameter name="target" value="client"/>\r
187                                                                                                             <outcome value='failure'>\r
188                                                                                                                 <block></block>\r
189                                                                                                             </outcome>\r
190                                                                                                             <outcome value='success'>\r
191                                                                                                                 <block>\r
192                                                                                                                     <set>\r
193                                                                                                                         <parameter name='zte-unique-ltpId' value="`'nodeId-' + $ztetopologynodedetails.output.node.uuid + '-ltpId-' + $ztetopologynodenepdetails.output.node-edge-point.uuid`" />\r
194                                                                                                                     </set>\r
195                                                                                                                     <set>\r
196                                                                                                                         <parameter name='zte-bandwidth' value='`1250000000 * $ztetopologynodenepdetails.output.node-edge-point.lp[0].odu-nep-pac.odu-capacity`' />\r
197                                                                                                                     </set>\r
198                                                                                                                     <switch test="`$ztetopologynodedetails.output.node.global-state-pac.operational-state == 'ENABLED'`">\r
199                                                                                                                         <outcome value='true'>\r
200                                                                                                                             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='p-interface' \r
201       key='pnf.pnf-name = $ztetopologynodedetails.output.node.uuid\r
202       AND p-interface.interface-name = $zte-unique-ltpId' >\r
203                                                                                                                                 <parameter name='interface-name' value='`$zte-unique-ltpId`' />\r
204                                                                                                                                 <parameter name='network-ref' value="`'providerId/' + $prop.zte.provider-id + '/topologyId/' + $prop.zte.topo-id + '/clientId/' + $prop.zte.client-id`" />\r
205                                                                                                                                 <parameter name='transparent' value="true" />\r
206                                                                                                                                 <parameter name='speed-value' value='`$zte-bandwidth`' />\r
207                                                                                                                                 <parameter name='operational-status' value="up" />\r
208                                                                                                                                 <parameter name='in-maint' value="true" />\r
209                                                                                                                                 <outcome value='success'>\r
210                                                                                                                                     <block></block>\r
211                                                                                                                                 </outcome>\r
212                                                                                                                                 <outcome value='failure'>\r
213                                                                                                                                     <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='p-interface' \r
214       key='pnf.pnf-name = $ztetopologynodedetails.output.node.uuid\r
215       AND p-interface.interface-name = $zte-unique-ltpId' >\r
216                                                                                                                                         <parameter name='interface-name' value='`$zte-unique-ltpId`' />\r
217                                                                                                                                         <parameter name='network-ref' value="`'providerId/' + $prop.zte.provider-id + '/topologyId/' + $prop.zte.topo-id + '/clientId/' + $prop.zte.client-id`" />\r
218                                                                                                                                         <parameter name='transparent' value="true" />\r
219                                                                                                                                         <parameter name='speed-value' value='`$zte-bandwidth`' />\r
220                                                                                                                                         <parameter name='operational-status' value="up" />\r
221                                                                                                                                         <parameter name='in-maint' value="true" />\r
222                                                                                                                                     </save>\r
223                                                                                                                                 </outcome>\r
224                                                                                                                             </save>\r
225                                                                                                                         </outcome>\r
226                                                                                                                         <outcome value='false'>\r
227                                                                                                                             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='p-interface' \r
228       key='pnf.pnf-name = $ztetopologynodedetails.output.node.uuid\r
229       AND p-interface.interface-name = $zte-unique-ltpId' >\r
230                                                                                                                                 <parameter name='interface-name' value='`$zte-unique-ltpId`' />\r
231                                                                                                                                 <parameter name='network-ref' value="`'providerId/' + $prop.zte.provider-id + '/topologyId/' + $prop.zte.topo-id + '/clientId/' + $prop.zte.client-id`" />\r
232                                                                                                                                 <parameter name='transparent' value="true" />\r
233                                                                                                                                 <parameter name='speed-value' value='`$zte-bandwidth`' />\r
234                                                                                                                                 <parameter name='operational-status' value="down" />\r
235                                                                                                                                 <parameter name='in-maint' value="true" />\r
236                                                                                                                                 <outcome value='success'>\r
237                                                                                                                                     <block></block>\r
238                                                                                                                                 </outcome>\r
239                                                                                                                                 <outcome value='failure'>\r
240                                                                                                                                     <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='p-interface' \r
241       key='pnf.pnf-name = $ztetopologynodedetails.output.node.uuid\r
242       AND p-interface.interface-name = $zte-unique-ltpId' >\r
243                                                                                                                                         <parameter name='interface-name' value='`$zte-unique-ltpId`' />\r
244                                                                                                                                         <parameter name='network-ref' value="`'providerId/' + $prop.zte.provider-id + '/topologyId/' + $prop.zte.topo-id + '/clientId/' + $prop.zte.client-id`" />\r
245                                                                                                                                         <parameter name='transparent' value="true" />\r
246                                                                                                                                         <parameter name='speed-value' value='`$zte-bandwidth`' />\r
247                                                                                                                                         <parameter name='operational-status' value="up" />\r
248                                                                                                                                         <parameter name='in-maint' value="true" />\r
249                                                                                                                                     </save>\r
250                                                                                                                                 </outcome>\r
251                                                                                                                             </save>\r
252                                                                                                                         </outcome>\r
253                                                                                                                     </switch>\r
254                                                                                                                 </block>\r
255                                                                                                             </outcome>\r
256                                                                                                         </execute>\r
257                                                                                                     </for>\r
258                                                                                                 </outcome>\r
259                                                                                             </execute>\r
260                                                                                         </block>\r
261                                                                                     </for>\r
262                                                                                 </block>\r
263                                                                             </outcome>\r
264                                                                         </execute>\r
265                                                                     </block>\r
266                                                                 </for>\r
267                                                             </block>\r
268                                                         </outcome>\r
269                                                     </switch>\r
270                                                 </outcome>\r
271                                             </execute>\r
272                                         </block>\r
273                                     </for>\r
274                                 </block>\r
275                             </outcome>\r
276                             <outcome value='Other'>\r
277                                 <return status='failure'>\r
278                                     <parameter name='ack-final' value='Y'/>\r
279                                     <parameter name='error-code' value="500" />\r
280                                     <parameter name='error-message' value="`'Unsupported type = ' + $prop.sdncRestApi.type`" />\r
281                                 </return>\r
282                             </outcome>\r
283                         </switch>\r
284                     </block>\r
285                 </outcome>\r
286                 <outcome value='delete'>\r
287                     <block atomic='true'></block>\r
288                 </outcome>\r
289             </switch>\r
290         </block>\r
291     </method>\r
292 </service-logic>