X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=networkmodel%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fnetworkmodel%2Futil%2FOpenRoadmTopologyTest.java;h=4acee5cbda6f2b79394b0f1e47bd0f8be18f7c83;hb=56d1795b647693ec1d620d6aca2c4003e3b302ca;hp=5e651ceeffa27c06f7351edec37fdaeec2be3f22;hpb=68d00560b21cafc8c1438bdbcde09eeb477c436f;p=transportpce.git diff --git a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopologyTest.java b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopologyTest.java index 5e651ceef..4acee5cbd 100644 --- a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopologyTest.java +++ b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopologyTest.java @@ -19,6 +19,8 @@ import static org.mockito.Mockito.when; import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Optional; import java.util.concurrent.ExecutionException; @@ -36,19 +38,20 @@ import org.mockito.stubbing.Answer; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.NetworkUtils; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.networkmodel.dto.TopologyShard; import org.opendaylight.transportpce.networkmodel.util.test.NetworkmodelTestUtil; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.Nodes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.XpdrNodeTypes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network.Nodes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.available.freq.map.AvailFreqMaps; 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; @@ -58,6 +61,7 @@ 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.SupportingNode; 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.TpId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey; @@ -75,7 +79,7 @@ public class OpenRoadmTopologyTest { @Test public void createTopologyShardForDegreeTest() { - Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 2, 0); + Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 2, List.of()); TopologyShard topologyShard = OpenRoadmTopology.createTopologyShard(mappingNode); assertNotNull(topologyShard); assertEquals("Should contain 2 Degree nodes only", 2, topologyShard.getNodes().size()); @@ -94,19 +98,20 @@ public class OpenRoadmTopologyTest { assertEquals("Should contain 2 express links", 2, links.size()); assertEquals("ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX", links.get(0).getLinkId().getValue()); assertEquals("ROADMA01-DEG1", links.get(0).getSource().getSourceNode().getValue()); - assertEquals("DEG1-CTP-TXRX", links.get(0).getSource().getSourceTp()); + assertEquals("DEG1-CTP-TXRX", links.get(0).getSource().getSourceTp().getValue()); assertEquals("ROADMA01-DEG2", links.get(0).getDestination().getDestNode().getValue()); - assertEquals("DEG2-CTP-TXRX", links.get(0).getDestination().getDestTp()); + assertEquals("DEG2-CTP-TXRX", links.get(0).getDestination().getDestTp().getValue()); assertEquals("ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX", links.get(1).getLinkId().getValue()); assertEquals("ROADMA01-DEG2", links.get(1).getSource().getSourceNode().getValue()); - assertEquals("DEG2-CTP-TXRX", links.get(1).getSource().getSourceTp()); + assertEquals("DEG2-CTP-TXRX", links.get(1).getSource().getSourceTp().getValue()); assertEquals("ROADMA01-DEG1", links.get(1).getDestination().getDestNode().getValue()); - assertEquals("DEG1-CTP-TXRX", links.get(1).getDestination().getDestTp()); + assertEquals("DEG1-CTP-TXRX", links.get(1).getDestination().getDestTp().getValue()); } @Test public void createTopologyShardForSrgTest() { - Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 0, 1); + Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 0, + List.of(Integer.valueOf(1))); TopologyShard topologyShard = OpenRoadmTopology.createTopologyShard(mappingNode); assertNotNull(topologyShard); List nodes = topologyShard.getNodes(); @@ -115,9 +120,28 @@ public class OpenRoadmTopologyTest { checkSrgNode("1", nodes.get(0)); } + @Test + public void createTopologyShardForMultipleSrgTest() { + List srgNbs = List.of(Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(10), + Integer.valueOf(11)); + Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 0, srgNbs); + TopologyShard topologyShard = OpenRoadmTopology.createTopologyShard(mappingNode); + assertNotNull(topologyShard); + List nodes = topologyShard.getNodes().stream() + .sorted((n1, n2) -> n1.getNodeId().getValue().compareTo(n2.getNodeId().getValue())) + .collect(Collectors.toList()); + assertEquals("Should contain 4 SRG nodes", 4, nodes.size()); + assertEquals("Should contain 0 link", 0, topologyShard.getLinks().size()); + checkSrgNode("1", nodes.get(0)); + checkSrgNode("10", nodes.get(1)); + checkSrgNode("11", nodes.get(2)); + checkSrgNode("2", nodes.get(3)); + } + @Test public void createTopologyShardForCompleteRdmNodeTest() { - Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 2, 2); + Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 2, + List.of(Integer.valueOf(1), Integer.valueOf(2))); TopologyShard topologyShard = OpenRoadmTopology.createTopologyShard(mappingNode); assertNotNull(topologyShard); assertEquals("Should contain 2 Deg and 2 SRG nodes", 4, topologyShard.getNodes().size()); @@ -178,7 +202,7 @@ public class OpenRoadmTopologyTest { @Ignore @Test public void createTopologyShardForRdmWithoutClliTest() { - Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", null, 2, 0); + Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", null, 2, List.of()); TopologyShard topologyShard = OpenRoadmTopology.createTopologyShard(mappingNode); assertNull("clli must not be null", topologyShard); } @@ -190,14 +214,14 @@ public class OpenRoadmTopologyTest { String srcTp = "DEG1-CTP-TXRX"; String destTp = "SRG1-CP-TXRX"; LinkId linkId = LinkIdUtil.buildLinkId(srcNode, srcTp, dstNode, destTp); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1 link1 = - new Link1Builder().setAdministrativeState(State.InService).build(); + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Link1 link1 = + new Link1Builder().build(); Link link = new LinkBuilder() .setLinkId(linkId) - .setSource(new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp).build()) - .setDestination(new DestinationBuilder().setDestNode(new NodeId(dstNode)).setDestTp(destTp).build()) - .addAugmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1.class, link1) + .setSource(new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(new TpId(srcTp)).build()) + .setDestination(new DestinationBuilder().setDestNode(new NodeId(dstNode)).setDestTp(new TpId(destTp)) + .build()) + .addAugmentation(link1) .build(); InstanceIdentifier linkIID = InstanceIdentifier.builder(Networks.class).child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))).augmentation(Network1.class) @@ -259,7 +283,7 @@ public class OpenRoadmTopologyTest { private void checkDegreeNode(String nodeNb, Node node) { assertEquals("ROADMA01-DEG" + nodeNb, node.getNodeId().getValue()); - List supportingNodes = node.getSupportingNode().stream() + List supportingNodes = node.nonnullSupportingNode().values().stream() .sorted((sn1, sn2) -> sn1.getNetworkRef().getValue().compareTo(sn2.getNetworkRef().getValue())) .collect(Collectors.toList()); assertEquals(2, supportingNodes.size()); @@ -269,14 +293,18 @@ public class OpenRoadmTopologyTest { assertEquals("ROADMA01", supportingNodes.get(1).getNodeRef().getValue()); assertEquals(OpenroadmNodeType.DEGREE, node.augmentation(Node1.class).getNodeType()); assertEquals(Uint16.valueOf(nodeNb), node.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class) + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Node1.class) .getDegreeAttributes().getDegreeNumber()); - assertEquals(96, node.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class) - .getDegreeAttributes().getAvailableWavelengths().size()); + List availFreqMapsValues = new ArrayList<>(node.augmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Node1.class) + .getDegreeAttributes().getAvailFreqMaps().values()); + assertEquals(GridConstant.NB_OCTECTS, availFreqMapsValues.get(0).getFreqMap().length); + byte[] byteArray = new byte[GridConstant.NB_OCTECTS]; + Arrays.fill(byteArray, (byte) GridConstant.AVAILABLE_SLOT_VALUE); + assertEquals(Arrays.toString(byteArray), Arrays.toString(availFreqMapsValues.get(0).getFreqMap())); List tps = node.augmentation( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class) - .getTerminationPoint().stream() + .nonnullTerminationPoint().values().stream() .sorted((tp1, tp2) -> tp1.getTpId().getValue().compareTo(tp2.getTpId().getValue())) .collect(Collectors.toList()); assertEquals(2, tps.size()); @@ -288,7 +316,7 @@ public class OpenRoadmTopologyTest { private void checkSrgNode(String nodeNb, Node node) { assertEquals("ROADMA01-SRG" + nodeNb, node.getNodeId().getValue()); - List supportingNodes = node.getSupportingNode().stream() + List supportingNodes = node.nonnullSupportingNode().values().stream() .sorted((sn1, sn2) -> sn1.getNetworkRef().getValue().compareTo(sn2.getNetworkRef().getValue())) .collect(Collectors.toList()); assertEquals(2, supportingNodes.size()); @@ -297,12 +325,16 @@ public class OpenRoadmTopologyTest { assertEquals("openroadm-network", supportingNodes.get(1).getNetworkRef().getValue()); assertEquals("ROADMA01", supportingNodes.get(1).getNodeRef().getValue()); assertEquals(OpenroadmNodeType.SRG, node.augmentation(Node1.class).getNodeType()); - assertEquals(96, node.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class) - .getSrgAttributes().getAvailableWavelengths().size()); + List availFreqMapsValues = new ArrayList<>(node.augmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Node1.class) + .getSrgAttributes().getAvailFreqMaps().values()); + assertEquals(GridConstant.NB_OCTECTS, availFreqMapsValues.get(0).getFreqMap().length); + byte[] byteArray = new byte[GridConstant.NB_OCTECTS]; + Arrays.fill(byteArray, (byte) GridConstant.AVAILABLE_SLOT_VALUE); + assertEquals(Arrays.toString(byteArray), Arrays.toString(availFreqMapsValues.get(0).getFreqMap())); List tps = node.augmentation( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class) - .getTerminationPoint().stream() + .nonnullTerminationPoint().values().stream() .sorted((tp1, tp2) -> tp1.getTpId().getValue().compareTo(tp2.getTpId().getValue())) .collect(Collectors.toList()); assertEquals(5, tps.size()); @@ -314,7 +346,7 @@ public class OpenRoadmTopologyTest { private void checkTpdrNode(Node node) { assertEquals("XPDRA01-XPDR1", node.getNodeId().getValue()); - List supportingNodes = node.getSupportingNode().stream() + List supportingNodes = node.nonnullSupportingNode().values().stream() .sorted((sn1, sn2) -> sn1.getNetworkRef().getValue().compareTo(sn2.getNetworkRef().getValue())) .collect(Collectors.toList()); assertEquals(2, supportingNodes.size()); @@ -325,25 +357,30 @@ public class OpenRoadmTopologyTest { assertEquals(OpenroadmNodeType.XPONDER, node.augmentation(Node1.class).getNodeType()); List tps = node.augmentation( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class) - .getTerminationPoint().stream() + .nonnullTerminationPoint().values().stream() .sorted((tp1, tp2) -> tp1.getTpId().getValue().compareTo(tp2.getTpId().getValue())) .collect(Collectors.toList()); assertEquals(4, tps.size()); assertEquals("XPDR1-CLIENT1", tps.get(0).getTpId().getValue()); assertEquals(OpenroadmTpType.XPONDERCLIENT, tps.get(0).augmentation(TerminationPoint1.class).getTpType()); - assertEquals("XPDR1-NETWORK1", tps.get(0).augmentation( - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1.class) - .getAssociatedConnectionMapPort()); + assertEquals("XPDR1-NETWORK1", tps.get(0).augmentation(TerminationPoint1.class) + .getAssociatedConnectionMapTp() + .iterator() + .next() + .getValue()); assertEquals("XPDR1-NETWORK1", tps.get(2).getTpId().getValue()); assertEquals(OpenroadmTpType.XPONDERNETWORK, tps.get(2).augmentation(TerminationPoint1.class).getTpType()); assertEquals("XPDR1-CLIENT1", tps.get(2).augmentation( - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1.class) - .getAssociatedConnectionMapPort()); + TerminationPoint1.class) + .getAssociatedConnectionMapTp() + .iterator() + .next() + .getValue()); } private void checkOtnXpdrNode(Node node) { assertEquals("XPDRA01-XPDR1", node.getNodeId().getValue()); - List supportingNodes = node.getSupportingNode().stream() + List supportingNodes = node.nonnullSupportingNode().values().stream() .sorted((sn1, sn2) -> sn1.getNetworkRef().getValue().compareTo(sn2.getNetworkRef().getValue())) .collect(Collectors.toList()); assertEquals(2, supportingNodes.size()); @@ -354,7 +391,7 @@ public class OpenRoadmTopologyTest { assertEquals(OpenroadmNodeType.XPONDER, node.augmentation(Node1.class).getNodeType()); List tps = node.augmentation( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class) - .getTerminationPoint().stream() + .nonnullTerminationPoint().values().stream() .sorted((tp1, tp2) -> tp1.getTpId().getValue().compareTo(tp2.getTpId().getValue())) .collect(Collectors.toList()); assertEquals(2, tps.size());