From 9ae7e3a42ccd60467c69b99e49dc754167ca1adc Mon Sep 17 00:00:00 2001 From: "guillaume.lambert" Date: Mon, 29 Apr 2024 15:08:48 +0200 Subject: [PATCH] Refactor ConvertORTopoToFullTapiTopoTest step 2 JIRA: TRNSPRTPCE-735 Signed-off-by: guillaume.lambert Change-Id: I79e404cfec8a033698695b5ec348a4e09e2c66d2 --- .../ConvertORTopoToFullTapiTopoTest.java | 210 ++++++------------ 1 file changed, 67 insertions(+), 143 deletions(-) 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 d960a0491..1fc74c483 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 @@ -215,172 +215,79 @@ public class ConvertORTopoToFullTapiTopoTest extends AbstractTest { @Test void convertNodeWhenNoStates() { + rawConvertNodeWhenBadStates( + "XPDR-A1-XPDR1", "XPDR1-NETWORK1", "XPDR1-CLIENT1", null, null); + } + + @Test + void convertNodeWhenBadStates1() { + rawConvertNodeWhenBadStates( + "XPDR-A1-XPDR1", "XPDR1-NETWORK1", "XPDR1-CLIENT1", AdminStates.OutOfService, State.OutOfService); + } + + @Test + void convertNodeWhenBadStates2() { + rawConvertNodeWhenBadStates( + "XPDR-A1-XPDR1", "XPDR1-NETWORK1", "XPDR1-CLIENT1", AdminStates.Maintenance, State.Degraded); + } + + private void rawConvertNodeWhenBadStates( + String nodeId, String networkId, String clientId, AdminStates admState, State rawState) { ConvertORToTapiTopology tapiFactory = new ConvertORToTapiTopology(topologyUuid); tapiFactory.convertNode( - changeTerminationPointState(tpdr100G, "XPDR1-NETWORK1", "XPDR1-CLIENT1", null, null), + changeTerminationPointState(tpdr100G, networkId, clientId , admState, rawState), tpdr100G.augmentation(Node1.class).getTerminationPoint().values().stream() .filter(tp -> tp.augmentation(TerminationPoint1.class).getTpType() - .equals(OpenroadmTpType.XPONDERNETWORK)) + .equals(OpenroadmTpType.XPONDERNETWORK)) .map(tp -> tp.getTpId().getValue()) .collect(Collectors.toList())); - var dsrNodeOoNep = tapiFactory + var dsrNodeNnOnep = tapiFactory .getTapiNodes() - .get(new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121 - .topology.NodeKey(new Uuid( - UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+XPONDER".getBytes(Charset.forName("UTF-8"))) - .toString()))) + .get(new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.NodeKey(new Uuid( + UUID.nameUUIDFromBytes((nodeId + "+XPONDER").getBytes(Charset.forName("UTF-8"))).toString()))) .nonnullOwnedNodeEdgePoint(); - OwnedNodeEdgePoint enepN = dsrNodeOoNep.get(new OwnedNodeEdgePointKey(new Uuid( - UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+eODU+XPDR1-CLIENT1").getBytes(Charset.forName("UTF-8"))) + OwnedNodeEdgePoint enepN = dsrNodeNnOnep.get(new OwnedNodeEdgePointKey(new Uuid( + UUID.nameUUIDFromBytes(String.join("+", nodeId, "eODU", clientId).getBytes(Charset.forName("UTF-8"))) .toString()))); - assertNull(enepN.getAdministrativeState(), "Administrative State should not be present"); - assertNull(enepN.getOperationalState(), "Operational State should not be present"); - OwnedNodeEdgePoint inepN = dsrNodeOoNep.get(new OwnedNodeEdgePointKey(new Uuid( - UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+iODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8"))) + OwnedNodeEdgePoint inepN = dsrNodeNnOnep.get(new OwnedNodeEdgePointKey(new Uuid( + UUID.nameUUIDFromBytes(String.join("+", nodeId, "iODU", networkId).getBytes(Charset.forName("UTF-8"))) .toString()))); - assertNull(inepN.getAdministrativeState(), "Administrative State should not be present"); - assertNull(inepN.getOperationalState(), "Operational State should not be present"); - } - - @Test - void convertNodeWhenBadStates1() { - Node tpdr = changeTerminationPointState(tpdr100G, "XPDR1-NETWORK1", "XPDR1-CLIENT1", - AdminStates.OutOfService, State.OutOfService); - List networkPortList = new ArrayList<>(); - for (TerminationPoint tp : tpdr100G.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortList.add(tp.getTpId().getValue()); - } + if (admState == null) { + assertNull(enepN.getAdministrativeState(), "Administrative State should not be present"); + assertNull(inepN.getAdministrativeState(), "Administrative State should not be present"); + } else { + assertEquals(AdministrativeState.LOCKED, enepN.getAdministrativeState(), + "Administrative State should be Locked"); + assertEquals(AdministrativeState.LOCKED, inepN.getAdministrativeState(), + "Administrative State should be Locked"); } - ConvertORToTapiTopology tapiFactory = new ConvertORToTapiTopology(topologyUuid); - tapiFactory.convertNode(tpdr, networkPortList); - - Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+XPONDER".getBytes(Charset.forName("UTF-8"))) - .toString()); - org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Node dsrNode = tapiFactory - .getTapiNodes().get(new - org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.NodeKey(dsrNodeUuid)); - Uuid enetworkNepUuid = new Uuid( - UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+eODU+XPDR1-CLIENT1").getBytes(Charset.forName("UTF-8"))) - .toString()); - Uuid inetworkNepUuid = new Uuid( - UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+iODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8"))) - .toString()); - OwnedNodeEdgePoint enepN = dsrNode.nonnullOwnedNodeEdgePoint().get(new OwnedNodeEdgePointKey(enetworkNepUuid)); - assertEquals(AdministrativeState.LOCKED, enepN.getAdministrativeState(), - "Administrative State should be Locked"); - assertEquals(OperationalState.DISABLED, enepN.getOperationalState(), "Operational State should be Disabled"); - - OwnedNodeEdgePoint inepN = dsrNode.nonnullOwnedNodeEdgePoint().get(new OwnedNodeEdgePointKey(inetworkNepUuid)); - assertEquals(AdministrativeState.LOCKED, inepN.getAdministrativeState(), - "Administrative State should be Locked"); - assertEquals(OperationalState.DISABLED, inepN.getOperationalState(), "Operational State should be Disabled"); - } - - @Test - void convertNodeWhenBadStates2() { - Node tpdr = changeTerminationPointState(tpdr100G, "XPDR1-NETWORK1", "XPDR1-CLIENT1", - AdminStates.Maintenance, State.Degraded); - List networkPortList = new ArrayList<>(); - for (TerminationPoint tp : tpdr100G.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortList.add(tp.getTpId().getValue()); - } + if (rawState == null) { + assertNull(enepN.getOperationalState(), "Operational State should not be present"); + assertNull(inepN.getOperationalState(), "Operational State should not be present"); + } else { + assertEquals(OperationalState.DISABLED, enepN.getOperationalState(), + "Operational State should be Disabled"); + assertEquals(OperationalState.DISABLED, inepN.getOperationalState(), + "Operational State should be Disabled"); } - ConvertORToTapiTopology tapiFactory = new ConvertORToTapiTopology(topologyUuid); - tapiFactory.convertNode(tpdr, networkPortList); - - Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+XPONDER".getBytes(Charset.forName("UTF-8"))) - .toString()); - org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Node dsrNode = tapiFactory - .getTapiNodes().get(new - org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.NodeKey(dsrNodeUuid)); - Uuid enetworkNepUuid = new Uuid( - UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+eODU+XPDR1-CLIENT1").getBytes(Charset.forName("UTF-8"))) - .toString()); - Uuid inetworkNepUuid = new Uuid( - UUID.nameUUIDFromBytes(("XPDR-A1-XPDR1+iODU+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8"))) - .toString()); - OwnedNodeEdgePoint enepN = dsrNode.nonnullOwnedNodeEdgePoint().get(new OwnedNodeEdgePointKey(enetworkNepUuid)); - assertEquals(AdministrativeState.LOCKED, enepN.getAdministrativeState(), - "Administrative State should be Locked"); - assertEquals(OperationalState.DISABLED, enepN.getOperationalState(), "Operational State should be Disabled"); - - OwnedNodeEdgePoint inepN = dsrNode.nonnullOwnedNodeEdgePoint().get(new OwnedNodeEdgePointKey(inetworkNepUuid)); - assertEquals(AdministrativeState.LOCKED, inepN.getAdministrativeState(), - "Administrative State should be Locked"); - assertEquals(OperationalState.DISABLED, inepN.getOperationalState(), "Operational State should be Disabled"); - } @Test void convertNodeForTransponder100G() { - ConvertORToTapiTopology tapiFactory = new ConvertORToTapiTopology(topologyUuid); - List networkPortList = new ArrayList<>(); - for (TerminationPoint tp : tpdr100G.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortList.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(tpdr100G, networkPortList); - List tapiNodes - = tapiFactory.getTapiNodes().values().stream() - .sorted((n1, n2) -> n1.getUuid().getValue().compareTo(n2.getUuid().getValue())) - .collect(Collectors.toList()); - - assertEquals(1, tapiFactory.getTapiNodes().size(), "Node list size should be 1 (DSR-ODU merged)"); - assertEquals(0, tapiFactory.getTapiLinks().size(), "Link list size should be 0 : no more transitional link"); - - Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+XPONDER".getBytes(Charset.forName("UTF-8"))) - .toString()); - checkDsrNode(tapiNodes.get(0), dsrNodeUuid, "tpdr", "XPDR-A1-XPDR1"); + rawConvertNode(tpdr100G, "tpdr", "XPDR-A1-XPDR1"); } @Test void convertNodeForOtnMuxponder() { - ConvertORToTapiTopology tapiFactory = new ConvertORToTapiTopology(topologyUuid); - List networkPortList = new ArrayList<>(); - for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortList.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnMuxA, networkPortList); - List tapiNodes - = tapiFactory.getTapiNodes().values().stream() - .sorted((n1, n2) -> n1.getUuid().getValue().compareTo(n2.getUuid().getValue())) - .collect(Collectors.toList()); - - assertEquals(1, tapiFactory.getTapiNodes().size(), "Node list size should be 1 (DSR-ODU merged)"); - assertEquals(0, tapiFactory.getTapiLinks().size(), "Link list size should be 0 : no more transitional link"); - Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+XPONDER".getBytes(Charset.forName("UTF-8"))) - .toString()); - checkDsrNode(tapiNodes.get(0), dsrNodeUuid, "mux", "SPDR-SA1-XPDR1"); + rawConvertNode(otnMuxA, "mux", "SPDR-SA1-XPDR1"); } @Test void convertNodeForOtnSwitch() { - ConvertORToTapiTopology tapiFactory = new ConvertORToTapiTopology(topologyUuid); - List networkPortList = new ArrayList<>(); - for (TerminationPoint tp : otnSwitch.augmentation(Node1.class).getTerminationPoint().values()) { - if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) { - networkPortList.add(tp.getTpId().getValue()); - } - } - tapiFactory.convertNode(otnSwitch, networkPortList); - List tapiNodes - = tapiFactory.getTapiNodes().values().stream() - .sorted((n1, n2) -> n1.getUuid().getValue().compareTo(n2.getUuid().getValue())) - .collect(Collectors.toList()); - - assertEquals(1, tapiFactory.getTapiNodes().size(), "Node list size should be 1 (DSR-ODU merged)"); - assertEquals(0, tapiFactory.getTapiLinks().size(), "Link list size should be 0 : no more transitional link"); - - Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR2+XPONDER".getBytes(Charset.forName("UTF-8"))) - .toString()); - checkDsrNode(tapiNodes.get(0), dsrNodeUuid, "switch", "SPDR-SA1-XPDR2"); + rawConvertNode(otnSwitch, "switch", "SPDR-SA1-XPDR2"); } + @Test void convertNodeForRoadmWhenNoOtnMuxAttached() { ConvertORTopoToTapiFullTopo tapiFullFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink); @@ -511,8 +418,25 @@ public class ConvertORTopoToFullTapiTopoTest extends AbstractTest { "ROADM-A1+PHOTONIC_MEDIA_OTS+SRG1-PP2-TXRXtoSPDR-SA1-XPDR1+PHOTONIC_MEDIA_OTS+XPDR1-NETWORK1"); } - private void checkDsrNode(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Node node, - Uuid node9Uuid, String dsrNodeType, String nodeId) { + private void rawConvertNode(Node node0, String dsrNodeType, String nodeId) { + ConvertORToTapiTopology tapiFactory = new ConvertORToTapiTopology(topologyUuid); + tapiFactory.convertNode( + node0, + node0.augmentation(Node1.class).getTerminationPoint().values().stream() + .filter(tp -> tp.augmentation(TerminationPoint1.class).getTpType() + .equals(OpenroadmTpType.XPONDERNETWORK)) + .map(tp -> tp.getTpId().getValue()) + .collect(Collectors.toList())); + assertEquals(1, tapiFactory.getTapiNodes().size(), "Node list size should be 1 (DSR-ODU merged)"); + assertEquals(0, tapiFactory.getTapiLinks().size(), "Link list size should be 0 : no more transitional link"); + //checkDsrNode(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Node node, + // Uuid node9Uuid, String dsrNodeType, String nodeId) { + Uuid node9Uuid = + new Uuid(UUID.nameUUIDFromBytes((nodeId + "+XPONDER").getBytes(Charset.forName("UTF-8"))).toString()); + var node = + tapiFactory.getTapiNodes().values().stream() + .sorted((n1, n2) -> n1.getUuid().getValue().compareTo(n2.getUuid().getValue())) + .findFirst().orElseThrow(); assertEquals(node9Uuid, node.getUuid(), "incorrect node uuid"); assertEquals(nodeId + "+XPONDER", node.getName().get(new NameKey("dsr/odu node name")).getValue(), "incorrect node name"); @@ -1077,7 +1001,7 @@ public class ConvertORTopoToFullTapiTopoTest extends AbstractTest { assertTrue( lpql.size() < lpqList.size(), //TODO lpqList.size() = 4 here -> check if this is the correct formula from an optical standpoint - "eODU nep should support less than " + lpqList.size() + " kind of cep, depending on client port"); + "eODU nep should support less than " + lpqList.size() + " kind of cep, it depends on client port"); assertTrue( lpqList.stream().anyMatch(splc -> lpql.contains(splc)), "eODU nep should support 1 kind of cep"); -- 2.36.6