d02ca12fb61b4fafdb8b7c74cec33986793c8743
[ccsdk/features.git] /
1 package org.onap.ccsdk.features.sdnr.wt.devicemanager.base.netconf.wrapperc;
2
3 import java.util.List;
4
5 import javax.annotation.Nullable;
6
7 import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.netconf.container.Capabilities;
8 import org.onap.ccsdk.features.sdnr.wt.devicemanager.base.netconf.util.GenericTransactionUtils;
9 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
10 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
11 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.InstanceList;
12 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.InstanceListKey;
13 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.instance.list.PortDsList;
14 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.port.ds.entry.PortIdentity;
15 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
18
19 /**
20  * Reading PTP specific information from networkelement and creating log-trace output.
21  *
22  * @author herbert
23  */
24 @SuppressWarnings("deprecation")
25 public class WrapperPTPModelRev170208 {
26
27     private static final Logger LOG = LoggerFactory.getLogger(WrapperPTPModelRev170208.class);
28
29     protected static final InstanceIdentifier<InstanceList> PTPINSTANCES_IID = InstanceIdentifier
30             .builder(InstanceList.class, new InstanceListKey(1)).build();
31
32     /**
33      * Query synchronization information out of NE
34      */
35
36     public static void initSynchronizationExtension(String mountPointNodeName, DataBroker netconfNodeDataBroker,
37             Capabilities capabilities) {
38         try {
39             if (!capabilities.isSupportingNamespaceAndRevision(InstanceList.QNAME)) {
40                 LOG.debug("Mountpoint {} does not support PTP", mountPointNodeName);
41             } else {
42                 StringBuffer sb = new StringBuffer();
43                 sb.append("NE ");
44                 sb.append(mountPointNodeName);
45                 sb.append(" does support synchronisation.\n");
46                 InstanceList ptpInstance = readPTPClockInstances(netconfNodeDataBroker);
47                 if (ptpInstance != null) {
48                     List<PortDsList> dsList = ptpInstance.getPortDsList();
49                     if (dsList != null) {
50                         int t = 0;
51                         for (PortDsList portDs : ptpInstance.getPortDsList()) {
52                             PortIdentity portId = portDs.getPortIdentity();
53                             if (portId != null) {
54                                 sb.append("Port[");
55                                 sb.append(portId.getPortNumber());
56                                 sb.append("]{ ClockId: ");
57                                 sb.append(portId.getClockIdentity());
58                                 sb.append(", Portstate: ");
59                                 sb.append(portDs.getPortState());
60                                 sb.append("}, ");
61                             } else {
62                                 sb.append("Incomplete port #" + t + ", ");
63                             }
64                             t++;
65                         }
66                     } else {
67                         sb.append("dsList contains null");
68                     }
69                 } else {
70                     sb.append("ptpInstance equals null");
71                 }
72                 LOG.trace(sb.toString());
73             }
74         } catch (Exception e) {
75             LOG.info("Inconsistent synchronisation structure: " + e.getMessage());
76         }
77     }
78
79     @Nullable
80     private static InstanceList readPTPClockInstances(DataBroker netconfNodeDataBroker) {
81         return GenericTransactionUtils.readData(netconfNodeDataBroker, LogicalDatastoreType.OPERATIONAL,
82                 PTPINSTANCES_IID);
83     }
84
85 }