import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.ListenableFuture;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.NetworkUtils;
+import org.opendaylight.transportpce.common.fixedflex.GridConstant;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
import org.opendaylight.transportpce.networkmodel.dto.TopologyShard;
import org.opendaylight.transportpce.networkmodel.util.test.NetworkmodelTestUtil;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.XpdrNodeTypes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMaps;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Network1;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey;
assertEquals("Should contain 2 express links", 2, links.size());
assertEquals("ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX", links.get(0).getLinkId().getValue());
assertEquals("ROADMA01-DEG1", links.get(0).getSource().getSourceNode().getValue());
- assertEquals("DEG1-CTP-TXRX", links.get(0).getSource().getSourceTp());
+ assertEquals("DEG1-CTP-TXRX", links.get(0).getSource().getSourceTp().getValue());
assertEquals("ROADMA01-DEG2", links.get(0).getDestination().getDestNode().getValue());
- assertEquals("DEG2-CTP-TXRX", links.get(0).getDestination().getDestTp());
+ assertEquals("DEG2-CTP-TXRX", links.get(0).getDestination().getDestTp().getValue());
assertEquals("ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX", links.get(1).getLinkId().getValue());
assertEquals("ROADMA01-DEG2", links.get(1).getSource().getSourceNode().getValue());
- assertEquals("DEG2-CTP-TXRX", links.get(1).getSource().getSourceTp());
+ assertEquals("DEG2-CTP-TXRX", links.get(1).getSource().getSourceTp().getValue());
assertEquals("ROADMA01-DEG1", links.get(1).getDestination().getDestNode().getValue());
- assertEquals("DEG1-CTP-TXRX", links.get(1).getDestination().getDestTp());
+ assertEquals("DEG1-CTP-TXRX", links.get(1).getDestination().getDestTp().getValue());
}
@Test
String srcTp = "DEG1-CTP-TXRX";
String destTp = "SRG1-CP-TXRX";
LinkId linkId = LinkIdUtil.buildLinkId(srcNode, srcTp, dstNode, destTp);
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1 link1 =
- new Link1Builder().setAdministrativeState(State.InService).build();
+ org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1 link1 =
+ new Link1Builder().build();
Link link = new LinkBuilder()
.setLinkId(linkId)
- .setSource(new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp).build())
- .setDestination(new DestinationBuilder().setDestNode(new NodeId(dstNode)).setDestTp(destTp).build())
- .addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1.class, link1)
+ .setSource(new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(new TpId(srcTp)).build())
+ .setDestination(new DestinationBuilder().setDestNode(new NodeId(dstNode)).setDestTp(new TpId(destTp))
+ .build())
+ .addAugmentation(link1)
.build();
InstanceIdentifier<Link> linkIID = InstanceIdentifier.builder(Networks.class).child(Network.class,
new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))).augmentation(Network1.class)
private void checkDegreeNode(String nodeNb, Node node) {
assertEquals("ROADMA01-DEG" + nodeNb, node.getNodeId().getValue());
- List<SupportingNode> supportingNodes = node.getSupportingNode().stream()
+ List<SupportingNode> supportingNodes = node.nonnullSupportingNode().values().stream()
.sorted((sn1, sn2) -> sn1.getNetworkRef().getValue().compareTo(sn2.getNetworkRef().getValue()))
.collect(Collectors.toList());
assertEquals(2, supportingNodes.size());
assertEquals("ROADMA01", supportingNodes.get(1).getNodeRef().getValue());
assertEquals(OpenroadmNodeType.DEGREE, node.augmentation(Node1.class).getNodeType());
assertEquals(Uint16.valueOf(nodeNb), node.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class)
+ org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1.class)
.getDegreeAttributes().getDegreeNumber());
- assertEquals(96, node.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class)
- .getDegreeAttributes().getAvailableWavelengths().size());
+ List<AvailFreqMaps> availFreqMapsValues = new ArrayList<>(node.augmentation(
+ org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1.class)
+ .getDegreeAttributes().getAvailFreqMaps().values());
+ assertEquals(GridConstant.NB_OCTECTS, availFreqMapsValues.get(0).getFreqMap().length);
+ byte[] byteArray = new byte[GridConstant.NB_OCTECTS];
+ Arrays.fill(byteArray, (byte) GridConstant.AVAILABLE_SLOT_VALUE);
+ assertEquals(Arrays.toString(byteArray), Arrays.toString(availFreqMapsValues.get(0).getFreqMap()));
List<TerminationPoint> tps = node.augmentation(
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class)
- .getTerminationPoint().stream()
+ .nonnullTerminationPoint().values().stream()
.sorted((tp1, tp2) -> tp1.getTpId().getValue().compareTo(tp2.getTpId().getValue()))
.collect(Collectors.toList());
assertEquals(2, tps.size());
private void checkSrgNode(String nodeNb, Node node) {
assertEquals("ROADMA01-SRG" + nodeNb, node.getNodeId().getValue());
- List<SupportingNode> supportingNodes = node.getSupportingNode().stream()
+ List<SupportingNode> supportingNodes = node.nonnullSupportingNode().values().stream()
.sorted((sn1, sn2) -> sn1.getNetworkRef().getValue().compareTo(sn2.getNetworkRef().getValue()))
.collect(Collectors.toList());
assertEquals(2, supportingNodes.size());
assertEquals("openroadm-network", supportingNodes.get(1).getNetworkRef().getValue());
assertEquals("ROADMA01", supportingNodes.get(1).getNodeRef().getValue());
assertEquals(OpenroadmNodeType.SRG, node.augmentation(Node1.class).getNodeType());
- assertEquals(96, node.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class)
- .getSrgAttributes().getAvailableWavelengths().size());
+ List<AvailFreqMaps> availFreqMapsValues = new ArrayList<>(node.augmentation(
+ org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1.class)
+ .getSrgAttributes().getAvailFreqMaps().values());
+ assertEquals(GridConstant.NB_OCTECTS, availFreqMapsValues.get(0).getFreqMap().length);
+ byte[] byteArray = new byte[GridConstant.NB_OCTECTS];
+ Arrays.fill(byteArray, (byte) GridConstant.AVAILABLE_SLOT_VALUE);
+ assertEquals(Arrays.toString(byteArray), Arrays.toString(availFreqMapsValues.get(0).getFreqMap()));
List<TerminationPoint> tps = node.augmentation(
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class)
- .getTerminationPoint().stream()
+ .nonnullTerminationPoint().values().stream()
.sorted((tp1, tp2) -> tp1.getTpId().getValue().compareTo(tp2.getTpId().getValue()))
.collect(Collectors.toList());
assertEquals(5, tps.size());
private void checkTpdrNode(Node node) {
assertEquals("XPDRA01-XPDR1", node.getNodeId().getValue());
- List<SupportingNode> supportingNodes = node.getSupportingNode().stream()
+ List<SupportingNode> supportingNodes = node.nonnullSupportingNode().values().stream()
.sorted((sn1, sn2) -> sn1.getNetworkRef().getValue().compareTo(sn2.getNetworkRef().getValue()))
.collect(Collectors.toList());
assertEquals(2, supportingNodes.size());
assertEquals(OpenroadmNodeType.XPONDER, node.augmentation(Node1.class).getNodeType());
List<TerminationPoint> tps = node.augmentation(
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class)
- .getTerminationPoint().stream()
+ .nonnullTerminationPoint().values().stream()
.sorted((tp1, tp2) -> tp1.getTpId().getValue().compareTo(tp2.getTpId().getValue()))
.collect(Collectors.toList());
assertEquals(4, tps.size());
assertEquals("XPDR1-CLIENT1", tps.get(0).getTpId().getValue());
assertEquals(OpenroadmTpType.XPONDERCLIENT, tps.get(0).augmentation(TerminationPoint1.class).getTpType());
assertEquals("XPDR1-NETWORK1", tps.get(0).augmentation(
- org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1.class)
+ org.opendaylight.yang.gen.v1.http.transportpce.topology.rev220123.TerminationPoint1.class)
.getAssociatedConnectionMapPort());
assertEquals("XPDR1-NETWORK1", tps.get(2).getTpId().getValue());
assertEquals(OpenroadmTpType.XPONDERNETWORK, tps.get(2).augmentation(TerminationPoint1.class).getTpType());
assertEquals("XPDR1-CLIENT1", tps.get(2).augmentation(
- org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1.class)
+ org.opendaylight.yang.gen.v1.http.transportpce.topology.rev220123.TerminationPoint1.class)
.getAssociatedConnectionMapPort());
}
private void checkOtnXpdrNode(Node node) {
assertEquals("XPDRA01-XPDR1", node.getNodeId().getValue());
- List<SupportingNode> supportingNodes = node.getSupportingNode().stream()
+ List<SupportingNode> supportingNodes = node.nonnullSupportingNode().values().stream()
.sorted((sn1, sn2) -> sn1.getNetworkRef().getValue().compareTo(sn2.getNetworkRef().getValue()))
.collect(Collectors.toList());
assertEquals(2, supportingNodes.size());
assertEquals(OpenroadmNodeType.XPONDER, node.augmentation(Node1.class).getNodeType());
List<TerminationPoint> tps = node.augmentation(
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class)
- .getTerminationPoint().stream()
+ .nonnullTerminationPoint().values().stream()
.sorted((tp1, tp2) -> tp1.getTpId().getValue().compareTo(tp2.getTpId().getValue()))
.collect(Collectors.toList());
assertEquals(2, tps.size());