X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=pce%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fpce%2Fgnpy%2FGnpyUtilitiesImplTest.java;h=b55cc763bf19c0e51afa1dc28e16ad7309ee0dca;hb=952583aa9f0de2de04f230291a5989413591a7b7;hp=4544152531a05d9ef13098b6a6c542e9c87d963f;hpb=63f9cf83704bb9fa87f2215b2173b0f7a7c9bb48;p=transportpce.git diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/gnpy/GnpyUtilitiesImplTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/gnpy/GnpyUtilitiesImplTest.java index 454415253..b55cc763b 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/gnpy/GnpyUtilitiesImplTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/gnpy/GnpyUtilitiesImplTest.java @@ -17,14 +17,15 @@ import java.io.FileReader; import java.io.IOException; import java.io.Reader; import java.net.URI; -import java.util.ArrayList; -import java.util.List; +import java.nio.charset.StandardCharsets; +import java.util.Map; import java.util.concurrent.ExecutionException; import org.glassfish.grizzly.http.server.HttpServer; import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory; import org.glassfish.jersey.server.ResourceConfig; import org.junit.AfterClass; import org.junit.Assert; +import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.opendaylight.mdsal.binding.api.WriteTransaction; @@ -34,54 +35,63 @@ 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.gnpy.consumer.GnpyConsumer; +import org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumerImpl; +import org.opendaylight.transportpce.pce.gnpy.consumer.GnpyStub; import org.opendaylight.transportpce.pce.utils.JsonUtil; import org.opendaylight.transportpce.pce.utils.PceTestData; import org.opendaylight.transportpce.test.AbstractTest; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.AToZDirectionBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.ZToADirectionBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.atoz.direction.AToZ; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.atoz.direction.AToZBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.atoz.direction.AToZKey; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce.resource.Resource; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce.resource.ResourceBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce.resource.resource.resource.TerminationPoint; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.pce.resource.resource.resource.TerminationPointBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.AToZDirectionBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.ZToADirectionBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.atoz.direction.AToZ; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.atoz.direction.AToZBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.atoz.direction.AToZKey; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.ztoa.direction.ZToA; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.ztoa.direction.ZToABuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.ztoa.direction.ZToAKey; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.pce.resource.Resource; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.pce.resource.ResourceBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.pce.resource.resource.resource.TerminationPoint; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.pce.resource.resource.resource.TerminationPointBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - public class GnpyUtilitiesImplTest extends AbstractTest { private static final Logger LOG = LoggerFactory.getLogger(GnpyUtilitiesImplTest.class); private GnpyUtilitiesImpl gnpyUtilitiesImpl; private NetworkTransactionImpl networkTransaction; private static HttpServer httpServer; + private GnpyConsumer gnpyConsumer; - public GnpyUtilitiesImplTest() { - networkTransaction = new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())); + public GnpyUtilitiesImplTest() throws IOException { + networkTransaction = new NetworkTransactionImpl(new RequestProcessor(getDataBroker())); JsonReader networkReader = null; JsonReader topoReader = null; try { // load openroadm-network - Reader gnpyNetwork = new FileReader("src/test/resources/gnpy/gnpy_network.json"); + Reader gnpyNetwork = new FileReader("src/test/resources/gnpy/gnpy_network.json", + StandardCharsets.UTF_8); networkReader = new JsonReader(gnpyNetwork); Networks networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(networkReader, QName.create("urn:ietf:params:xml:ns:yang:ietf-network", "2018-02-26", "networks")); - saveOpenRoadmNetwork(networks.getNetwork().get(0), NetworkUtils.UNDERLAY_NETWORK_ID); + saveOpenRoadmNetwork(networks.getNetwork().values().iterator().next(), NetworkUtils.UNDERLAY_NETWORK_ID); // load openroadm-topology - Reader gnpyTopo = new FileReader("src/test/resources/gnpy/gnpy_topology.json"); + Reader gnpyTopo = new FileReader("src/test/resources/gnpy/gnpy_topology.json", + StandardCharsets.UTF_8); topoReader = new JsonReader(gnpyTopo); networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(topoReader, QName.create("urn:ietf:params:xml:ns:yang:ietf-network", "2018-02-26", "networks")); - saveOpenRoadmNetwork(networks.getNetwork().get(0), NetworkUtils.OVERLAY_NETWORK_ID); + saveOpenRoadmNetwork(networks.getNetwork().values().iterator().next(), NetworkUtils.OVERLAY_NETWORK_ID); } catch (FileNotFoundException | InterruptedException | ExecutionException e) { LOG.error("Cannot init test ", e); fail("Cannot init test "); @@ -101,11 +111,17 @@ public class GnpyUtilitiesImplTest extends AbstractTest { } + @Before + public void initConsumer() { + gnpyConsumer = new GnpyConsumerImpl("http://localhost:9998", "mylogin", "mypassword", + getDataStoreContextUtil().getBindingDOMCodecServices()); + } + @BeforeClass public static void init() { // here we cannot use JerseyTest as we already extends AbstractTest final ResourceConfig rc = new ResourceConfig(GnpyStub.class); - httpServer = GrizzlyHttpServerFactory.createHttpServer(URI.create("http://127.0.0.1:8008"), rc); + httpServer = GrizzlyHttpServerFactory.createHttpServer(URI.create("http://localhost:9998"), rc); } @AfterClass @@ -117,7 +133,7 @@ public class GnpyUtilitiesImplTest extends AbstractTest { throws InterruptedException, ExecutionException { InstanceIdentifier nwInstanceIdentifier = InstanceIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(networkId))).build(); - WriteTransaction dataWriteTransaction = this.getDataBroker().newWriteOnlyTransaction(); + WriteTransaction dataWriteTransaction = getDataBroker().newWriteOnlyTransaction(); dataWriteTransaction.put(LogicalDatastoreType.CONFIGURATION, nwInstanceIdentifier, network); dataWriteTransaction.commit().get(); } @@ -125,7 +141,8 @@ public class GnpyUtilitiesImplTest extends AbstractTest { @Test public void askNewPathFromGnpyNullResultTest() throws Exception { gnpyUtilitiesImpl = new GnpyUtilitiesImpl(networkTransaction, - PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2")); + PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2"), + gnpyConsumer); assertNull("No hard constraints should be available", gnpyUtilitiesImpl.askNewPathFromGnpy(null)); } @@ -133,7 +150,8 @@ public class GnpyUtilitiesImplTest extends AbstractTest { @Test public void askNewPathFromGnpyTest() throws Exception { gnpyUtilitiesImpl = new GnpyUtilitiesImpl(networkTransaction, - PceTestData.getGnpyPCERequest("XPONDER-3", "XPONDER-4")); + PceTestData.getGnpyPCERequest("XPONDER-3", "XPONDER-4"), + gnpyConsumer); PceConstraintsCalc constraints = new PceConstraintsCalc(PceTestData.getPCE_simpletopology_test1_request(), networkTransaction); PceConstraints pceHardConstraints = constraints.getPceHardConstraints(); @@ -150,7 +168,8 @@ public class GnpyUtilitiesImplTest extends AbstractTest { ZToADirectionBuilder ztoADirectionBldr = buildZtoA(); gnpyUtilitiesImpl = new GnpyUtilitiesImpl(networkTransaction, - PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2")); + PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2"), + gnpyConsumer); PceConstraintsCalc constraints = new PceConstraintsCalc(PceTestData.getPCE_simpletopology_test1_request(), networkTransaction); PceConstraints pceHardConstraints = constraints.getPceHardConstraints(); @@ -161,27 +180,31 @@ public class GnpyUtilitiesImplTest extends AbstractTest { } private AToZDirectionBuilder buildAtZ() { - List atozList = new ArrayList<>(); AToZKey clientKey = new AToZKey("key"); TerminationPoint stp = new TerminationPointBuilder() .setTpId("tpName").setTpNodeId("xname") .build(); Resource clientResource = new ResourceBuilder().setResource(stp).build(); AToZ firstResource = new AToZBuilder().setId("tpName").withKey(clientKey).setResource(clientResource).build(); - atozList.add(firstResource); return new AToZDirectionBuilder() - .setRate(100L) - .setAToZ(atozList) - .setAToZWavelengthNumber(Long.valueOf(0)); + .setRate(Uint32.valueOf(100)) + .setAToZ(Map.of(firstResource.key(),firstResource)) + .setAToZWavelengthNumber(Uint32.valueOf(0)); } private ZToADirectionBuilder buildZtoA() { + ZToAKey clientKey = new ZToAKey("key"); + TerminationPoint stp = new TerminationPointBuilder() + .setTpId("tpName").setTpNodeId("xname") + .build(); + Resource clientResource = new ResourceBuilder().setResource(stp).build(); + ZToA firstResource = new ZToABuilder().setId("tpName").withKey(clientKey).setResource(clientResource).build(); return new ZToADirectionBuilder() - .setRate(100L) - .setZToA(new ArrayList()) - .setZToAWavelengthNumber(Long.valueOf(0)); + .setRate(Uint32.valueOf(100)) + .setZToA(Map.of(firstResource.key(),firstResource)) + .setZToAWavelengthNumber(Uint32.valueOf(0)); } }