From: manuedelf Date: Tue, 1 Dec 2020 07:46:23 +0000 (+0100) Subject: PCE modification in order to prepare flexgrid X-Git-Tag: 3.0.0~62 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=dd3a2a048df0afd2dfcf1b701dd4cc8bda76afdb;p=transportpce.git PCE modification in order to prepare flexgrid - add version to PCeNode because spectrum assignment will depend on node version - add SpectrumAssignement class for result of spectrum assignment - update functional pce and gnpy functional tests to manage version through portmapping JIRA: TRNSPRTPCE-230 Signed-off-by: manuedelf Change-Id: I02bd02742b25c4b2e2f5e0e710346e121a9dea47 --- diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/model/SpectrumAssignment.java b/pce/src/main/java/org/opendaylight/transportpce/pce/model/SpectrumAssignment.java new file mode 100644 index 000000000..77f7f8c67 --- /dev/null +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/model/SpectrumAssignment.java @@ -0,0 +1,93 @@ +/* + * Copyright © 2020 Orange, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.transportpce.pce.model; + +public class SpectrumAssignment { + /** + * Begin index for available spectrum assignment. + */ + int beginIndex; + + /** + * End index for available spectrum assignment. + */ + int stopIndex; + + /** + * True if spectrum assignement is for flexible grid, false otherwise (1.2.1 device). + */ + boolean flexGrid; + + public SpectrumAssignment(int beginIndex, int stopIndex) { + super(); + this.beginIndex = beginIndex; + this.stopIndex = stopIndex; + } + + /** + * Return the begin index of spectrum assignment. + * @return the beginIndex + */ + public int getBeginIndex() { + return beginIndex; + } + + /** + * Set the begin index of spectrum assignment. + * @param beginIndex the beginIndex to set + */ + public void setBeginIndex(int beginIndex) { + this.beginIndex = beginIndex; + } + + /** + * Return the end index of spectrum assignment. + * @return the stopIndex + */ + public int getStopIndex() { + return stopIndex; + } + + /** + * Set the stop index of spectrum assignment. + * @param stopIndex the stopIndex to set + */ + public void setStopIndex(int stopIndex) { + this.stopIndex = stopIndex; + } + + /** + * True if flexgrid false otherwise. + * @return the flexGrid + */ + public boolean isFlexGrid() { + return flexGrid; + } + + /** + * Set it to true for flexgrid, false otherwise. + * @param flexGrid the flexGrid to set + */ + public void setFlexGrid(boolean flexGrid) { + this.flexGrid = flexGrid; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("SpectrumAssignment [beginIndex=").append(beginIndex).append(", stopIndex=").append(stopIndex) + .append(", flexGrid=").append(flexGrid).append("]"); + return builder.toString(); + } +} diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java index bfd2822a1..49650f08d 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java @@ -20,6 +20,8 @@ import java.util.stream.Collectors; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.common.ResponseCodes; +import org.opendaylight.transportpce.common.mapping.MappingUtils; +import org.opendaylight.transportpce.common.mapping.MappingUtilsImpl; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.pce.constraints.PceConstraints; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput; @@ -79,6 +81,8 @@ public class PceCalculation { NONE, HARD_EXCLUDE, HARD_INCLUDE, HARD_DIVERSITY, SOFT_EXCLUDE, SOFT_INCLUDE, SOFT_DIVERSITY; } + private MappingUtils mappingUtils; + public PceCalculation(PathComputationRequestInput input, NetworkTransactionService networkTransactionService, PceConstraints pceHardConstraints, PceConstraints pceSoftConstraints, PceResult rc) { this.input = input; @@ -86,6 +90,7 @@ public class PceCalculation { this.returnStructure = rc; this.pceHardConstraints = pceHardConstraints; + this.mappingUtils = new MappingUtilsImpl(networkTransactionService.getDataBroker()); parseInput(); } @@ -465,7 +470,6 @@ public class PceCalculation { private boolean validateNode(Node node) { LOG.debug("validateNode: node {} ", node); - // PceNode will be used in Graph algorithm Node1 node1 = node.augmentation(Node1.class); if (node1 == null) { @@ -473,8 +477,14 @@ public class PceCalculation { return false; } OpenroadmNodeType nodeType = node1.getNodeType(); - - PceOpticalNode pceNode = new PceOpticalNode(node, nodeType); + String deviceNodeId = MapUtils.getSupNetworkNode(node); + // Should never happen but because of existing topology test files + // we have to manage this case + if (deviceNodeId == null || deviceNodeId.isBlank()) { + deviceNodeId = node.getNodeId().getValue(); + } + LOG.info("Device node id {} for {}", deviceNodeId, node); + PceOpticalNode pceNode = new PceOpticalNode(node, nodeType, mappingUtils.getOpenRoadmVersion(deviceNodeId)); pceNode.validateAZxponder(anodeId, znodeId, input.getServiceAEnd().getServiceFormat()); pceNode.initWLlist(); diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java index c95e4115a..127fa26d8 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java @@ -37,4 +37,10 @@ public interface PceNode { Map> getAvailableTribPorts(); Map> getAvailableTribSlots(); + + /** + * Get the version of node. + * @return the OpenROADM yang release supported by the node. + */ + String getVersion(); } diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java index ebb876748..4afbf70f6 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java @@ -45,14 +45,16 @@ public class PceOpticalNode implements PceNode { private List outgoingLinks = new ArrayList<>(); private Map clientPerNwTp = new HashMap<>(); private final AvailFreqMapsKey freqMapKey = new AvailFreqMapsKey(GridConstant.C_BAND); + private String version; - public PceOpticalNode(Node node, OpenroadmNodeType nodeType) { - if (node != null && node.getNodeId() != null && nodeType != null) { + public PceOpticalNode(Node node, OpenroadmNodeType nodeType, String version) { + if (node != null && node.getNodeId() != null && nodeType != null && version != null) { this.node = node; this.nodeId = node.getNodeId(); this.nodeType = nodeType; + this.version = version; } else { - LOG.error("PceNode: one of parameters is not populated : nodeId, node type"); + LOG.error("PceNode: one of parameters is not populated : nodeId, node type, version"); this.valid = false; } } @@ -368,4 +370,14 @@ public class PceOpticalNode implements PceNode { wlIndex++; } } + + /* + * (non-Javadoc) + * + * @see org.opendaylight.transportpce.pce.networkanalyzer.PceNode#getVersion() + */ + @Override + public String getVersion() { + return this.version; + } } diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java index 0d5bb481a..8f9c4940b 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java @@ -522,4 +522,15 @@ public class PceOtnNode implements PceNode { public boolean checkWL(long index) { return false; } + + /* + * (non-Javadoc) + * + * @see org.opendaylight.transportpce.pce.networkanalyzer.PceNode#getVersion() + */ + @Override + public String getVersion() { + // TODO Auto-generated method stub + return null; + } } diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTests.java b/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTests.java index 52a56a833..dcc9dcb79 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTests.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTests.java @@ -13,6 +13,7 @@ import java.util.Map; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.transportpce.common.network.NetworkTransactionImpl; import org.opendaylight.transportpce.common.network.RequestProcessor; import org.opendaylight.transportpce.pce.constraints.PceConstraints; @@ -51,9 +52,9 @@ public class PcePathDescriptionTests extends AbstractTest { NodeBuilder node1Builder = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()); node = node1Builder.setNodeId(new NodeId("test")).build(); PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); PceOpticalNode pceOpticalNode2 = new PceOpticalNode(node, - OpenroadmNodeType.SRG); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode2); pceLink.setClient("XPONDER-CLIENT"); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsTest.java index 1ad4a2bf5..ad6b006bf 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsTest.java @@ -107,7 +107,7 @@ public class PceConstraintsTest extends AbstractTest { @Test public void getIncludePceNodesTest() { Assert.assertTrue(pceConstraints.getIncludePceNodes().size() == 0); - pceConstraints.setIncludePceNode(new PceOpticalNode(null, null)); + pceConstraints.setIncludePceNode(new PceOpticalNode(null, null, null)); Assert.assertTrue(pceConstraints.getIncludePceNodes().size() == 1); } diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java index 6a40ff16f..fc32c6406 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java @@ -11,6 +11,7 @@ package org.opendaylight.transportpce.pce.graph; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.transportpce.pce.networkanalyzer.PceLink; import org.opendaylight.transportpce.pce.networkanalyzer.PceOpticalNode; import org.opendaylight.transportpce.pce.utils.NodeUtils; @@ -36,8 +37,10 @@ public class PceGraphEdgeTest { // Link link=genereateLinkBuilder(); node = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()).build(); - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, OpenroadmNodeType.SRG); - PceOpticalNode pceOpticalNode2 = new PceOpticalNode(node, OpenroadmNodeType.SRG); + PceOpticalNode pceOpticalNode = new PceOpticalNode(node, + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + PceOpticalNode pceOpticalNode2 = new PceOpticalNode(node, + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode2); pceLink.setClient("XPONDER-CLIENT"); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java index e8fbbc1c1..89ef62efc 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java @@ -13,6 +13,7 @@ import java.util.Optional; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.transportpce.pce.constraints.PceConstraints; import org.opendaylight.transportpce.pce.networkanalyzer.PceLink; import org.opendaylight.transportpce.pce.networkanalyzer.PceNode; @@ -55,13 +56,15 @@ public class PceGraphTest { node = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()) .setNodeId(nodeId).withKey(new NodeKey(nodeId)) .build(); - pceOpticalNode = new PceOpticalNode(node, OpenroadmNodeType.DEGREE); + pceOpticalNode = new PceOpticalNode(node, + OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceOpticalNode.checkWL(1); pceOpticalNode.checkWL(2); NodeId nodeId2 = new NodeId("OpenROADM-3-1-DEG1"); Node node2 = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()) .setNodeId(nodeId2).withKey(new NodeKey(nodeId2)).build(); - pceOpticalNode2 = new PceOpticalNode(node2, OpenroadmNodeType.DEGREE); + pceOpticalNode2 = new PceOpticalNode(node2, + OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceOpticalNode2.checkWL(1); pceOpticalNode2.checkWL(2); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode2); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java index 2b483a9f5..8e1dabc6a 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java @@ -15,6 +15,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.transportpce.common.NetworkUtils; +import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.transportpce.test.AbstractTest; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; @@ -67,7 +68,8 @@ public class PceLinkTest extends AbstractTest { "srcTp", "destTp").build(); NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, OpenroadmNodeType.SRG); + PceOpticalNode pceOpticalNode = new PceOpticalNode(node, + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -79,7 +81,8 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, OpenroadmNodeType.SRG); + PceOpticalNode pceOpticalNode = new PceOpticalNode(node, + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -92,7 +95,7 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -106,7 +109,7 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -119,7 +122,7 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); Assert.assertNotNull(MapUtils.getOmsAttributesSpan(link)); Assert.assertNotNull(pceLink.calcSpanOSNR()); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java index a9b7d007e..af6018e02 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java @@ -16,6 +16,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.transportpce.common.NetworkUtils; +import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.common.fixedflex.GridUtils; import org.opendaylight.transportpce.test.AbstractTest; @@ -68,7 +69,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void isValidTest() { OpenroadmNodeType nodeType = OpenroadmNodeType.ROADM; - pceOpticalNode = new PceOpticalNode(node, nodeType); + pceOpticalNode = new PceOpticalNode(node, nodeType, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); Assert.assertTrue(pceOpticalNode.isValid()); } @@ -76,7 +77,7 @@ public class PceOpticalNodeTest extends AbstractTest { public void testInitSrgTps() { pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.ROADM); + OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceOpticalNode.initSrgTps(); pceOpticalNode.initXndrTps(ServiceFormat.OMS); pceOpticalNode.initWLlist(); @@ -93,7 +94,7 @@ public class PceOpticalNodeTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.XPONDERNETWORK); Node specificNode = node1Builder.build(); pceOpticalNode = new PceOpticalNode(specificNode, - OpenroadmNodeType.SRG); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceOpticalNode.initWLlist(); Assert.assertTrue(pceOpticalNode.isValid()); Assert.assertTrue(pceOpticalNode.checkWL(12)); @@ -103,7 +104,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testInitXndrTpDegTypes() { pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.DEGREE); + OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceOpticalNode.initWLlist(); Assert.assertTrue(pceOpticalNode.isValid()); Assert.assertFalse(pceOpticalNode.checkWL(12)); @@ -113,7 +114,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testInitXndrTpXpondrTypes() { pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.XPONDER); + OpenroadmNodeType.XPONDER, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceOpticalNode.initWLlist(); Assert.assertTrue(pceOpticalNode.isValid()); Assert.assertTrue(pceOpticalNode.checkWL(12)); @@ -123,7 +124,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testInitWLlist() { pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.ROADM); + OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceOpticalNode.initXndrTps(ServiceFormat.OMS); pceOpticalNode.initWLlist(); Assert.assertFalse(pceOpticalNode.isValid()); @@ -134,7 +135,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testGetRdmSrgClient() { pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.ROADM); + OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceOpticalNode.initSrgTps(); Assert.assertNull(pceOpticalNode.getRdmSrgClient("7")); Assert.assertFalse(pceOpticalNode.isValid()); @@ -147,7 +148,7 @@ public class PceOpticalNodeTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilderEmpty(geSupportingNodes(), OpenroadmTpType.SRGTXRXPP); Node specificNode = node1Builder.setNodeId(new NodeId("test")).build(); pceOpticalNode = new PceOpticalNode(specificNode, - OpenroadmNodeType.ROADM); + OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceOpticalNode.initSrgTps(); pceOpticalNode.initWLlist(); pceOpticalNode.initXndrTps(ServiceFormat.OMS); @@ -160,7 +161,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testGetRdmSrgClientDeg() { pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.DEGREE); + OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceOpticalNode.initSrgTps(); Assert.assertNull(pceOpticalNode.getRdmSrgClient("7")); Assert.assertFalse(pceOpticalNode.isValid()); @@ -173,7 +174,7 @@ public class PceOpticalNodeTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.SRGTXCP); Node specificNode = node1Builder.build(); pceOpticalNode = new PceOpticalNode(specificNode, - OpenroadmNodeType.ROADM); + OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceOpticalNode.initSrgTps(); Assert.assertFalse(pceOpticalNode.isValid()); Assert.assertFalse(pceOpticalNode.checkWL(12)); @@ -186,7 +187,7 @@ public class PceOpticalNodeTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.DEGREERXTTP); node = node1Builder.build(); pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.ROADM); + OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); pceOpticalNode.initSrgTps(); Assert.assertNull(pceOpticalNode.getRdmSrgClient("2")); Assert.assertFalse(pceOpticalNode.isValid()); diff --git a/tests/sample_configs/gnpy/gnpy_portmapping_121.json b/tests/sample_configs/gnpy/gnpy_portmapping_121.json new file mode 100644 index 000000000..aa064bc47 --- /dev/null +++ b/tests/sample_configs/gnpy/gnpy_portmapping_121.json @@ -0,0 +1,169 @@ +{ + "nodes": [ + { + "node-id": "XPONDER-1", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-2", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-3", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-4", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-5", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-1", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-2", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-3", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-4", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-5", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + } + ] +} \ No newline at end of file diff --git a/tests/sample_configs/pce_portmapping_121.json b/tests/sample_configs/pce_portmapping_121.json new file mode 100644 index 000000000..a2e9c3bff --- /dev/null +++ b/tests/sample_configs/pce_portmapping_121.json @@ -0,0 +1,679 @@ +{ + "nodes": [ + { + "node-id": "OpenROADM-1-1", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-1-1", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-1-2", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-1-2", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-1-3", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-1-3", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-1-4", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-1-4", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-2-1", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-2-1", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-2-2", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-2-2", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-2-3", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-2-3", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-2-4", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-2-4", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-3-1", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-3-1", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-3-2", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-3-2", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-3-3", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-3-3", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-3-4", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-3-4", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-4-1", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-4-1", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-4-2", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-4-2", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-4-3", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-4-3", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-4-4", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-4-4", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-5-1", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-5-1", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-5-2", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-5-2", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-5-3", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-5-3", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "OpenROADM-5-4", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER-5-4", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPDRC01", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "ROADMA01", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "ROADMC01", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPDRA01", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + }, + { + "node-id": "XPONDER", + "node-info": { + "node-type": "xpdr", + "openroadm-version": "1.2.1", + "node-clli": "NodeX", + "node-vendor": "vendorA", + "node-model": "model1", + "node-ip-address": "1.2.3.4" + }, + "mapping": [], + "mc-capabilities": [], + "cp-to-degree": [], + "switching-pool-lcp": [] + } + ] +} \ No newline at end of file diff --git a/tests/transportpce_tests/1.2.1/test_gnpy.py b/tests/transportpce_tests/1.2.1/test_gnpy.py index 09812bd8d..c0752cb7f 100644 --- a/tests/transportpce_tests/1.2.1/test_gnpy.py +++ b/tests/transportpce_tests/1.2.1/test_gnpy.py @@ -25,6 +25,7 @@ class TransportGNPYtesting(unittest.TestCase): topo_cllinet_data = None topo_ordnet_data = None topo_ordtopo_data = None + port_mapping_data = None processes = None @classmethod @@ -46,6 +47,10 @@ class TransportGNPYtesting(unittest.TestCase): "..", "..", "sample_configs", "gnpy", "openroadmTopology.json") with open(TOPO_ORDTOPO_FILE, 'r') as topo_ordtopo: cls.topo_ordtopo_data = topo_ordtopo.read() + PORT_MAPPING_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), + "..", "..", "sample_configs", "gnpy", "gnpy_portmapping_121.json") + with open(PORT_MAPPING_FILE, 'r') as port_mapping: + cls.port_mapping_data = port_mapping.read() sample_files_parsed = True except PermissionError as err: print("Permission Error when trying to read sample files\n", err) @@ -72,6 +77,12 @@ class TransportGNPYtesting(unittest.TestCase): def setUp(self): time.sleep(2) + # Load port mapping + def test_00_load_port_mapping(self): + response = test_utils.rawpost_request(test_utils.URL_FULL_PORTMAPPING, self.port_mapping_data) + self.assertEqual(response.status_code, requests.codes.no_content) + time.sleep(2) + # Mount the different topologies def test_01_connect_clliNetwork(self): response = test_utils.rawput_request(test_utils.URL_CONFIG_CLLI_NET, self.topo_cllinet_data) @@ -204,6 +215,11 @@ class TransportGNPYtesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.ok) time.sleep(3) + # Delete portmapping + def test_11_delete_port_mapping(self): + response = test_utils.delete_request(test_utils.URL_FULL_PORTMAPPING) + self.assertEqual(response.status_code, requests.codes.ok) + time.sleep(2) if __name__ == "__main__": # logging.basicConfig(filename='./transportpce_tests/log/response.log',filemode='w',level=logging.DEBUG) diff --git a/tests/transportpce_tests/1.2.1/test_pce.py b/tests/transportpce_tests/1.2.1/test_pce.py index e7e255f91..60b0be417 100644 --- a/tests/transportpce_tests/1.2.1/test_pce.py +++ b/tests/transportpce_tests/1.2.1/test_pce.py @@ -24,6 +24,7 @@ class TransportPCEtesting(unittest.TestCase): simple_topo_bi_dir_data = None simple_topo_uni_dir_data = None complex_topo_uni_dir_data = None + port_mapping_data = None processes = None @classmethod @@ -46,6 +47,10 @@ class TransportPCEtesting(unittest.TestCase): "..", "..", "sample_configs", "NW-for-test-5-4.xml") with open(TOPO_UNI_DIR_COMPLEX_FILE, 'r') as topo_uni_dir_complex: cls.complex_topo_uni_dir_data = topo_uni_dir_complex.read() + PORT_MAPPING_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), + "..", "..", "sample_configs", "pce_portmapping_121.json") + with open(PORT_MAPPING_FILE, 'r') as port_mapping: + cls.port_mapping_data = port_mapping.read() sample_files_parsed = True except PermissionError as err: print("Permission Error when trying to read sample files\n", err) @@ -72,6 +77,12 @@ class TransportPCEtesting(unittest.TestCase): def setUp(self): # instruction executed before each test method time.sleep(1) + # Load port mapping + def test_00_load_port_mapping(self): + response = test_utils.rawpost_request(test_utils.URL_FULL_PORTMAPPING, self.port_mapping_data) + self.assertEqual(response.status_code, requests.codes.no_content) + time.sleep(2) + # Load simple bidirectional topology def test_01_load_simple_topology_bi(self): response = test_utils.put_xmlrequest(test_utils.URL_CONFIG_ORDM_TOPO, self.simple_topo_bi_dir_data) @@ -394,6 +405,12 @@ class TransportPCEtesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.conflict) time.sleep(1) + # Delete portmapping + def test_26_delete_port_mapping(self): + response = test_utils.delete_request(test_utils.URL_FULL_PORTMAPPING) + self.assertEqual(response.status_code, requests.codes.ok) + time.sleep(2) + if __name__ == "__main__": unittest.main(verbosity=2) diff --git a/tests/transportpce_tests/common/test_utils.py b/tests/transportpce_tests/common/test_utils.py index 34238bcc5..fc8a4f69c 100644 --- a/tests/transportpce_tests/common/test_utils.py +++ b/tests/transportpce_tests/common/test_utils.py @@ -51,6 +51,7 @@ URL_SERVICE_PATH = "{}/operations/transportpce-device-renderer:service-path" URL_OTN_SERVICE_PATH = "{}/operations/transportpce-device-renderer:otn-service-path" URL_CREATE_OTS_OMS = "{}/operations/transportpce-device-renderer:create-ots-oms" URL_PATH_COMPUTATION_REQUEST = "{}/operations/transportpce-pce:path-computation-request" +URL_FULL_PORTMAPPING = "{}/config/transportpce-portmapping:network" TYPE_APPLICATION_JSON = {'Content-Type': 'application/json', 'Accept': 'application/json'} TYPE_APPLICATION_XML = {'Content-Type': 'application/xml', 'Accept': 'application/xml'} @@ -194,6 +195,13 @@ def rawput_request(url, data): headers=TYPE_APPLICATION_JSON, auth=(ODL_LOGIN, ODL_PWD)) +def rawpost_request(url, data): + return requests.request( + "POST", url.format(RESTCONF_BASE_URL), + data=data, + headers=TYPE_APPLICATION_JSON, + auth=(ODL_LOGIN, ODL_PWD)) + def delete_request(url): return requests.request(