From: Christophe Betoule Date: Thu, 11 Mar 2021 14:41:51 +0000 (+0100) Subject: Set topology tp states from device port state X-Git-Tag: 4.0.0~126 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=aaf72977758bb6c6a591d2fdfb04d0919c4502fe;p=transportpce.git Set topology tp states from device port state 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 Co-authored-by: Gilles Thouenon Change-Id: I562563059ec789702bddb848e38a2c12cf3b4640 --- diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java index 08428537b..0f9b07a06 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java @@ -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 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 supportTpMap) { + Map 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) diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java index e8561c2f3..86a55c07b 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java @@ -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": diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TopologyUtils.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TopologyUtils.java index acf77868f..6fd972c31 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TopologyUtils.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TopologyUtils.java @@ -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; + } + } }