Update portmapping YANG model
[transportpce.git] / olm / src / main / java / org / opendaylight / transportpce / olm / util / OlmUtils.java
index 60915e233cdd8597c563a1bc49a877d3e2f93024..f30207425d996420854f267d272c1461dfee4ab8 100644 (file)
@@ -11,21 +11,16 @@ import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.ReadTransaction;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.GetPmInput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.GetPmOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.Network;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.NodesKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.network.topology.topology.topology.types.TopologyNetconf;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.Network;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.OpenroadmNodeVersion;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.NodesKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -34,11 +29,8 @@ public final class OlmUtils {
 
     private static final Logger LOG = LoggerFactory.getLogger(OlmUtils.class);
     private static long DATABROKER_READ_TIMEOUT_SECONDS = 120;
-    private static final InstanceIdentifier<Topology> NETCONF_TOPO_IID =
-        InstanceIdentifier
-            .create(NetworkTopology.class)
-            .child(Topology.class,
-                new TopologyKey(new TopologyId(TopologyNetconf.QNAME.getLocalName())));
+    public static final long OLM_TIMER_1 = 120000; //#FUNCTESTVAL= 3000;
+    public static final long OLM_TIMER_2 = 20000;  //#FUNCTESTVAL= 2000;
 
     /**
      * This static method returns the port mapping {@link Nodes} for node.
@@ -52,9 +44,9 @@ public final class OlmUtils {
     public static Optional<Nodes> getNode(String nodeId, DataBroker db) {
         InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
             .child(Nodes.class, new NodesKey(nodeId));
-        try (ReadOnlyTransaction readTransaction = db.newReadOnlyTransaction()) {
+        try (ReadTransaction readTransaction = db.newReadOnlyTransaction()) {
             return readTransaction.read(LogicalDatastoreType.CONFIGURATION, nodesIID)
-                .get(DATABROKER_READ_TIMEOUT_SECONDS, TimeUnit.SECONDS).toJavaUtil();
+                .get(DATABROKER_READ_TIMEOUT_SECONDS, TimeUnit.SECONDS);
         } catch (InterruptedException | ExecutionException | TimeoutException ex) {
             LOG.error("Unable to read Portmapping for nodeId {}", nodeId, ex);
             return Optional.empty();
@@ -74,18 +66,29 @@ public final class OlmUtils {
      *            Input parameter from the olm yang model get-pm rpc
      * @param deviceTransactionManager
      *            Device tx manager
+     * @param openRoadmVersion
+     *            OpenRoadm version number
      *
      * @return Result of the request list of PM readings
      */
     public static GetPmOutputBuilder pmFetch(GetPmInput input, DeviceTransactionManager deviceTransactionManager,
-                                             Nodes.OpenroadmVersion openRoadmVersion) {
-        LOG.debug("Getting PM Data for NodeId: {} ResourceType: {} ResourceName: {}", input.getNodeId(),
+                                             OpenroadmNodeVersion openRoadmVersion) {
+        LOG.info("Getting PM Data for NodeId: {} ResourceType: {} ResourceName: {}", input.getNodeId(),
             input.getResourceType(), input.getResourceIdentifier());
-        GetPmOutputBuilder pmOutputBuilder = new GetPmOutputBuilder();
-        if (openRoadmVersion.equals(Nodes.OpenroadmVersion._121)) {
-            pmOutputBuilder = OlmUtils1_2_1.pmFetch(input, deviceTransactionManager);
-        } else {
-            pmOutputBuilder = OlmUtils2_2.pmFetch(input, deviceTransactionManager);
+        GetPmOutputBuilder pmOutputBuilder;
+        switch (openRoadmVersion.getIntValue()) {
+            case 1:
+                pmOutputBuilder = OlmUtils121.pmFetch(input, deviceTransactionManager);
+                break;
+            case 2:
+                pmOutputBuilder = OlmUtils221.pmFetch(input, deviceTransactionManager);
+                break;
+            case 3:
+                pmOutputBuilder = OlmUtils710.pmFetch(input, deviceTransactionManager);
+                break;
+            default:
+                LOG.error("Unrecognized OpenRoadm version");
+                pmOutputBuilder = new GetPmOutputBuilder();
         }
         return pmOutputBuilder;
     }