* 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.utils;
+package org.opendaylight.transportpce.pce;
import org.junit.Assert;
import org.junit.Test;
-import org.opendaylight.transportpce.pce.PceComplianceCheckResult;
public class PceComplianceCheckResultTest {
--- /dev/null
+/*
+ * Copyright © 2020 Orange Labs, 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;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.opendaylight.transportpce.pce.utils.PceTestData;
+import org.opendaylight.transportpce.test.AbstractTest;
+
+public class PceComplianceCheckTest extends AbstractTest {
+
+
+ @Before
+ public void setup() {
+
+ }
+
+ @Test
+ public void testCheckFalse() {
+ Assert.assertFalse(
+ PceComplianceCheck.check(PceTestData.getEmptyPCERequest()).hasPassed());
+ }
+
+ @Test
+ public void testCheckTrue() {
+ Assert.assertTrue(
+ PceComplianceCheck.check(PceTestData.getEmptyPCERequestServiceNameWithRequestId()).hasPassed());
+ }
+
+ @Test
+ public void testCheckFalseWihtoutRequestID() {
+ Assert.assertFalse(
+ PceComplianceCheck.check(PceTestData.getEmptyPCERequestServiceNameWithOutRequestId()).hasPassed());
+ }
+}
--- /dev/null
+/*
+ * 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;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.transportpce.common.NetworkUtils;
+import org.opendaylight.transportpce.pce.networkanalyzer.PceLink;
+import org.opendaylight.transportpce.pce.networkanalyzer.PceOpticalNode;
+import org.opendaylight.transportpce.pce.networkanalyzer.PceResult;
+import org.opendaylight.transportpce.test.AbstractTest;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
+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.NodeId;
+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.rev180226.networks.network.node.SupportingNode;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
+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.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;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder;
+
+
+
+public class PcePathDescriptionTest extends AbstractTest {
+
+ private List<PceLink> pathAtoZ = null;
+ private List<PceLink> pathZtoA = null;
+ private PceResult rc;
+ private Map<LinkId, PceLink> allPceLinks = null;
+ private static PcePathDescription pcePathDescription = null;
+ private static final String LINK_ID_FORMAT = "%1$s-%2$sto%3$s-%4$s";
+ private PceSendingPceRPCs pceSendingPceRPCs;
+
+ @Before
+ public void setup() {
+
+ Link link = createLink("srcNode", "destNode", "srcTp", "destTp").build();
+
+
+ /*PceOtnNode pceOtnNode =
+ new PceOtnNode(node, OpenroadmNodeType.DEGREE, new NodeId("optical"), ServiceFormat.OTM.getName(), "test");*/
+ //PceLink pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode);
+ /* rc = new PceResult();
+
+ pcePathDescription = new PcePathDescription(List.of(pceLink), new HashMap<>(), rc);*/
+ }
+
+
+ @Test
+ public void buildPceOpticalNodeRoadmTest() {
+ NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
+ Node node = node1Builder.build();
+
+ PceOpticalNode pceOpticalNode = new PceOpticalNode(node,
+ OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
+ pceOpticalNode.initSrgTps();
+ pceOpticalNode.initXndrTps();
+ pceOpticalNode.initWLlist();
+ Assert.assertFalse(pceOpticalNode.isValid());
+ Assert.assertFalse(pceOpticalNode.checkWL(12));
+ Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
+ }
+
+ private List<SupportingNode> geSupportingNodes() {
+ List<SupportingNode> supportingNodes1 = new ArrayList<>();
+
+ supportingNodes1
+ .add(new SupportingNodeBuilder()
+ .setNodeRef(new NodeId("node 2"))
+ .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .build());
+ return supportingNodes1;
+ }
+
+ private NodeBuilder getNodeBuilder(List<SupportingNode> supportingNodes1) {
+ return new NodeBuilder()
+ .setNodeId(new NodeId("node 1"))
+ .withKey(new NodeKey(new NodeId("node 1")))
+ .setSupportingNode(supportingNodes1);
+ }
+
+ private static LinkBuilder createLink(String srcNode, String destNode, String srcTp, String destTp) {
+ //create source link
+ SourceBuilder ietfSrcLinkBldr = new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp);
+ //create destination link
+ DestinationBuilder ietfDestLinkBldr = new DestinationBuilder().setDestNode(new NodeId(destNode))
+ .setDestTp(destTp);
+ LinkId linkId = new LinkId(String.format(LINK_ID_FORMAT, srcNode, srcTp, destNode, destTp));
+ return new LinkBuilder()
+ .setSource(ietfSrcLinkBldr.build())
+ .setDestination(ietfDestLinkBldr.build())
+ .setLinkId(linkId)
+ .withKey(new LinkKey(linkId));
+ }
+}
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.transportpce.common.DataStoreContext;
+import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
+import org.opendaylight.transportpce.common.network.RequestProcessor;
import org.opendaylight.transportpce.pce.utils.PceTestData;
+import org.opendaylight.transportpce.test.AbstractTest;
-public class PceSendingPceRPCsTest {
+
+
+@RunWith(MockitoJUnitRunner.class)
+public class PceSendingPceRPCsTest extends AbstractTest {
private PceSendingPceRPCs pceSendingPceRPCs;
+ private NetworkTransactionImpl networkTransaction;
+ private DataStoreContext dataStoreContext = this.getDataStoreContextUtil();
+ private DataBroker dataBroker = dataStoreContext.getDataBroker();
+
@Before
- public void setUp() {
- pceSendingPceRPCs = new PceSendingPceRPCs(PceTestData.getPCE_test1_request_54(), null);
+ public void setUp() throws Exception {
+// PceTestUtils.writeTopologyIntoDataStore(
+// dataBroker, dataStoreContext, "./topologyData/basePceTopology.json");
+ networkTransaction = new NetworkTransactionImpl(new RequestProcessor(dataBroker));
+ pceSendingPceRPCs = new PceSendingPceRPCs();
+ pceSendingPceRPCs =
+ new PceSendingPceRPCs(PceTestData.getPCERequest(), networkTransaction
+ );
}
@Test
@Test
public void pathComputationTest() throws Exception {
-
pceSendingPceRPCs.pathComputation();
}
}
@Test
- public void pathComputationWithConstraintsTest() {
- pceSendingPceRPCs.pathComputationWithConstraints(null, null);
+ public void gnpyAtoZ() {
+ Assert.assertNull(pceSendingPceRPCs.getGnpyAtoZ());
}
+
+ @Test
+ public void getGnpyZtoA() {
+ Assert.assertNull(pceSendingPceRPCs.getGnpyZtoA());
+ }
+
+
}
--- /dev/null
+/*
+ * Copyright © 2020 Orange Labs, 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.constraints;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.opendaylight.transportpce.common.network.NetworkTransactionService;
+import org.opendaylight.transportpce.pce.utils.PceTestData;
+import org.opendaylight.transportpce.test.AbstractTest;
+
+public class PceConstraintsCalcTest extends AbstractTest {
+ private static PceConstraintsCalc pceConstraintsCalc = null;
+ private static NetworkTransactionService networkTransactionService = null;
+
+ @Before
+ public void setup() {
+ networkTransactionService = Mockito.mock(NetworkTransactionService.class);
+
+ }
+
+ @Test
+ public void testNoHardOrSoftConstrainsExists() {
+ pceConstraintsCalc = new PceConstraintsCalc(PceTestData
+ .getEmptyPCERequest(), networkTransactionService);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void testHardConstrainsExists() {
+ pceConstraintsCalc = new PceConstraintsCalc(PceTestData
+ .getPCE_test2_request_54(), networkTransactionService);
+ }
+
+ @Test
+ public void testSoftConstrainsExists() {
+ pceConstraintsCalc = new PceConstraintsCalc(PceTestData
+ .getPCERequest(), networkTransactionService);
+ }
+
+}
import java.util.ArrayList;
import java.util.List;
+
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.opendaylight.transportpce.pce.networkanalyzer.PceOpticalNode;
import org.opendaylight.transportpce.test.AbstractTest;
+
+
public class PceConstraintsTest extends AbstractTest {
private static PceConstraints pceConstraints = new PceConstraints();
}
+
+ @Test
+ public void getIncludePceNodesTest() {
+ Assert.assertTrue(pceConstraints.getIncludePceNodes().size() == 0);
+ pceConstraints.setIncludePceNode(new PceOpticalNode(null, null, null, null, null));
+ Assert.assertTrue(pceConstraints.getIncludePceNodes().size() == 1);
+
+ }
+
+ @Test
+ public void getListToIncludeTest() {
+ Assert.assertTrue(pceConstraints.getListToInclude().size() == 0);
+ PceConstraints.ResourcePair resourcePair = new PceConstraints
+ .ResourcePair(PceConstraints.ResourceType.SRLG, "test");
+ pceConstraints.setListToInclude(resourcePair);
+ Assert.assertTrue(pceConstraints.getListToInclude().size() == 1);
+ Assert.assertTrue(pceConstraints.getSRLGnames().size() == 1);
+
+ }
+
}
+
+
--- /dev/null
+/*
+ * Copyright © 2020 Orange Labs, 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.gnpy;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
+import org.opendaylight.transportpce.common.network.RequestProcessor;
+import org.opendaylight.transportpce.pce.constraints.PceConstraints;
+import org.opendaylight.transportpce.pce.constraints.PceConstraintsCalc;
+import org.opendaylight.transportpce.pce.utils.PceTestData;
+import org.opendaylight.transportpce.test.AbstractTest;
+
+@Ignore
+
+public class GnpyUtilitiesImplTest extends AbstractTest {
+
+ private GnpyUtilitiesImpl gnpyUtilitiesImpl;
+ private NetworkTransactionImpl networkTransaction;
+
+ @Before
+ public void setUp()throws Exception {
+ networkTransaction = new NetworkTransactionImpl(new RequestProcessor(this.getNewDataBroker()));
+
+ gnpyUtilitiesImpl = new GnpyUtilitiesImpl(networkTransaction, PceTestData.getPCE_test1_request_54());
+ }
+
+ @Test(expected = Exception.class)
+ public void askNewPathFromGnpyTest() throws Exception {
+ PceConstraintsCalc constraints =
+ new PceConstraintsCalc(PceTestData.getPCE_simpletopology_test1_request(), networkTransaction);
+ PceConstraints pceHardConstraints = constraints.getPceHardConstraints();
+ gnpyUtilitiesImpl.askNewPathFromGnpy(pceHardConstraints);
+ }
+
+ @Test(expected = Exception.class)
+ public void gnpyResponseOneDirectionTest() throws Exception {
+ gnpyUtilitiesImpl.gnpyResponseOneDirection(null);
+ }
+
+
+}
* 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.utils.networkanalyzer;
+package org.opendaylight.transportpce.pce.networkanalyzer;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
import org.opendaylight.transportpce.common.network.RequestProcessor;
-import org.opendaylight.transportpce.pce.networkanalyzer.PceCalculation;
-import org.opendaylight.transportpce.pce.networkanalyzer.PceResult;
import org.opendaylight.transportpce.pce.utils.PceTestData;
import org.opendaylight.transportpce.test.AbstractTest;
--- /dev/null
+/*
+ * 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.networkanalyzer;
+
+import com.google.common.collect.ImmutableList;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.transportpce.common.NetworkUtils;
+import org.opendaylight.transportpce.test.AbstractTest;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.SpanBuilder;
+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.openroadm.service.format.rev190531.ServiceFormat;
+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.NodeId;
+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.rev180226.networks.network.node.SupportingNode;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
+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.Node1;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder;
+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;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder;
+
+
+
+
+public class PceLinkTest extends AbstractTest {
+
+ private static final String LINK_ID_FORMAT = "%1$s-%2$sto%3$s-%4$s";
+ private static final Long WAVE_LENGTH = 20L;
+ private PceLink pceLink = null;
+
+ @Before
+ public void setup() {
+
+ }
+
+ @Test
+ public void testBuildPceLinkRoadmToRoadm() {
+ Link link = createRoadmToRoadm("srcNode",
+ "destNode",
+ "srcTp", "destTp").build();
+
+ NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
+ Node node = node1Builder.build();
+
+ PceOpticalNode pceOpticalNode = new PceOpticalNode(node,
+ OpenroadmNodeType.SRG, new NodeId("optical"), ServiceFormat.OMS, "test");
+ pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode);
+ }
+
+ @Test
+ public void testBuildPceLinkOTN() {
+ Link link = createOTNLink("srcNode",
+ "destNode",
+ "srcTp", "destTp").build();
+
+ NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
+ Node node = node1Builder.build();
+
+ PceOpticalNode pceOpticalNode = new PceOpticalNode(node,
+ OpenroadmNodeType.SRG, new NodeId("optical"), ServiceFormat.OMS, "test");
+ pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode);
+
+ }
+
+ @Test
+ public void testBuildPceLinkExponder() {
+ Link link = createXponderLink("srcNode",
+ "destNode",
+ "srcTp", "destTp").build();
+
+ NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
+ Node node = node1Builder.build();
+
+ PceOpticalNode pceOpticalNode = new PceOpticalNode(node,
+ OpenroadmNodeType.SRG, new NodeId("optical"), ServiceFormat.OMS, "test");
+ pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode);
+ }
+
+ @Test
+ public void testCalcSpanOSNR() {
+ Link link = createRoadmToRoadm("srcNode",
+ "destNode",
+ "srcTp", "destTp").build();
+
+ NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
+ Node node = node1Builder.build();
+
+ PceOpticalNode pceOpticalNode = new PceOpticalNode(node,
+ OpenroadmNodeType.SRG, new NodeId("optical"), ServiceFormat.OMS, "test");
+ pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode);
+ Assert.assertNotNull(MapUtils.getOmsAttributesSpan(link));
+ Assert.assertNotNull(pceLink.calcSpanOSNR());
+ Assert.assertEquals(0, pceLink.getsrlgList().size());
+ Assert.assertTrue(7.857119000000001 == pceLink.calcSpanOSNR());
+ Assert.assertNull(pceLink.getOppositeLink());
+ Assert.assertNull(pceLink.getOppositeLink());
+ Assert.assertNotNull(pceLink.getDestTP());
+ Assert.assertNotNull(pceLink.getlinkType());
+ Assert.assertNotNull(pceLink.getLinkId());
+ Assert.assertNotNull(pceLink.getSourceId());
+ Assert.assertNotNull(pceLink.getDestId());
+ Assert.assertNotNull(pceLink.getClient());
+ Assert.assertNotNull(pceLink.getLatency());
+ Assert.assertNotNull(pceLink.getAvailableBandwidth());
+ Assert.assertNotNull(pceLink.getUsedBandwidth());
+ Assert.assertNotNull(pceLink.getsourceNetworkSupNodeId());
+ Assert.assertNotNull(pceLink.getdestNetworkSupNodeId());
+ Assert.assertNotNull(pceLink.getosnr());
+ Assert.assertNull(pceLink.getsourceCLLI());
+ Assert.assertNull(pceLink.getdestCLLI());
+ }
+
+ @Test
+ public void testPceOpticalNode() {
+ NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
+ Node node = node1Builder.build();
+
+ PceOpticalNode pceOpticalNode = new PceOpticalNode(node,
+ OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
+ pceOpticalNode.initSrgTps();
+ pceOpticalNode.initXndrTps();
+ pceOpticalNode.initWLlist();
+ Assert.assertFalse(pceOpticalNode.isValid());
+ Assert.assertFalse(pceOpticalNode.checkWL(12));
+ Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void testPceOTNNode() {
+ NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
+ Node node = node1Builder.build();
+ Assert.assertNotNull(node.augmentation(Node1.class));
+ // OpenroadmNodeType nodeType = node.augmentation(Node1.class).;
+
+ PceOtnNode pceOtnNode = new PceOtnNode(node, OpenroadmNodeType.SRG, node.getNodeId(), "otn", "serviceType");
+
+ //pceOtnNode.validateXponder(anodeId, znodeId);
+ /*
+ PceOtnNode pceOtnNode =
+ new PceOtnNode(node, OpenroadmNodeType.DEGREE,
+ new NodeId("optical"),
+ ServiceFormat.OTM.getName(), "test");*/
+ // pceOtnNode.initXndrTps("mode");
+ /* pceOtnNode.initSrgTps();
+ pceOtnNode.initXndrTps();
+ pceOtnNode.initWLlist();
+ Assert.assertFalse(pceOtnNode.isValid());
+ Assert.assertFalse(pceOtnNode.checkWL(12));
+ Assert.assertTrue(pceOtnNode.checkTP("testTP"));*/
+ }
+
+ private static LinkBuilder createOTNLink(String srcNode, String destNode, String srcTp, String destTp) {
+ Link1Builder link1Builder = new Link1Builder()
+ .setLinkType(OpenroadmLinkType.OTNLINK);
+
+ //create source link
+ return createLinkBuilder(srcNode, destNode, srcTp, destTp, link1Builder);
+
+ }
+
+ private static LinkBuilder createXponderLink(String srcNode, String destNode, String srcTp, String destTp) {
+ Link1Builder link1Builder = new Link1Builder()
+ .setLinkType(OpenroadmLinkType.XPONDERINPUT);
+
+ //create source link
+ return createLinkBuilder(srcNode, destNode, srcTp, destTp, link1Builder);
+
+ }
+
+ private static LinkBuilder createLinkBuilder(
+ String srcNode, String destNode, String srcTp, String destTp, Link1Builder link1Builder) {
+ SourceBuilder ietfSrcLinkBldr =
+ new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp);
+ //create destination link
+ DestinationBuilder ietfDestLinkBldr =
+ new DestinationBuilder().setDestNode(new NodeId(destNode))
+ .setDestTp(destTp);
+ LinkId linkId = new LinkId(String.format(LINK_ID_FORMAT, srcNode, srcTp, destNode, destTp));
+
+ LinkId oppositeLinkId = new LinkId("opposite");
+ //For setting up attributes for openRoadm augment
+ OMSAttributesBuilder omsAttributesBuilder =
+ new OMSAttributesBuilder()
+ .setSpan(new SpanBuilder()
+ .setSpanlossCurrent(new RatioDB(new BigDecimal("55")))
+ .setLinkConcatenation(Arrays.asList(
+ new LinkConcatenationBuilder()
+ .setFiberType(LinkConcatenation.FiberType.Dsf)
+ .build()
+ )).build()).setOppositeLink(oppositeLinkId);
+
+
+ LinkBuilder linkBuilder = new LinkBuilder()
+ .setSource(ietfSrcLinkBldr.build())
+ .setDestination(ietfDestLinkBldr.build())
+ .setLinkId(linkId)
+ .withKey(new LinkKey(linkId));
+
+ linkBuilder.addAugmentation(
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class,
+ link1Builder.build());
+
+ org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder linkBuilderNetworkLink
+ = new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder()
+ .setOMSAttributes(omsAttributesBuilder
+ .build());
+
+
+ linkBuilder.addAugmentation(
+ org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1.class,
+ linkBuilderNetworkLink.build());
+
+ return linkBuilder;
+ }
+
+ private static LinkBuilder createRoadmToRoadm(String srcNode, String destNode, String srcTp, String destTp) {
+ Link1Builder link1Builder = new Link1Builder()
+ .setLinkLatency(100L)
+ .setLinkType(OpenroadmLinkType.ROADMTOROADM);
+ return createLinkBuilder(srcNode, destNode, srcTp, destTp, link1Builder);
+
+ }
+
+ private List<SupportingNode> geSupportingNodes() {
+ List<SupportingNode> supportingNodes1 = new ArrayList<>();
+ /* supportingNodes1
+ .add(new SupportingNodeBuilder()
+ .setNodeRef(new NodeId("node 1"))
+ .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
+ .build());*/
+
+ supportingNodes1
+ .add(new SupportingNodeBuilder()
+ .setNodeRef(new NodeId("node 2"))
+ .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .build());
+ return supportingNodes1;
+ }
+
+ private NodeBuilder getNodeBuilder(List<SupportingNode> supportingNodes1) {
+
+
+ //update tp of nodes
+ TerminationPointBuilder xpdrTpBldr = new TerminationPointBuilder();
+ TerminationPoint1Builder tp1Bldr = new TerminationPoint1Builder();
+
+ tp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK);
+ xpdrTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
+ org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1 =
+ new Node1Builder().setTerminationPoint(ImmutableList.of(xpdrTpBldr.build())).build();
+
+
+ return new NodeBuilder()
+ .setNodeId(new NodeId("node 1"))
+ .withKey(new NodeKey(new NodeId("node 1")))
+ .addAugmentation(
+ Node1.class, node1)
+ .setSupportingNode(supportingNodes1);
+ }
+
+}
* 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.utils.service;
+package org.opendaylight.transportpce.pce.service;
+import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
import org.opendaylight.transportpce.common.network.RequestProcessor;
-import org.opendaylight.transportpce.pce.service.PathComputationServiceImpl;
+import org.opendaylight.transportpce.pce.gnpy.GnpyResult;
+import org.opendaylight.transportpce.pce.gnpy.GnpyTopoImpl;
import org.opendaylight.transportpce.pce.utils.PceTestData;
import org.opendaylight.transportpce.test.AbstractTest;
@Test
public void pathComputationRequestTest() {
- Assert.assertNotNull(pathComputationServiceImpl.pathComputationRequest(PceTestData.getPCERequest()));
+ Assert.assertNotNull(
+ pathComputationServiceImpl.pathComputationRequest(PceTestData.getEmptyPCERequest()));
+
+ }
+
+ @Test(expected = Exception.class)
+ public void generateGnpyResponse() throws Exception {
+
+ GnpyResult gnpyResult =
+ new GnpyResult("A-to-Z",
+ new GnpyTopoImpl(new NetworkTransactionImpl(
+ new RequestProcessor(this.getNewDataBroker()))));
+ pathComputationServiceImpl.generateGnpyResponse(gnpyResult.getResponse(), "A-to-Z");
+ }
+
+
+ @After
+ public void destroy() {
pathComputationServiceImpl.close();
}
}
package org.opendaylight.transportpce.pce.utils;
import java.util.Arrays;
+
import org.opendaylight.transportpce.common.ResponseCodes;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInputBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.GeneralBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.DiversityBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.ExcludeBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.IncludeBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.LatencyBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.include_.OrderedHopsBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicability;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicabilityBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraints;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraintsBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraints;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraintsBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.ResponseParameters;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.ResponseParametersBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeader;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeaderBuilder;
+
+
public final class PceTestData {
private PceTestData() {
return input;
}
+ public static PathComputationRequestInput getEmptyPCERequestServiceNameWithRequestId() {
+ ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
+ .setRequestId("request1")
+ .build();
+ PathComputationRequestInput input = new PathComputationRequestInputBuilder()
+ .setServiceName("serviceName")
+ .setServiceHandlerHeader(serviceHandlerHeader)
+ .build();
+ return input;
+ }
+
+ public static PathComputationRequestInput getEmptyPCERequestServiceNameWithOutRequestId() {
+ ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
+ .build();
+ PathComputationRequestInput input = new PathComputationRequestInputBuilder()
+ .setServiceName("serviceName")
+ .setServiceHandlerHeader(serviceHandlerHeader)
+ .build();
+ return input;
+ }
+
+ public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral() {
+ ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
+ .setRequestId("request1")
+ .build();
+ ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
+ .setServiceFormat(ServiceFormat.Ethernet)
+ .setServiceRate(100L)
+ .setClli("clli11")
+ .setNodeId("XPONDER-2-2")
+ .setTxDirection(new TxDirectionBuilder().setPort(
+ new PortBuilder()
+ .setPortDeviceName("Some port-device-name")
+ .setPortType("Some port-type")
+ .setPortName("Some port-name")
+ .setPortRack("Some port-rack")
+ .setPortShelf("Some port-shelf")
+ .setPortSlot("Some port-slot")
+ .setPortSubSlot("Some port-sub-slot")
+ .build()
+ ).build())
+ .setRxDirection(new RxDirectionBuilder().setPort(
+ new PortBuilder()
+ .setPortDeviceName("Some port-device-name")
+ .setPortType("Some port-type")
+ .setPortName("Some port-name")
+ .setPortRack("Some port-rack")
+ .setPortShelf("Some port-shelf")
+ .setPortSlot("Some port-slot")
+ .setPortSubSlot("Some port-sub-slot")
+ .build()
+ ).build())
+ .build();
+ ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
+ .setServiceFormat(ServiceFormat.Ethernet)
+ .setServiceRate(0L)
+ .setClli("Some clli11")
+ .setNodeId("XPONDER-1-2")
+ .setTxDirection(new TxDirectionBuilder().setPort(
+ new PortBuilder()
+ .setPortDeviceName("Some port-device-name")
+ .setPortType("Some port-type")
+ .setPortName("Some port-name")
+ .setPortRack("Some port-rack")
+ .setPortShelf("Some port-shelf")
+ .setPortSlot("Some port-slot")
+ .setPortSubSlot("Some port-sub-slot")
+ .build()
+ ).build())
+ .setRxDirection(new RxDirectionBuilder().setPort(
+ new PortBuilder()
+ .setPortDeviceName("Some port-device-name")
+ .setPortType("Some port-type")
+ .setPortName("Some port-name")
+ .setPortRack("Some port-rack")
+ .setPortShelf("Some port-shelf")
+ .setPortSlot("Some port-slot")
+ .setPortSubSlot("Some port-sub-slot")
+ .build()
+ ).build())
+ .build();
+ PathComputationRequestInput input = new PathComputationRequestInputBuilder()
+ .setServiceName("service1")
+ .setResourceReserve(true)
+ .setPceMetric(PceMetric.HopCount)
+ .setLocallyProtectedLinks(true)
+ .setServiceHandlerHeader(serviceHandlerHeader)
+ .setServiceAEnd(serviceAEnd)
+ .setServiceZEnd(serviceZEnd)
+ .setHardConstraints(new HardConstraintsBuilder()
+ .setCustomerCode(Arrays.asList("Some customer-code"))
+ .setCoRoutingOrGeneral(new CoRoutingBuilder()
+ .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
+ .transportpce.b.c._interface.routing.constraints.rev171017
+ .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
+ .setExistingService(Arrays.asList("Some existing-service"))
+
+ .build())
+ .build())
+ .build())
+ .setSoftConstraints(new SoftConstraintsBuilder()
+ .setCustomerCode(Arrays.asList("Some customer-code"))
+ .setCoRoutingOrGeneral(new CoRoutingBuilder()
+ .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
+ .transportpce.b.c._interface.routing.constraints.rev171017
+ .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
+ .setExistingService(Arrays.asList("Some existing-service"))
+ .build())
+ .build())
+ .build())
+ .build();
+ return input;
+ }
+
public static PathComputationRequestInput getPCERequest() {
ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
.setRequestId("request1")
).build())
.build();
PathComputationRequestInput input = new PathComputationRequestInputBuilder()
- .setServiceName("service1")
- .setResourceReserve(true)
- .setPceMetric(PceMetric.HopCount)
- .setLocallyProtectedLinks(true)
- .setServiceHandlerHeader(serviceHandlerHeader)
- .setServiceAEnd(serviceAEnd)
- .setServiceZEnd(serviceZEnd)
- .setHardConstraints(new HardConstraintsBuilder()
- .setCustomerCode(Arrays.asList("Some customer-code"))
- .setCoRoutingOrGeneral(new CoRoutingBuilder()
- .setCoRouting(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints
- .rev171017.constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
- .setExistingService(Arrays.asList("Some existing-service"))
- .build())
- .build())
- .build())
- .setSoftConstraints(new SoftConstraintsBuilder()
- .setCustomerCode(Arrays.asList("Some customer-code"))
- .setCoRoutingOrGeneral(new CoRoutingBuilder()
- .setCoRouting(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints
- .rev171017.constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
- .setExistingService(Arrays.asList("Some existing-service"))
- .build())
- .build())
- .build())
- .build();
+ .setServiceName("service1")
+ .setResourceReserve(true)
+ .setPceMetric(PceMetric.HopCount)
+ .setLocallyProtectedLinks(true)
+ .setServiceHandlerHeader(serviceHandlerHeader)
+ .setServiceAEnd(serviceAEnd)
+ .setServiceZEnd(serviceZEnd)
+ .setHardConstraints(new HardConstraintsBuilder()
+ .setCustomerCode(Arrays.asList("Some customer-code"))
+ .setCoRoutingOrGeneral(new CoRoutingBuilder()
+ .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
+ .transportpce.b.c._interface.routing.constraints.rev171017
+ .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
+ .setExistingService(Arrays.asList("Some existing-service"))
+ .build())
+ .build())
+ .build())
+ .setSoftConstraints(new SoftConstraintsBuilder()
+ .setCustomerCode(Arrays.asList("Some customer-code"))
+ .setCoRoutingOrGeneral(new CoRoutingBuilder()
+ .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
+ .transportpce.b.c._interface.routing.constraints.rev171017
+ .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
+ .setExistingService(Arrays.asList("Some existing-service"))
+ .build())
+ .build())
+ .build())
+ .build();
return input;
}
/**
* Generate Data for Test 1 request 5-4.
* <code>{
- "pce:input": {
- "pce:service-name": "service 1",
- "pce:resource-reserve": "true",
- "pce:service-handler-header": {
- "pce:request-id": "request 1"
- },
- "pce:service-a-end": {
- "pce:service-rate": "0",
- "pce:node-id": "XPONDER-1-2"
- },
- "pce:service-z-end": {
- "pce:service-rate": "0",
- "pce:node-id": "XPONDER-3-2"
- },
- "pce:pce-metric": "hop-count"
- }
- }</code>
+ * "pce:input": {
+ * "pce:service-name": "service 1",
+ * "pce:resource-reserve": "true",
+ * "pce:service-handler-header": {
+ * "pce:request-id": "request 1"
+ * },
+ * "pce:service-a-end": {
+ * "pce:service-rate": "0",
+ * "pce:node-id": "XPONDER-1-2"
+ * },
+ * "pce:service-z-end": {
+ * "pce:service-rate": "0",
+ * "pce:node-id": "XPONDER-3-2"
+ * },
+ * "pce:pce-metric": "hop-count"
+ * }
+ * }</code>
*
* @return input PathComputationRequestInput data
*/
/**
* Generate Data for Test 1 result 5-4.
- * @param wl WaveLength
*
+ * @param wl WaveLength
* @return output PathComputationRequestOutput data
*/
public static PathComputationRequestOutput getPCE_test_result_54(Long wl) {
/**
* Generate Data for Test 2 request 5-4.
- *<code>{
- "pce:input": {
- "pce:service-name": "service 1",
- "pce:resource-reserve": "true",
- "pce:service-handler-header": {
- "pce:request-id": "request 1"
- },
- "pce:service-a-end": {
- "pce:service-rate": "0",
- "pce:node-id": "XPONDER-1-2"
- },
- "pce:service-z-end": {
- "pce:service-rate": "0",
- "pce:node-id": "XPONDER-3-2"
- },
- "pce:hard-constraints": {
- "pce:exclude_": {
- "node-id": [ "OpenROADM-2-2" ]
- }
- },
- "pce:pce-metric": "hop-count"
- }
- }</code>
+ * <code>{
+ * "pce:input": {
+ * "pce:service-name": "service 1",
+ * "pce:resource-reserve": "true",
+ * "pce:service-handler-header": {
+ * "pce:request-id": "request 1"
+ * },
+ * "pce:service-a-end": {
+ * "pce:service-rate": "0",
+ * "pce:node-id": "XPONDER-1-2"
+ * },
+ * "pce:service-z-end": {
+ * "pce:service-rate": "0",
+ * "pce:node-id": "XPONDER-3-2"
+ * },
+ * "pce:hard-constraints": {
+ * "pce:exclude_": {
+ * "node-id": [ "OpenROADM-2-2" ]
+ * }
+ * },
+ * "pce:pce-metric": "hop-count"
+ * }
+ * }</code>
+ *
* @return input PathComputationRequestInput data
*/
public static PathComputationRequestInput getPCE_test2_request_54() {
.setExclude(new ExcludeBuilder()
.setNodeId(Arrays.asList("OpenROADM-2-2"))
.build())
+ .setLatency(new LatencyBuilder()
+ .setMaxLatency(3223L).build())
+ .setInclude(new IncludeBuilder()
+ .setOrderedHops(
+ Arrays.asList(new OrderedHopsBuilder()
+ .setHopNumber(22)
+ // .setHopType(new HopTypeBuilder()
+ // .setHopType(new ClliBuilder().getClli())
+ .build()))
+ .build())
.build())
.build())
.build();
/**
* Generate Data for Test 2 result 5-4.
+ *
* @return output PathComputationRequestOutput data
*/
public static PathComputationRequestOutput getPCE_test2_result_54() {
/**
* Generate Data for Test 2 request 5-4.
- *<code>{
- "pce:input": {
- "pce:service-name": "service 1",
- "pce:resource-reserve": "true",
- "pce:service-handler-header": {
- "pce:request-id": "request 1"
- },
- "pce:service-a-end": {
- "pce:service-rate": "0",
- "pce:node-id": "XPONDER-1-2"
- },
- "pce:service-z-end": {
- "pce:service-rate": "0",
- "pce:node-id": "XPONDER-3-2"
- },
- "pce:hard-constraints": {
- "pce:exclude_": {
- "node-id": [ "OpenROADM-2-1", "OpenROADM-2-2" ]
- }
- },
- "pce:pce-metric": "hop-count"
- }
- }</code>
+ * <code>{
+ * "pce:input": {
+ * "pce:service-name": "service 1",
+ * "pce:resource-reserve": "true",
+ * "pce:service-handler-header": {
+ * "pce:request-id": "request 1"
+ * },
+ * "pce:service-a-end": {
+ * "pce:service-rate": "0",
+ * "pce:node-id": "XPONDER-1-2"
+ * },
+ * "pce:service-z-end": {
+ * "pce:service-rate": "0",
+ * "pce:node-id": "XPONDER-3-2"
+ * },
+ * "pce:hard-constraints": {
+ * "pce:exclude_": {
+ * "node-id": [ "OpenROADM-2-1", "OpenROADM-2-2" ]
+ * }
+ * },
+ * "pce:pce-metric": "hop-count"
+ * }
+ * }</code>
+ *
* @return input PathComputationRequestInput data
*/
public static PathComputationRequestInput getPCE_test3_request_54() {
/**
* Generate Data for Test 3 result 5-4.
+ *
* @return output PathComputationRequestOutput data
*/
public static PathComputationRequestOutput getPCE_test3_result_54() {
return outputBuilder.build();
}
+ public static PathComputationRequestInput getPCE_simpletopology_test1_requestSetHardAndSoftConstrains() {
+ ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
+ .setRequestId("request 1")
+ .build();
+ ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
+ .setServiceRate(0L)
+ .setNodeId("XPONDER-1-2")
+ .build();
+ ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
+ .setServiceRate(0L)
+ .setNodeId("XPONDER-3-2")
+ .build();
+ HardConstraints hardConstrains = new HardConstraintsBuilder().build();
+ SoftConstraints softConstraints = new SoftConstraintsBuilder().build();
+ PathComputationRequestInput input = new PathComputationRequestInputBuilder()
+ .setServiceHandlerHeader(serviceHandlerHeader)
+ .setServiceName("service 1")
+ .setResourceReserve(true)
+ .setPceMetric(PceMetric.HopCount)
+ .setServiceAEnd(serviceAEnd)
+ .setServiceZEnd(serviceZEnd)
+ .setHardConstraints(hardConstrains)
+ .setSoftConstraints(softConstraints)
+ .build();
+ return input;
+ }
+
public static PathComputationRequestInput getPCE_simpletopology_test1_request() {
ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
.setRequestId("request 1")
}
private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
- long zaWaveLength) {
+ long zaWaveLength) {
AToZDirection atozDirection = new AToZDirectionBuilder()
.setRate(azRate)
.setAToZWavelengthNumber(azWaveLength)
/**
* Generate Data for Test Diversity test 1 request 5-4.
- *<code>{
- "pce:input": {
- "pce:service-name": "service 1",
- "pce:resource-reserve": "true",
- "pce:service-handler-header": {
- "pce:request-id": "request 1"
- },
- "pce:service-a-end": {
- "pce:service-rate": "0",
- "pce:node-id": "XPONDER-1-1"
- },
- "pce:service-z-end": {
- "pce:service-rate": "0",
- "pce:node-id": "XPONDER-3-1"
- },
- "pce:hard-constraints": {
- "pce:diversity": {
- "existing-service": ["Path test-1-54"],
- "existing-service-applicability": {
- "node": "true"
- }
- }
- },
- "pce:pce-metric": "hop-count"
- }
- }</code>
- * @param base Path Computation Request Input base
+ * <code>{
+ * "pce:input": {
+ * "pce:service-name": "service 1",
+ * "pce:resource-reserve": "true",
+ * "pce:service-handler-header": {
+ * "pce:request-id": "request 1"
+ * },
+ * "pce:service-a-end": {
+ * "pce:service-rate": "0",
+ * "pce:node-id": "XPONDER-1-1"
+ * },
+ * "pce:service-z-end": {
+ * "pce:service-rate": "0",
+ * "pce:node-id": "XPONDER-3-1"
+ * },
+ * "pce:hard-constraints": {
+ * "pce:diversity": {
+ * "existing-service": ["Path test-1-54"],
+ * "existing-service-applicability": {
+ * "node": "true"
+ * }
+ * }
+ * },
+ * "pce:pce-metric": "hop-count"
+ * }
+ * }</code>
*
+ * @param base Path Computation Request Input base
* @return input PathComputationRequestInput data
*/
public static PathComputationRequestInput build_diversity_from_request(PathComputationRequestInput base) {
public static ServiceCreateInput buildServiceCreateInput() {
org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceAEnd serviceAEnd =
- new org.opendaylight.yang.gen.v1.http.org.openroadm.service
- .rev190531.service.create.input.ServiceAEndBuilder()
- .setClli("clli")
- .setServiceRate((long)0)
- .setNodeId(new NodeIdType("XPONDER-1-2"))
- .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types
- .rev190531.service.endpoint.TxDirectionBuilder()
- .setPort(new PortBuilder().build())
- .build())
- .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types
- .rev190531.service.endpoint.RxDirectionBuilder()
- .setPort(new PortBuilder().build())
- .build())
- .build();
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
+ .service.create.input.ServiceAEndBuilder()
+ .setClli("clli")
+ .setServiceRate((long) 0)
+ .setNodeId(new NodeIdType("XPONDER-1-2"))
+ .setTxDirection(new org.opendaylight.yang.gen.v1.http.org
+ .openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
+ .setPort(new PortBuilder().build())
+ .build())
+ .setRxDirection(new org.opendaylight.yang.gen.v1.http.org
+ .openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder()
+ .setPort(new PortBuilder().build())
+ .build())
+ .build();
org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceZEnd serviceZEnd =
- new org.opendaylight.yang.gen.v1.http.org.openroadm.service
- .rev190531.service.create.input.ServiceZEndBuilder()
- .setClli("clli")
- .setServiceRate((long)0)
- .setNodeId(new NodeIdType("XPONDER-3-2"))
- .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types
- .rev190531.service.endpoint.TxDirectionBuilder()
- .setPort(new PortBuilder().build())
- .build())
- .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types
- .rev190531.service.endpoint.RxDirectionBuilder()
- .setPort(new PortBuilder().build())
- .build())
- .build();
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
+ .service.create.input.ServiceZEndBuilder()
+ .setClli("clli")
+ .setServiceRate((long) 0)
+ .setNodeId(new NodeIdType("XPONDER-3-2"))
+ .setTxDirection(new org.opendaylight.yang.gen.v1.http.org
+ .openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
+ .setPort(new PortBuilder().build())
+ .build())
+ .setRxDirection(new org.opendaylight.yang.gen.v1.http.org
+ .openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder()
+ .setPort(new PortBuilder().build())
+ .build())
+ .build();
ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder()
- .setCommonId("commonId")
- .setConnectionType(ConnectionType.Service)
- .setCustomer("Customer")
- .setServiceName("service 1")
- .setServiceAEnd(serviceAEnd)
- .setServiceZEnd(serviceZEnd)
- .setSdncRequestHeader(new SdncRequestHeaderBuilder()
- .setRequestId("request 1")
- .build());
+ .setCommonId("commonId")
+ .setConnectionType(ConnectionType.Service)
+ .setCustomer("Customer")
+ .setServiceName("service 1")
+ .setServiceAEnd(serviceAEnd)
+ .setServiceZEnd(serviceZEnd)
+ .setSdncRequestHeader(new SdncRequestHeaderBuilder()
+ .setRequestId("request 1")
+ .build());
return builtInput.build();
}