From: errea Date: Fri, 26 Nov 2021 14:20:54 +0000 (+0100) Subject: OTN link deletion from full-multilayer TAPI topo X-Git-Tag: 5.0.0~142 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=transportpce.git;a=commitdiff_plain;h=b64fb0e55236920563fbad7deab1dc53aa8c5c4b OTN link deletion from full-multilayer TAPI topo OTN links should be translated into TAPI connections. For T0 Full Multilayer this already happens when mapping OR services. For T0 Multi layer, OTN links still remain abstracted when we query getTopologyDetails, for compatibility issue. JIRA: TRNSPRTPCE-576 Signed-off-by: errea Change-Id: I913a6ebc9d0a3f66e269913e61c5b6ea6ecbdfaf --- diff --git a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiFullTopo.java b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiFullTopo.java index 0cf7cf835..dd31825de 100644 --- a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiFullTopo.java +++ b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiFullTopo.java @@ -11,7 +11,6 @@ import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -213,63 +212,6 @@ public class ConvertORTopoToTapiFullTopo { createTapiTransitionalLinks(); } - public void convertLinks( - Map otnLinkMap) { - List otnLinkList = new ArrayList<>(otnLinkMap.values()); - Collections.sort(otnLinkList, (l1, l2) -> l1.getLinkId().getValue() - .compareTo(l2.getLinkId().getValue())); - List linksToNotConvert = new ArrayList<>(); - LOG.info("creation of {} otn links", otnLinkMap.size() / 2); - for (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network - .Link otnlink : otnLinkList) { - if (!linksToNotConvert.contains(otnlink.getLinkId().getValue())) { - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks - .network.Link oppositeLink = otnLinkMap.get(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns - .yang.ietf.network.topology.rev180226.networks.network.LinkKey(otnlink.augmentation(Link1.class) - .getOppositeLink())); - - AdminStates oppLnkAdmState = null; - State oppLnkOpState = null; - String oppositeLinkId = null; - if (oppositeLink != null) { - oppLnkAdmState = oppositeLink.augmentation(Link1.class).getAdministrativeState(); - oppLnkOpState = oppositeLink.augmentation(Link1.class).getOperationalState(); - oppositeLinkId = oppositeLink.getLinkId().getValue(); - } - String adminState = - otnlink.augmentation(Link1.class).getAdministrativeState() == null - || oppLnkAdmState == null - ? null - : this.tapiLink.setTapiAdminState( - otnlink.augmentation(Link1.class).getAdministrativeState(), oppLnkAdmState).getName(); - String operState = - otnlink.augmentation(Link1.class).getOperationalState() == null - || oppLnkOpState == null - ? null - : this.tapiLink.setTapiOperationalState( - otnlink.augmentation(Link1.class).getOperationalState(), oppLnkOpState).getName(); - - String prefix = otnlink.getLinkId().getValue().split("-")[0]; - String nodesQual = prefix.equals("OTU4") ? TapiStringConstants.OTSI : TapiStringConstants.DSR; - String tpsQual = prefix.equals("OTU4") ? TapiStringConstants.I_OTSI : TapiStringConstants.E_ODU; - LayerProtocolName layerProtocolName = prefix.equals("OTU4") ? LayerProtocolName.PHOTONICMEDIA - : LayerProtocolName.ODU; - - Link tapLink = this.tapiLink.createTapiLink(otnlink.getSource().getSourceNode().getValue(), - otnlink.getSource().getSourceTp().getValue(), otnlink.getDestination().getDestNode().getValue(), - otnlink.getDestination().getDestTp().getValue(), TapiStringConstants.OTN_XPDR_XPDR_LINK, nodesQual, - nodesQual, tpsQual, tpsQual, adminState, operState, List.of(layerProtocolName), - List.of(layerProtocolName.getName()), this.tapiTopoUuid); - linksToNotConvert.add(oppositeLinkId); - tapiLinks.put(tapLink.key(), tapLink); - } - } - } - public void convertRdmToRdmLinks(List rdmTordmLinkList) { List linksToNotConvert = new ArrayList<>(); diff --git a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TopologyUtils.java b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TopologyUtils.java index 43fc4be44..dd9d46aee 100644 --- a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TopologyUtils.java +++ b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TopologyUtils.java @@ -193,12 +193,6 @@ public final class TopologyUtils { tapiFactory.convertXpdrToRdmLinks(xponderInLinkList); tapiLinkList.putAll(tapiFactory.getTapiLinks()); - if (otnTopo.augmentation(Network1.class) != null) { - Map otnLinkMap = otnTopo.augmentation(Network1.class).getLink(); - tapiFactory.convertLinks(otnLinkMap); - tapiLinkList.putAll(tapiFactory.getTapiLinks()); - } // Retrieve created sips map in TapiFactory when mapping all the nodes this.tapiSips = tapiFactory.getTapiSips(); return new TopologyBuilder() diff --git a/tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToFullTapiTopoTest.java b/tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToFullTapiTopoTest.java index 599357ffa..f60f634f6 100644 --- a/tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToFullTapiTopoTest.java +++ b/tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToFullTapiTopoTest.java @@ -44,7 +44,6 @@ import org.opendaylight.transportpce.tapi.utils.TapiTopologyDataUtils; import org.opendaylight.transportpce.test.AbstractTest; import org.opendaylight.transportpce.test.utils.TopologyDataUtils; 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.network.rev200529.TerminationPoint1; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State; @@ -59,7 +58,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Network1; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId; @@ -403,205 +401,6 @@ public class ConvertORTopoToFullTapiTopoTest extends AbstractTest { OperationalState.DISABLED, photnep.getOperationalState()); } - @Test - public void convertOtnLinkWhenNoState() { - HashMap otnLinksAlt = new HashMap<>(otnLinks); - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link - link = changeOtnLinkState(otnLinks.get(new LinkKey( - new LinkId("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"))), null, null); - otnLinksAlt.replace(link.key(), link); - - ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink); - List networkPortListA = new ArrayList<>(); - for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortListA.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxA, networkPortListA); - List networkPortListC = new ArrayList<>(); - for (TerminationPoint tp : otnMuxC.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortListC.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxC, networkPortListC); - tapiFactory.convertLinks(otnLinksAlt); - - List tapiLinks - = tapiFactory.getTapiLinks().values().stream() - .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue())) - .collect(Collectors.toList()); - assertNull("Administrative State should not be present", tapiLinks.get(3).getAdministrativeState()); - assertEquals("Administrative state should be UNLOCKED", - AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState()); - assertNull("Operational State should not be present", tapiLinks.get(3).getOperationalState()); - assertEquals("Operational state should be ENABLED", - OperationalState.ENABLED, tapiLinks.get(0).getOperationalState()); - } - - @Test - public void convertOtnLinkWhenNoStateOnOppositeLink() { - HashMap otnLinksAlt = new HashMap<>(otnLinks); - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link - link = changeOtnLinkState(otnLinks.get(new LinkKey( - new LinkId("ODTU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1"))), null, null); - otnLinksAlt.replace(link.key(), link); - - ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink); - List networkPortListA = new ArrayList<>(); - for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortListA.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxA, networkPortListA); - List networkPortListC = new ArrayList<>(); - for (TerminationPoint tp : otnMuxC.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortListC.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxC, networkPortListC); - tapiFactory.convertLinks(otnLinksAlt); - - List tapiLinks - = tapiFactory.getTapiLinks().values().stream() - .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue())) - .collect(Collectors.toList()); - assertNull("Administrative State should not be present", tapiLinks.get(3).getAdministrativeState()); - assertEquals("Administrative state should be UNLOCKED", - AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState()); - assertNull("Operational State should not be present", tapiLinks.get(3).getOperationalState()); - assertEquals("Operational state should be ENABLED", - OperationalState.ENABLED, tapiLinks.get(0).getOperationalState()); - } - - @Test - public void convertOtnLinkWhenBadState1() { - HashMap otnLinksAlt = new HashMap<>(otnLinks); - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link - link = changeOtnLinkState(otnLinks.get(new LinkKey( - new LinkId("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"))), - AdminStates.OutOfService, State.OutOfService); - otnLinksAlt.replace(link.key(), link); - - ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink); - List networkPortListA = new ArrayList<>(); - for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortListA.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxA, networkPortListA); - List networkPortListC = new ArrayList<>(); - for (TerminationPoint tp : otnMuxC.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortListC.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxC, networkPortListC); - tapiFactory.convertLinks(otnLinksAlt); - - List tapiLinks - = tapiFactory.getTapiLinks().values().stream() - .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue())) - .collect(Collectors.toList()); - assertEquals("Administrative state should be LOCKED", - AdministrativeState.LOCKED, tapiLinks.get(3).getAdministrativeState()); - assertEquals("Administrative state should be UNLOCKED", - AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState()); - assertEquals("Operational state should be DISABLED", - OperationalState.DISABLED, tapiLinks.get(3).getOperationalState()); - assertEquals("Operational state should be ENABLED", - OperationalState.ENABLED, tapiLinks.get(0).getOperationalState()); - } - - @Test - public void convertOtnLinkWhenBadState2() { - HashMap otnLinksAlt = new HashMap<>(otnLinks); - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link - link = changeOtnLinkState(otnLinks.get(new LinkKey( - new LinkId("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"))), - AdminStates.Maintenance, State.Degraded); - otnLinksAlt.replace(link.key(), link); - - ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink); - List networkPortListA = new ArrayList<>(); - for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortListA.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxA, networkPortListA); - List networkPortListC = new ArrayList<>(); - for (TerminationPoint tp : otnMuxC.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortListC.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxC, networkPortListC); - tapiFactory.convertLinks(otnLinksAlt); - - List tapiLinks - = tapiFactory.getTapiLinks().values().stream() - .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue())) - .collect(Collectors.toList()); - assertEquals("Administrative state should be LOCKED", - AdministrativeState.LOCKED, tapiLinks.get(3).getAdministrativeState()); - assertEquals("Administrative state should be UNLOCKED", - AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState()); - assertEquals("Operational state should be DISABLED", - OperationalState.DISABLED, tapiLinks.get(3).getOperationalState()); - assertEquals("Operational state should be ENABLED", - OperationalState.ENABLED, tapiLinks.get(0).getOperationalState()); - } - - @Test - public void convertOtnLinkWhenBadStateOnOppositeLink() { - HashMap otnLinksAlt = new HashMap<>(otnLinks); - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link - link = changeOtnLinkState(otnLinks.get(new LinkKey( - new LinkId("ODTU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1"))), - AdminStates.OutOfService, State.OutOfService); - otnLinksAlt.replace(link.key(), link); - - ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink); - List networkPortListA = new ArrayList<>(); - for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortListA.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxA, networkPortListA); - List networkPortListC = new ArrayList<>(); - for (TerminationPoint tp : otnMuxC.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortListC.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxC, networkPortListC); - tapiFactory.convertLinks(otnLinksAlt); - - List tapiLinks - = tapiFactory.getTapiLinks().values().stream() - .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue())) - .collect(Collectors.toList()); - assertEquals("Administrative state should be LOCKED", - AdministrativeState.LOCKED, tapiLinks.get(3).getAdministrativeState()); - assertEquals("Administrative state should be UNLOCKED", - AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState()); - assertEquals("Operational state should be DISABLED", - OperationalState.DISABLED, tapiLinks.get(3).getOperationalState()); - assertEquals("Operational state should be ENABLED", - OperationalState.ENABLED, tapiLinks.get(0).getOperationalState()); - } - @Test public void convertNodeForTransponder100G() { ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink); @@ -700,59 +499,6 @@ public class ConvertORTopoToFullTapiTopoTest extends AbstractTest { "SPDR-SA1-XPDR2+iODU+XPDR2-NETWORK4", "SPDR-SA1-XPDR2+iOTSi+XPDR2-NETWORK4", "SPDR-SA1-XPDR2"); } - @Test - public void convertOtnLink() { - ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink); - List networkPortListA = new ArrayList<>(); - for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortListA.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxA, networkPortListA); - List networkPortListC = new ArrayList<>(); - for (TerminationPoint tp : otnMuxC.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortListC.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxC, networkPortListC); - tapiFactory.convertLinks(otnLinks); - assertEquals("Link list size should be 4", 4, tapiFactory.getTapiLinks().size()); - - Uuid node1Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+DSR".getBytes(Charset.forName("UTF-8"))) - .toString()); - Uuid node2Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+DSR".getBytes(Charset.forName("UTF-8"))) - .toString()); - Uuid node3Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+OTSi".getBytes(Charset.forName("UTF-8"))) - .toString()); - Uuid node4Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+OTSi".getBytes(Charset.forName("UTF-8"))) - .toString()); - Uuid tp1Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1" - .getBytes(Charset.forName("UTF-8"))).toString()); - Uuid tp2Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1" - .getBytes(Charset.forName("UTF-8"))).toString()); - Uuid tp3Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1" - .getBytes(Charset.forName("UTF-8"))).toString()); - Uuid tp4Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1" - .getBytes(Charset.forName("UTF-8"))).toString()); - Uuid link1Uuid = - new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1toSPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1" - .getBytes(Charset.forName("UTF-8"))).toString()); - Uuid link2Uuid = - new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1toSPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1" - .getBytes(Charset.forName("UTF-8"))).toString()); - - List links - = tapiFactory.getTapiLinks().values().stream() - .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue())) - .collect(Collectors.toList()); - checkOtnLink(links.get(3), node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, link1Uuid, - "SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1toSPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1"); - checkOtnLink(links.get(2), node3Uuid, node4Uuid, tp3Uuid, tp4Uuid, link2Uuid, - "SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1toSPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1"); - } - @Test public void convertNodeForRoadmWhenNoOtnMuxAttached() { ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink); @@ -1522,58 +1268,6 @@ public class ConvertORTopoToFullTapiTopoTest extends AbstractTest { either(containsString(nep1Uuid.getValue())).or(containsString(nep2Uuid.getValue()))); } - private void checkOtnLink(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link link, - Uuid node1Uuid, Uuid node2Uuid, Uuid tp1Uuid, Uuid tp2Uuid, Uuid linkUuid, - String linkName) { - assertEquals("bad name for the link", linkName, link.getName().get( - new NameKey("otn link name")).getValue()); - assertEquals("bad uuid for link", linkUuid, link.getUuid()); - assertEquals("Available capacity unit should be MBPS", - CapacityUnit.GBPS, link.getAvailableCapacity().getTotalSize().getUnit()); - String prefix = linkName.split("-")[0]; - if ("OTU4".equals(prefix)) { - assertEquals("Available capacity -total size value should be 0", - Uint64.valueOf(0), link.getAvailableCapacity().getTotalSize().getValue()); - } else if ("ODU4".equals(prefix)) { - assertEquals("Available capacity -total size value should be 100 000", - Uint64.valueOf(100000), link.getAvailableCapacity().getTotalSize().getValue()); - } - assertEquals("Total capacity unit should be GBPS", - CapacityUnit.GBPS, link.getTotalPotentialCapacity().getTotalSize().getUnit()); - assertEquals("Total capacity -total size value should be 100", - Uint64.valueOf(100), link.getTotalPotentialCapacity().getTotalSize().getValue()); - if ("OTU4".equals(prefix)) { - assertEquals("otn link should be between 2 nodes of protocol layers PHOTONIC_MEDIA", - LayerProtocolName.PHOTONICMEDIA.getName(), link.getLayerProtocolName().get(0).getName()); - } else if ("ODU4".equals(prefix)) { - assertEquals("otn link should be between 2 nodes of protocol layers ODU", - LayerProtocolName.ODU.getName(), link.getLayerProtocolName().get(0).getName()); - } - assertEquals("otn tapi link should be BIDIRECTIONAL", - ForwardingDirection.BIDIRECTIONAL, link.getDirection()); - List nodeEdgePointList = new ArrayList<>(link.nonnullNodeEdgePoint().values()); - assertEquals("topology uuid should be the same for the two termination point of the link", - topologyUuid, nodeEdgePointList.get(0).getTopologyUuid()); - assertEquals("topology uuid should be the same for the two termination point of the link", - topologyUuid, nodeEdgePointList.get(1).getTopologyUuid()); - assertThat("otn links should terminate on two distinct nodes", - nodeEdgePointList.get(0).getNodeUuid().getValue(), - either(containsString(node1Uuid.getValue())).or(containsString(node2Uuid.getValue()))); - assertThat("otn links should terminate on two distinct nodes", - nodeEdgePointList.get(1).getNodeUuid().getValue(), - either(containsString(node1Uuid.getValue())).or(containsString(node2Uuid.getValue()))); - assertThat("otn links should terminate on two distinct tps", - nodeEdgePointList.get(0).getNodeEdgePointUuid().getValue(), - either(containsString(tp1Uuid.getValue())).or(containsString(tp2Uuid.getValue()))); - assertThat("otn links should terminate on two distinct tps", - nodeEdgePointList.get(1).getNodeEdgePointUuid().getValue(), - either(containsString(tp1Uuid.getValue())).or(containsString(tp2Uuid.getValue()))); - assertEquals("operational state should be ENABLED", - OperationalState.ENABLED, link.getOperationalState()); - assertEquals("administrative state should be UNLOCKED", - AdministrativeState.UNLOCKED, link.getAdministrativeState()); - } private void checkOmsLink(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link link, Uuid node1Uuid, Uuid node2Uuid, Uuid tp1Uuid, Uuid tp2Uuid, Uuid linkUuid, @@ -1661,19 +1355,4 @@ public class ConvertORTopoToFullTapiTopoTest extends AbstractTest { tpdr1Bldr.setTerminationPoint(tps); return new NodeBuilder(initialNode).addAugmentation(tpdr1Bldr.build()).build(); } - - private org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang - .ietf.network.topology.rev180226.networks.network.Link changeOtnLinkState( - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network - .Link initiallink, AdminStates admin, State oper) { - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network - .LinkBuilder linkBldr = new - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network - .LinkBuilder(initiallink); - linkBldr.addAugmentation(new Link1Builder(linkBldr.augmentation(Link1.class)) - .setAdministrativeState(admin) - .setOperationalState(oper) - .build()); - return linkBldr.build(); - } } diff --git a/tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImplTest.java b/tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImplTest.java index 920247492..d5925d5bf 100644 --- a/tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImplTest.java +++ b/tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImplTest.java @@ -451,7 +451,7 @@ public class TapiTopologyImplTest extends AbstractTest { // Links in openroadm topology which include Roadm-to-Roadm and Xpdr-to-Roadm (ortopo / 2) // + transitional links -> 1 per network port of Xpdr + OTN links / 2 - assertEquals("Link list size should be 27", 27, topology.getLink().size()); + assertEquals("Link list size should be 25", 25, topology.getLink().size()); Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes("T0 - Full Multi-layer topology".getBytes()).toString()); assertEquals("incorrect topology uuid", topoUuid, topology.getUuid()); assertEquals("topology name should be T0 - Full Multi-layer topology", @@ -474,46 +474,10 @@ public class TapiTopologyImplTest extends AbstractTest { // Xpdr-to-Roadm long nbOmsLinks1 = topology.getLink().values().stream() .filter(l -> l.getName().containsKey(new NameKey("XPDR-RDM link name"))).count(); - long nbOtnLinks = topology.getLink().values().stream() - .filter(l -> l.getName().containsKey(new NameKey("otn link name"))).count(); // 1 transitional link per NETWORK port assertEquals("Link list should contain 16 transitional links", 16, nbTransititionalLinks); // 1 OMS per ROADM-to-ROADM link + Existing XPDR-tp-ROADM link in openroadm topology assertEquals("Link list should contain 9 OMS links", 9, nbOmsLinks + nbOmsLinks1); - // Should we consider OTN links as links or connections?? - assertEquals("Link list should contain 2 OTN links", 2, nbOtnLinks); - - Uuid node1Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+DSR".getBytes(StandardCharsets.UTF_8)) - .toString()); - Uuid node2Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+DSR".getBytes(StandardCharsets.UTF_8)) - .toString()); - Uuid node3Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+OTSi".getBytes(StandardCharsets.UTF_8)) - .toString()); - Uuid node4Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+OTSi".getBytes(StandardCharsets.UTF_8)) - .toString()); - Uuid tp1Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1" - .getBytes(StandardCharsets.UTF_8)).toString()); - Uuid tp2Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1" - .getBytes(StandardCharsets.UTF_8)).toString()); - Uuid tp3Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1" - .getBytes(StandardCharsets.UTF_8)).toString()); - Uuid tp4Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1" - .getBytes(StandardCharsets.UTF_8)).toString()); - Uuid link1Uuid = - new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1toSPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1" - .getBytes(StandardCharsets.UTF_8)).toString()); - Uuid link2Uuid = - new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1toSPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1" - .getBytes(StandardCharsets.UTF_8)).toString()); - - List links = topology.nonnullLink().values().stream() - .filter(l -> l.getName().containsKey(new NameKey("otn link name"))) - .sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue())) - .collect(Collectors.toList()); - checkOtnLink(links.get(0), topoUuid, node3Uuid, node4Uuid, tp3Uuid, tp4Uuid, link1Uuid, - "SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1toSPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1"); - checkOtnLink(links.get(1), topoUuid, node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, link2Uuid, - "SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1toSPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1"); } @Test