Set topology tp states from device port state 89/95489/15
authorChristophe Betoule <christophe.betoule@orange.com>
Thu, 11 Mar 2021 14:41:51 +0000 (15:41 +0100)
committerguillaume.lambert <guillaume.lambert@orange.com>
Tue, 13 Apr 2021 09:01:13 +0000 (11:01 +0200)
set tp states in openroadm-topology and otn-topology according to states
of device port coming from port-mapping.

JIRA: TRNSPRTPCE-416
Signed-off-by: Christophe Betoule <christophe.betoule@orange.com>
Co-authored-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I562563059ec789702bddb848e38a2c12cf3b4640

networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TopologyUtils.java

index 08428537b08a78f2a91aafe21bf5525c7db2e8bf..0f9b07a069c53e9d45fc47b594c0261c46608c7b 100644 (file)
@@ -628,13 +628,14 @@ public final class OpenRoadmOtnTopology {
             org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1Builder tpceTp1Bldr =
                 new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1Builder();
             TpId tpId = new TpId(mapping.getLogicalConnectionPoint());
-            setclientNwTpAttr(tpMap, node, tpId, tpType, otnTp1Bldr.build(), tpceTp1Bldr);
+            setclientNwTpAttr(tpMap, node, tpId, tpType, otnTp1Bldr.build(), tpceTp1Bldr, mapping);
         }
     }
 
     private static void setclientNwTpAttr(Map<TerminationPointKey, TerminationPoint> tpMap, OtnTopoNode node, TpId tpId,
             OpenroadmTpType tpType, TerminationPoint1 otnTp1,
-            org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1Builder tpceTp1Bldr) {
+            org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1Builder tpceTp1Bldr,
+            Mapping mapping) {
         switch (tpType) {
             case XPONDERNETWORK:
                 if (node.getXpdrNetConnectionMap().get(tpId.getValue()) != null) {
@@ -645,14 +646,15 @@ public final class OpenRoadmOtnTopology {
                     .setNodeRef(new NodeId(node.getNodeId() + XPDR + node.getXpdrNb()))
                     .setTpRef(tpId.getValue())
                     .build();
-                TerminationPoint ietfTpNw = buildIetfTp(tpceTp1Bldr, otnTp1, tpType, tpId, Map.of(stp.key(), stp));
+                TerminationPoint ietfTpNw = buildIetfTp(tpceTp1Bldr, otnTp1, tpType, tpId, Map.of(stp.key(), stp),
+                    mapping);
                 tpMap.put(ietfTpNw.key(),ietfTpNw);
                 break;
             case XPONDERCLIENT:
                 if (node.getXpdrCliConnectionMap().get(tpId.getValue()) != null) {
                     tpceTp1Bldr.setAssociatedConnectionMapPort(node.getXpdrCliConnectionMap().get(tpId.getValue()));
                 }
-                TerminationPoint ietfTpCl = buildIetfTp(tpceTp1Bldr, otnTp1, tpType, tpId, null);
+                TerminationPoint ietfTpCl = buildIetfTp(tpceTp1Bldr, otnTp1, tpType, tpId, null, mapping);
                 tpMap.put(ietfTpCl.key(),ietfTpCl);
                 break;
             default:
@@ -735,7 +737,7 @@ public final class OpenRoadmOtnTopology {
     private static TerminationPoint buildIetfTp(
         org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1Builder tpceTp1Bldr,
         TerminationPoint1 otnTp1, OpenroadmTpType tpType, TpId tpId,
-        Map<SupportingTerminationPointKey, SupportingTerminationPoint> supportTpMap) {
+        Map<SupportingTerminationPointKey, SupportingTerminationPoint> supportTpMap, Mapping mapping) {
 
         TerminationPointBuilder ietfTpBldr = new TerminationPointBuilder();
         if (tpceTp1Bldr.getAssociatedConnectionMapPort() != null) {
@@ -747,8 +749,8 @@ public final class OpenRoadmOtnTopology {
         org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1 ocnTp =
             new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder()
                     .setTpType(tpType)
-                    .setAdministrativeState(AdminStates.InService)
-                    .setOperationalState(State.InService)
+                    .setAdministrativeState(TopologyUtils.setNetworkAdminState(mapping.getPortAdminState()))
+                    .setOperationalState(TopologyUtils.setNetworkOperState(mapping.getPortOperState()))
                     .build();
 
         ietfTpBldr.setTpId(tpId)
index e8561c2f3125f10339b18b9ac5369149dc82cc3c..86a55c07be5f5464e45414496d94141e11899f8a 100644 (file)
@@ -196,8 +196,8 @@ public final class OpenRoadmTopology {
                 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder
                     ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http
                         .org.openroadm.common.network.rev200529.TerminationPoint1Builder()
-                        .setAdministrativeState(AdminStates.InService)
-                        .setOperationalState(State.InService);
+                        .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState()))
+                        .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState()));
                 if (m.getPortQual().equals("xpdr-network")) {
                     ocnTp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK);
                     org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1 tpceTp1 =
@@ -226,8 +226,8 @@ public final class OpenRoadmTopology {
                         ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http
                                 .org.openroadm.common.network.rev200529.TerminationPoint1Builder()
                             .setTpType(OpenroadmTpType.XPONDERNETWORK)
-                            .setAdministrativeState(AdminStates.InService)
-                            .setOperationalState(State.InService);
+                            .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState()))
+                            .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState()));
                     ietfTpBldr
                         .addAugmentation(ocnTp1Bldr.build());
                     TerminationPoint ietfTp = ietfTpBldr.build();
@@ -253,8 +253,8 @@ public final class OpenRoadmTopology {
             org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder
                 ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529
                     .TerminationPoint1Builder()
-                        .setAdministrativeState(AdminStates.InService)
-                        .setOperationalState(State.InService);
+                        .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState()))
+                        .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState()));
 
             // Added states to degree port. TODO: add to mapping relation between abstracted and physical node states
             switch (m.getPortDirection()) {
@@ -323,8 +323,8 @@ public final class OpenRoadmTopology {
             org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529
                 .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http
                 .org.openroadm.common.network.rev200529.TerminationPoint1Builder()
-                    .setAdministrativeState(AdminStates.InService)
-                    .setOperationalState(State.InService);
+                    .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState()))
+                    .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState()));
             // Added states to srg port. TODO: add to mapping relation between abstracted and physical node states
             switch (m.getPortDirection()) {
                 case "bidirectional":
index acf77868f40136d781aef3b84ed5701e86d00818..6fd972c31cb1440768bb17d80bfd5a754a22c9b8 100644 (file)
@@ -15,6 +15,8 @@ import org.opendaylight.transportpce.common.NetworkUtils;
 import org.opendaylight.transportpce.common.network.NetworkTransactionService;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
@@ -117,4 +119,36 @@ public final class TopologyUtils {
             return false;
         }
     }
+
+    public static AdminStates setNetworkAdminState(String adminState) {
+        if (adminState == null) {
+            return null;
+        }
+        switch (adminState) {
+            case "InService":
+                return AdminStates.InService;
+            case "OutOfService":
+                return AdminStates.OutOfService;
+            case "Maintenance":
+                return AdminStates.Maintenance;
+            default:
+                return null;
+        }
+    }
+
+    public static State setNetworkOperState(String operState) {
+        if (operState == null) {
+            return null;
+        }
+        switch (operState) {
+            case "InService":
+                return State.InService;
+            case "OutOfService":
+                return State.OutOfService;
+            case "Degraded":
+                return State.Degraded;
+            default:
+                return null;
+        }
+    }
 }