Topology Discovery and optical-service DGs
[sdnc/oam.git] / platform-logic / datachange / src / main / xml / DataChange_msa-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='msa-update-network-to-aai' mode='sync'>\r
5         <block atomic='true'>\r
6             <switch test="`$networks.network-id`">\r
7                 <outcome value='otn-topology'>\r
8                     <block atomic='true'>\r
9                         <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='network-resource'  \r
10      key='network-resource.network-id = $networks.network-id' >\r
11                             <parameter name='network-id' value='`$networks.network-id`' />\r
12                             <parameter name='network-type' value='`$networks.network-types`' />\r
13                         </save>\r
14                         <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='esr-thirdparty-sdnc:relationship-list' \r
15       key='esr-thirdparty-sdnc.thirdparty-sdnc-id = $prop.sdncRestApi.thirdpartySdnc.id' \r
16       force="true" pfx="tmp.AnAI-data">\r
17                             <parameter name="relationship-list.relationship[0].related-to" value="network-resource" />\r
18                             <parameter name="relationship-list.relationship[0].related-link" value="`'/network/network-resources/network-resource/' + $networks.network-id`" />\r
19                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="network-resource.network-id" />\r
20                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$networks.network-id`" />\r
21                         </save>\r
22                         <set>\r
23                             <parameter name='controller_id' value="`$prop.sdncRestApi.type + '_' + $prop.sdncRestApi.thirdpartySdnc.url`" />\r
24                         </set>\r
25                         <for index='nidx' start='0' end='`$networks.node_length`' >\r
26                             <set>\r
27                                 <parameter name='node.' value='`$networks.node[$nidx].`' />\r
28                             </set>\r
29                             <switch test="`$node.node-type`">\r
30                                 <outcome value='SWITCH'>\r
31                                     <block atomic='true'>\r
32                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
33                                             <parameter name="ctx-destination" value="pnfname"/>\r
34                                         </execute>\r
35                                         <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf'\r
36 key='pnf.pnf-name = $pnfname' >\r
37                                             <parameter name='pnf-name' value='`$pnfname`' />\r
38                                             <parameter name='pnf-id' value='`$node.node-id`' />\r
39                                             <parameter name='operational-status' value='`$node.node-status`' />\r
40                                             <parameter name='in-maint' value='true' />\r
41                                             <parameter name='equip-type' value='`$node.node-type`' />\r
42                                         </save>\r
43                                         <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='pnf:relationship-list' \r
44       key='pnf.pnf-name = $pnfname' force="true" pfx="tmp.AnAI-data">\r
45                                             <parameter name="relationship-list.relationship[0].related-to" value="network-resource" />\r
46                                             <parameter name="relationship-list.relationship[0].related-link" value="`'/network/network-resources/network-resource/' + $networks.network-id`" />\r
47                                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="network-resource.network-id" />\r
48                                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$networks.network-id`" />\r
49                                         </save>\r
50                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
51                                             <parameter name="original_string" value='`$node.node-id`'/>\r
52                                             <parameter name="regex" value="-"/>\r
53                                             <parameter name="ctx_memory_result_key" value="param-prefix1"/>\r
54                                         </execute>\r
55                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
56                                             <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/cxf/openroadm/v2/networks/openroadm-network/nodes/' + $param-prefix1[0]`"/>\r
57                                             <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`"/>\r
58                                             <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`"/>\r
59                                             <parameter name="format" value="json"/>\r
60                                             <parameter name="httpMethod" value="get"/>\r
61                                             <parameter name="responsePrefix" value="cllires"/>\r
62                                             <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.msa.jks"/>\r
63                                             <parameter name="trustStorePassword" value="adminadmin"/>\r
64                                             <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
65                                             <parameter name="keyStorePassword" value="adminadmin"/>\r
66                                             <outcome value='failure'>\r
67                                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
68                                                     <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-delete.log" />\r
69                                                     <parameter name="level" value="info" />\r
70                                                     <parameter name="field1" value="Getting clli failed"/>\r
71                                                 </record>\r
72                                             </outcome>\r
73                                             <outcome value='success'>\r
74                                                 <block atomic='true'>\r
75                                                     <set>\r
76                                                         <parameter name='clli' value='`$cllires.supporting-node[0].node-ref`' />\r
77                                                     </set>\r
78                                                 </block>\r
79                                             </outcome>\r
80                                         </execute>\r
81                                         <for index='tpidx' start='0' end='`$node.termination-point_length`' >\r
82                                             <set>\r
83                                                 <parameter name='speed-value' value='' />\r
84                                                 <parameter name='available-capacity' value='' />\r
85                                                 <parameter name='network-interface-type' value='' />\r
86                                             </set>\r
87                                             <set>\r
88                                                 <parameter name='tp.' value='`$node.termination-point[$tpidx].`' />\r
89                                             </set>\r
90                                             <switch test="`$tp.tp-type`">\r
91                                                 <outcome value='XPONDER-NETWORK'>\r
92                                                     <block atomic='true'>\r
93                                                         <set>\r
94                                                             <parameter name='network-interface-type' value='NNI' />\r
95                                                         </set>\r
96                                                     </block>\r
97                                                 </outcome>\r
98                                                 <outcome value='XPONDER-CLIENT'>\r
99                                                     <block atomic='true'>\r
100                                                         <set>\r
101                                                             <parameter name='network-interface-type' value='UNI' />\r
102                                                         </set>\r
103                                                     </block>\r
104                                                 </outcome>\r
105                                                 <outcome value='Other'></outcome>\r
106                                             </switch>\r
107                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
108                                                 <parameter name="ctx-destination" value="interfaceName"/>\r
109                                             </execute>\r
110                                             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='p-interface' \r
111       key='pnf.pnf-name = $pnfname\r
112       AND p-interface.interface-name = $interfaceName' >\r
113                                                 <parameter name='interface-name' value='`$interfaceName`' />\r
114                                                 <parameter name='port-description' value='`$tp.tp-id`' />\r
115                                                 <parameter name='network-ref' value='`$tp.network-ref`' />\r
116                                                 <parameter name='interface-type' value='`$tp.tp-type`' />\r
117                                                 <parameter name='in-maint' value="true" />\r
118                                                 <parameter name='network-interface-type' value='`$network-interface-type`' />\r
119                                                 <parameter name='speed-units' value="Gbps" />\r
120                                                 <parameter name='speed-value' value='100' />\r
121                                                 <parameter name='available-capacity' value='100' />\r
122                                             </save>\r
123                                             <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='custom-query' \r
124       key="format='resource'"\r
125       force="true"\r
126       local-only="false"\r
127       pfx="data">\r
128                                                 <parameter name='interface-name' value='`$interfaceName`' />\r
129                                                 <parameter name='port-description' value='`$tp.tp-id`' />\r
130                                             </save>\r
131                                             <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL" key="INSERT INTO TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE VALUES ( $interfaceName , $tp.tp-id , $pnfname , $node.node-id , '100' , $clli , null );"></save>\r
132                                         </for>\r
133                                     </block>\r
134                                 </outcome>\r
135                                 <outcome value='Other'></outcome>\r
136                             </switch>\r
137                         </for>\r
138                         <for index='lidx' start='0' end='`$networks.link_length`' >\r
139                             <set>\r
140                                 <parameter name='link.' value='`$networks.link[$lidx].`' />\r
141                             </set>\r
142                             <switch test="`$link.link-type`">\r
143                                 <outcome value='OTN-LINK'>\r
144                                     <block atomic='true'>\r
145                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
146                                             <parameter name="source" value="`$link.link-id`"/>\r
147                                             <parameter name="outputPath" value="tmp.link-id"/>\r
148                                             <parameter name="target" value="#"/>\r
149                                             <parameter name="replacement" value="_"/>\r
150                                         </execute>\r
151                                         <set>\r
152                                             <parameter name='interface1' value="`$link.source.source-tp`" />\r
153                                             <parameter name='interface2' value="`$link.destination.dest-tp`" />\r
154                                             <parameter name='pnf1' value="`$link.source.source-node`" />\r
155                                             <parameter name='pnf2' value="`$link.destination.dest-node`" />\r
156                                         </set>\r
157                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
158                                             <parameter name="file" value="/opt/opendaylight/current/data/log/optical-service-create.log" />\r
159                                             <parameter name="level" value="info" />\r
160                                             <parameter name="field1" value="`$pnf1`"/>\r
161                                             <parameter name="field2" value="`$interface1`"/>\r
162                                             <parameter name="field3" value="`$pnf2`"/>\r
163                                             <parameter name="field4" value="`$interface2`"/>\r
164                                         </record>\r
165                                         <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link'\r
166 key='logical-link.link-name = $tmp.link-id' >\r
167                                             <parameter name='link-name' value='`$tmp.link-id`' />\r
168                                             <parameter name='link-type' value='`$link.link-type`' />\r
169                                             <parameter name='in-maint' value='true' />\r
170                                             <parameter name='speed-value' value='100' />\r
171                                             <parameter name='speed-units' value='Gbps' />\r
172                                             <parameter name='operational-status' value='`$link.administrative-state`' />\r
173                                             <parameter name='available-capacity' value='100' />\r
174                                         </save>\r
175                                         <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
176 key='SELECT pnf_name, interface_name \r
177 from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE \r
178 WHERE pnf_id = $link.source.source-node\r
179 AND interface_id = $link.source.source-tp' \r
180 pfx='db.source'>\r
181                                             <outcome value='success'>\r
182                                                 <set>\r
183                                                     <parameter name='pnfname1' value='`$db.source.pnf-name`' />\r
184                                                     <parameter name='pinterface1' value='`$db.source.interface-name`' />\r
185                                                 </set>\r
186                                             </outcome>\r
187                                         </get-resource>\r
188                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
189                                             <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log" />\r
190                                             <parameter name="level" value="info" />\r
191                                             <parameter name="field1" value="print direct name"/>\r
192                                             <parameter name="field2" value="`$pnfname1`"/>\r
193                                         </record>\r
194                                         <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
195 key='SELECT pnf_name, interface_name \r
196 from TOPOLOGY_LOGICAL_RELATION_TO_PINTERFACE \r
197 WHERE pnf_id = $link.destination.dest-node\r
198 AND interface_id = $link.destination.dest-tp' \r
199 pfx='db1.destination'>\r
200                                             <outcome value='success'>\r
201                                                 <set>\r
202                                                     <parameter name='pnfname2' value='`$db1.destination.pnf-name`' />\r
203                                                     <parameter name='pinterface2' value='`$db1.destination.interface-name`' />\r
204                                                 </set>\r
205                                             </outcome>\r
206                                         </get-resource>\r
207                                         <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='logical-link:relationship-list' \r
208       key='logical-link.link-name = $tmp.link-id' force="true" pfx="tmp.AnAI-data">\r
209                                             <parameter name="relationship-list.relationship[0].related-to" value="p-interface" />\r
210                                             <parameter name="relationship-list.relationship[0].related-link" value="`'/network/pnfs/pnf/' + $pnfname1 + '/p-interfaces/p-interface/' + $pinterface1 `" />\r
211                                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="pnf.pnf-name" />\r
212                                             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$pnfname1`" />\r
213                                             <parameter name="relationship-list.relationship[1].related-to" value="p-interface" />\r
214                                             <parameter name="relationship-list.relationship[1].related-link" value="`'/network/pnfs/pnf/' + $pnfname2 + '/p-interfaces/p-interface/' + $pinterface2 `" />\r
215                                             <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="pnf.pnf-name" />\r
216                                             <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="`$pnfname2`" />\r
217                                         </save>\r
218                                     </block>\r
219                                 </outcome>\r
220                                 <outcome value='Other'></outcome>\r
221                             </switch>\r
222                         </for>\r
223                     </block>\r
224                 </outcome>\r
225                 <outcome value='Other'></outcome>\r
226             </switch>\r
227         </block>\r
228     </method>\r
229 </service-logic>