X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=pce%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fpce%2Futils%2FPceTestUtils.java;h=d0e9afa23dfa25b98c9d8add8b536951c29bb7f9;hb=6ae7f17afc50195ff2449043e65341e28c1056e3;hp=35ee84225d723c519566ee3f54c595d9a7cba987;hpb=d6abaf191c881949505e5c218d53c91b1c4c5dce;p=transportpce.git diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/utils/PceTestUtils.java b/pce/src/test/java/org/opendaylight/transportpce/pce/utils/PceTestUtils.java index 35ee84225..d0e9afa23 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/utils/PceTestUtils.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/utils/PceTestUtils.java @@ -12,29 +12,32 @@ import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.Reader; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; +import org.eclipse.jdt.annotation.Nullable; import org.junit.Assert; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.transportpce.common.DataStoreContext; import org.opendaylight.transportpce.common.NetworkUtils; -import org.opendaylight.transportpce.common.converter.XMLDataObjectConverter; -import org.opendaylight.transportpce.common.converter.api.DataObjectConverter; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutput; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.atoz.direction.AToZ; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.Node; +import org.opendaylight.transportpce.test.DataStoreContext; +import org.opendaylight.transportpce.test.converter.DataObjectConverter; +import org.opendaylight.transportpce.test.converter.XMLDataObjectConverter; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205.PathComputationRequestOutput; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.atoz.direction.AToZ; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.atoz.direction.AToZKey; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.pce.resource.resource.resource.Node; 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.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; @@ -56,17 +59,18 @@ public final class PceTestUtils { DataObjectConverter dataObjectConverter = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContext); InputStream resourceAsStream = PceTestUtils.class.getClassLoader().getResourceAsStream(topologyDataPath); - Optional> normalizedNode + Optional normalizedNode = dataObjectConverter.transformIntoNormalizedNode(resourceAsStream); - DataContainerChild next - = ((ContainerNode) normalizedNode.get()).getValue().iterator().next(); - MapEntryNode mapNode = ((MapNode) next).getValue().iterator().next(); + DataContainerChild next + = ((ContainerNode) normalizedNode.orElseThrow()).body().iterator().next(); + MapEntryNode mapNode = ((MapNode) next).body().iterator().next(); Optional dataObject = dataObjectConverter.getDataObject(mapNode, Network.QNAME); InstanceIdentifier nwInstanceIdentifier = InstanceIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) .build(); WriteTransaction dataWriteTransaction = dataBroker.newWriteOnlyTransaction(); - dataWriteTransaction.put(LogicalDatastoreType.CONFIGURATION, nwInstanceIdentifier, (Network) dataObject.get()); + dataWriteTransaction.put(LogicalDatastoreType.CONFIGURATION, nwInstanceIdentifier, + (Network) dataObject.orElseThrow()); dataWriteTransaction.commit().get(); } @@ -74,19 +78,20 @@ public final class PceTestUtils { 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); // 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); JsonReader networkReader = new JsonReader(gnpyNetwork); JsonReader topoReader = new JsonReader(gnpyTopo); ) { - 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, dataBroker); - 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, dataBroker); + Networks networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(networkReader, Networks.QNAME); + List networkMap = new ArrayList<>(networks.nonnullNetwork().values()); + saveOpenRoadmNetwork(networkMap.get(0), NetworkUtils.UNDERLAY_NETWORK_ID, dataBroker); + networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(topoReader, Networks.QNAME); + saveOpenRoadmNetwork(networkMap.get(0), NetworkUtils.UNDERLAY_NETWORK_ID, dataBroker); } catch (IOException | ExecutionException | InterruptedException e) { LOG.error("Cannot init test ", e); Assert.fail("Cannot init test "); @@ -164,8 +169,9 @@ public final class PceTestUtils { } private static List getNodesFromPath(PathComputationRequestOutput output) { - List atozList = output.getResponseParameters().getPathDescription().getAToZDirection().getAToZ(); - return atozList.stream() + @Nullable Map atozList = output.getResponseParameters() + .getPathDescription().getAToZDirection().getAToZ(); + return atozList.values().stream() .filter(aToZ -> { if ((aToZ.getResource() == null) || (aToZ.getResource().getResource() == null)) { LOG.debug("Diversity constraint: Resource of AToZ node {} is null! Skipping this node!",