From 493b257e618d8cc2450fcf8613a3575db33d88e2 Mon Sep 17 00:00:00 2001 From: Gilles Thouenon <gilles.thouenon@orange.com> Date: Fri, 3 Jan 2025 17:57:27 +0100 Subject: [PATCH] Migrate InstanceIdentifier of networkmodel module Use DataObjectIdentifier instead of InstanceIdentifier in transportpce-networkmodel module except in few classes where a specific treatment is done with the deprecated InstanceIdentifier (NetworkModelProvider, PortMappingListener and DeviceListener). JIRA:TRNSPRTPCE-842 Change-Id: I8af232bce1c9d8adfcc45eae4df64a40c5c68a82 Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com> --- .../networkmodel/NetworkUtilsImpl.java | 12 ++++---- .../transportpce/networkmodel/OrdLink.java | 28 +++++++++++-------- .../networkmodel/Rdm2XpdrLink.java | 23 +++++++-------- .../listeners/AlarmNotificationListener.java | 5 ++-- .../AlarmNotificationListener221.java | 5 ++-- .../AlarmNotificationListener710.java | 5 ++-- .../listeners/DeviceListener121.java | 15 +++++----- .../listeners/DeviceListener221.java | 16 +++++------ .../listeners/DeviceListener710.java | 22 +++++++-------- .../service/FrequenciesServiceImpl.java | 7 ++--- .../networkmodel/util/OpenRoadmTopology.java | 13 +++++---- .../networkmodel/util/TpceNetworkTest.java | 27 ++++++++++-------- 12 files changed, 93 insertions(+), 85 deletions(-) diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkUtilsImpl.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkUtilsImpl.java index e050e62ad4..7b5d655666 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkUtilsImpl.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetworkUtilsImpl.java @@ -44,8 +44,8 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top 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.networks.network.Link; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.osgi.service.component.annotations.Activate; @@ -85,16 +85,16 @@ public class NetworkUtilsImpl { LinkId linkId = new LinkId(input.getLinkId()); // Building link instance identifier - InstanceIdentifier.Builder<Link> linkIID = InstanceIdentifier.builder(Networks.class) + DataObjectIdentifier<Link> linkIID = DataObjectIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) - .augmentation(Network1.class).child(Link.class, new LinkKey(linkId)); + .augmentation(Network1.class).child(Link.class, new LinkKey(linkId)) + .build(); //Check if link exists try { ReadTransaction readOnlyTransaction = dataBroker.newReadOnlyTransaction(); - Optional<Link> linkOptional = readOnlyTransaction.read(LogicalDatastoreType.CONFIGURATION, linkIID.build()) - .get(); + Optional<Link> linkOptional = readOnlyTransaction.read(LogicalDatastoreType.CONFIGURATION, linkIID).get(); if (!linkOptional.isPresent()) { LOG.info("Link not present"); return RpcResultBuilder @@ -109,7 +109,7 @@ public class NetworkUtilsImpl { } WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); - writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, linkIID.build()); + writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, linkIID); try { writeTransaction.commit().get(); LOG.info("Link with linkId: {} deleted from {} layer.", diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/OrdLink.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/OrdLink.java index 8957d6b8d7..95fa237439 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/OrdLink.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/OrdLink.java @@ -44,7 +44,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -86,12 +86,14 @@ final class OrdLink { LinkId linkId = LinkIdUtil.buildLinkId(srcNode, srcTp, destNode, destTp); // Building link instance identifier - InstanceIdentifier.Builder<Link> linkIID = InstanceIdentifier.builder(Networks.class) + DataObjectIdentifier<Link> linkIID = DataObjectIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) - .augmentation(Network1.class).child(Link.class, new LinkKey(linkId)); + .augmentation(Network1.class) + .child(Link.class, new LinkKey(linkId)) + .build(); WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); - writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, linkIID.build(), linkBuilder.build()); + writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, linkIID, linkBuilder.build()); try { writeTransaction.commit().get(); LOG.info("A new link with linkId: {} added into {} layer.", @@ -182,12 +184,13 @@ final class OrdLink { linkBuilderBW.addAugmentation(tpceAugmLink11Bd.build()); // Building link instance identifier - InstanceIdentifier.Builder<Link> linkIIDFW = InstanceIdentifier.builder(Networks.class) + DataObjectIdentifier<Link> linkIIDFW = DataObjectIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) - .augmentation(Network1.class).child(Link.class, new LinkKey(linkId)); + .augmentation(Network1.class).child(Link.class, new LinkKey(linkId)) + .build(); WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); - writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, linkIIDFW.build(), linkBuilderFW.build()); + writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, linkIIDFW, linkBuilderFW.build()); try { writeTransaction.commit().get(); LOG.info("A new link with linkId: {} added into {} layer.", @@ -198,11 +201,12 @@ final class OrdLink { return false; } - InstanceIdentifier.Builder<Link> linkIIDBW = InstanceIdentifier.builder(Networks.class) + DataObjectIdentifier<Link> linkIIDBW = DataObjectIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) - .augmentation(Network1.class).child(Link.class, new LinkKey(oppLinkId)); + .augmentation(Network1.class).child(Link.class, new LinkKey(oppLinkId)) + .build(); writeTransaction = dataBroker.newWriteOnlyTransaction(); - writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, linkIIDBW.build(), linkBuilderBW.build()); + writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, linkIIDBW, linkBuilderBW.build()); try { writeTransaction.commit().get(); LOG.info("A new link with linkId: {} added into {} layer.", @@ -240,7 +244,7 @@ final class OrdLink { .setAdministrativeState(AdminStates.InService) .setOperationalState(State.InService).build()); - InstanceIdentifier<TerminationPoint> tpIID = InstanceIdentifier.builder(Networks.class) + DataObjectIdentifier<TerminationPoint> tpIID = DataObjectIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) .child(Node.class, new NodeKey(new NodeId("TAPI-SBI-ABS-NODE"))) .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 @@ -262,7 +266,7 @@ final class OrdLink { } private static TerminationPoint getTpofNode(String srcNode, String srcTp, DataBroker dataBroker) { - InstanceIdentifier<TerminationPoint> iiTp = InstanceIdentifier.builder(Networks.class) + DataObjectIdentifier<TerminationPoint> iiTp = DataObjectIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) .child(Node.class, new NodeKey(new NodeId(srcNode))) .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/Rdm2XpdrLink.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/Rdm2XpdrLink.java index f7aaf78e54..ce91592530 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/Rdm2XpdrLink.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/Rdm2XpdrLink.java @@ -49,7 +49,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -90,10 +90,11 @@ final class Rdm2XpdrLink { return false; } Network network = networkBldr.build(); - InstanceIdentifier.Builder<Network> nwIID = InstanceIdentifier.builder(Networks.class) - .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))); + DataObjectIdentifier<Network> nwIID = DataObjectIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) + .build(); WriteTransaction wrtx = dataBroker.newWriteOnlyTransaction(); - wrtx.merge(LogicalDatastoreType.CONFIGURATION, nwIID.build(), network); + wrtx.merge(LogicalDatastoreType.CONFIGURATION, nwIID, network); FluentFuture<? extends @NonNull CommitInfo> commit = wrtx.commit(); @@ -138,11 +139,11 @@ final class Rdm2XpdrLink { return false; } Network network = networkBldr.build(); - InstanceIdentifier.Builder<Network> nwIID = - InstanceIdentifier.builder(Networks.class).child(Network.class, - new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))); + DataObjectIdentifier<Network> nwIID = DataObjectIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) + .build(); WriteTransaction wrtx = dataBroker.newWriteOnlyTransaction(); - wrtx.merge(LogicalDatastoreType.CONFIGURATION, nwIID.build(), network); + wrtx.merge(LogicalDatastoreType.CONFIGURATION, nwIID, network); FluentFuture<? extends @NonNull CommitInfo> commit = wrtx.commit(); try { commit.get(); @@ -238,7 +239,7 @@ final class Rdm2XpdrLink { } private static TerminationPoint getTpofNode(String srcNode, String srcTp, DataBroker dataBroker) { - InstanceIdentifier<TerminationPoint> iiTp = InstanceIdentifier.builder(Networks.class) + DataObjectIdentifier<TerminationPoint> iiTp = DataObjectIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) .child(Node.class, new NodeKey(new NodeId(srcNode))) .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 @@ -265,9 +266,9 @@ final class Rdm2XpdrLink { } private static DataModelEnum getNodeModel(String srcNode, String srcTp, DataBroker dataBroker) { - InstanceIdentifier< + DataObjectIdentifier< org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.or.network.augmentation.rev240923.Node1> - nodeIID = InstanceIdentifier.builder(Networks.class) + nodeIID = DataObjectIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) .child(Node.class, new NodeKey(new NodeId(srcNode))) .augmentation(org.opendaylight.yang.gen.v1.http.org.opendaylight diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/AlarmNotificationListener.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/AlarmNotificationListener.java index f0f57d62d0..280be27ea3 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/AlarmNotificationListener.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/AlarmNotificationListener.java @@ -34,7 +34,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resour import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.resource.resource.Service; import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.resource.resource.Shelf; import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.resource.resource.Srg; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -60,7 +60,8 @@ public class AlarmNotificationListener { */ private void onAlarmNotification(AlarmNotification notification) { List<Nodes> allNodeList = new ArrayList<>(); - InstanceIdentifier<ServiceNodelist> serviceNodeListIID = InstanceIdentifier.create(ServiceNodelist.class); + DataObjectIdentifier<ServiceNodelist> serviceNodeListIID = DataObjectIdentifier.builder(ServiceNodelist.class) + .build(); try (ReadTransaction rtx = dataBroker.newReadOnlyTransaction()) { Optional<ServiceNodelist> serviceListObject = rtx.read(LogicalDatastoreType.OPERATIONAL, serviceNodeListIID).get(); diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/AlarmNotificationListener221.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/AlarmNotificationListener221.java index d7336eb559..8119b08329 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/AlarmNotificationListener221.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/AlarmNotificationListener221.java @@ -34,7 +34,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev181019.resour import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev181019.resource.resource.resource.Service; import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev181019.resource.resource.resource.Shelf; import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev181019.resource.resource.resource.Srg; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -60,7 +60,8 @@ public class AlarmNotificationListener221 { */ private void onAlarmNotification(AlarmNotification notification) { List<Nodes> allNodeList = new ArrayList<>(); - InstanceIdentifier<ServiceNodelist> serviceNodeListIID = InstanceIdentifier.create(ServiceNodelist.class); + DataObjectIdentifier<ServiceNodelist> serviceNodeListIID = DataObjectIdentifier.builder(ServiceNodelist.class) + .build(); try { ReadTransaction rtx = dataBroker.newReadOnlyTransaction(); Optional<ServiceNodelist> serviceListObject = diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/AlarmNotificationListener710.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/AlarmNotificationListener710.java index e5328bd6e2..b2d49e14f2 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/AlarmNotificationListener710.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/AlarmNotificationListener710.java @@ -34,7 +34,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev200529.resour import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev200529.resource.resource.resource.Service; import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev200529.resource.resource.resource.Shelf; import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev200529.resource.resource.resource.Srg; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,7 +61,8 @@ public class AlarmNotificationListener710 { */ private void onAlarmNotification(AlarmNotification notification) { List<Nodes> allNodeList = new ArrayList<>(); - InstanceIdentifier<ServiceNodelist> serviceNodeListIID = InstanceIdentifier.create(ServiceNodelist.class); + DataObjectIdentifier<ServiceNodelist> serviceNodeListIID = DataObjectIdentifier.builder(ServiceNodelist.class) + .build(); try { ReadTransaction rtx = dataBroker.newReadOnlyTransaction(); Optional<ServiceNodelist> serviceListObject = diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/DeviceListener121.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/DeviceListener121.java index 4a7b253533..5edc92fb47 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/DeviceListener121.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/DeviceListener121.java @@ -8,8 +8,8 @@ package org.opendaylight.transportpce.networkmodel.listeners; -import java.util.List; import java.util.Set; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.NotificationService.CompositeListener; import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev240315.mapping.Mapping; @@ -18,9 +18,8 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.OtdrScan import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.change.notification.Edit; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.Ports; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.packs.CircuitPacks; -import org.opendaylight.yangtools.binding.DataObject; -import org.opendaylight.yangtools.binding.DataObjectStep; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; +import org.opendaylight.yangtools.binding.ExactDataObjectStep; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,13 +58,13 @@ public class DeviceListener121 { continue; } // 1. Detect the org-openroadm-device object modified - InstanceIdentifier<DataObject> path = InstanceIdentifier.unsafeOf( - (List<? extends DataObjectStep<?>>) edit.getTarget().steps()); + DataObjectIdentifier<?> path = DataObjectIdentifier.ofUnsafeSteps( + (Iterable<? extends @NonNull ExactDataObjectStep<?>>) edit.getTarget().steps()); LOG.debug("Instance Identifier received = {} from node {}", path.toString(), nodeId); switch (path.lastStep().type().getSimpleName()) { case "Ports": - String portName = path.firstKeyOf(Ports.class).getPortName(); - String cpName = path.firstKeyOf(CircuitPacks.class).getCircuitPackName(); + String portName = path.toLegacy().firstKeyOf(Ports.class).getPortName(); + String cpName = path.toLegacy().firstKeyOf(CircuitPacks.class).getCircuitPackName(); LOG.info("port {} of circruit-pack {} modified on device {}", portName, cpName, this.nodeId); Mapping oldMapping = portMapping.getMapping(nodeId, cpName, portName); if (oldMapping == null) { diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/DeviceListener221.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/DeviceListener221.java index a77e5111eb..097e3c5e3b 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/DeviceListener221.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/DeviceListener221.java @@ -8,7 +8,6 @@ package org.opendaylight.transportpce.networkmodel.listeners; -import java.util.List; import java.util.Set; import org.opendaylight.mdsal.binding.api.NotificationService.CompositeListener; import org.opendaylight.transportpce.common.mapping.PortMapping; @@ -20,9 +19,8 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.change.n import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.pack.Ports; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.packs.CircuitPacks; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.interfaces.grp.Interface; -import org.opendaylight.yangtools.binding.DataObject; -import org.opendaylight.yangtools.binding.DataObjectStep; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; +import org.opendaylight.yangtools.binding.ExactDataObjectStep; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,13 +61,13 @@ public class DeviceListener221 { continue; } // 1. Detect the org-openroadm-device object modified - InstanceIdentifier<DataObject> path = InstanceIdentifier.unsafeOf( - (List<? extends DataObjectStep<?>>) edit.getTarget().steps()); + DataObjectIdentifier<?> path = DataObjectIdentifier.ofUnsafeSteps( + (Iterable<? extends ExactDataObjectStep<?>>) edit.getTarget().steps()); LOG.debug("Instance Identifier received = {} from node {}", path.toString(), nodeId); switch (path.lastStep().type().getSimpleName()) { case "Ports": - String portName = path.firstKeyOf(Ports.class).getPortName(); - String cpName = path.firstKeyOf(CircuitPacks.class).getCircuitPackName(); + String portName = path.toLegacy().firstKeyOf(Ports.class).getPortName(); + String cpName = path.toLegacy().firstKeyOf(CircuitPacks.class).getCircuitPackName(); LOG.info("port {} of circruit-pack {} modified on device {}", portName, cpName, this.nodeId); Mapping oldMapping = portMapping.getMapping(nodeId, cpName, portName); if (oldMapping == null) { @@ -87,7 +85,7 @@ public class DeviceListener221 { thread.start(); break; case "Interface": - String interfaceName = path.firstKeyOf(Interface.class).getName(); + String interfaceName = path.toLegacy().firstKeyOf(Interface.class).getName(); LOG.info("interface {} modified on device {}", interfaceName, this.nodeId); Mapping oldMapping2 = portMapping.getMappingFromOtsInterface(nodeId, interfaceName); if (oldMapping2 == null) { diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/DeviceListener710.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/DeviceListener710.java index 96c8e797ab..4907018d82 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/DeviceListener710.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/listeners/DeviceListener710.java @@ -13,6 +13,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.NotificationService.CompositeListener; import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev240315.mapping.Mapping; @@ -25,10 +26,8 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.circuit. import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.org.openroadm.device.container.org.openroadm.device.OduSwitchingPools; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.org.openroadm.device.container.org.openroadm.device.odu.switching.pools.NonBlockingList; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.org.openroadm.device.container.org.openroadm.device.odu.switching.pools.non.blocking.list.PortList; -import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.binding.DataObjectStep; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.ExactDataObjectStep; import org.opendaylight.yangtools.yang.common.Uint16; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -66,19 +65,19 @@ public class DeviceListener710 { return; } Map<Uint16, List<DataObjectIdentifier<PortList>>> nbliidMap = new HashMap<>(); - InstanceIdentifier<OduSwitchingPools> ospIID = null; + DataObjectIdentifier<OduSwitchingPools> ospIID = null; for (Edit edit : notification.getEdit()) { if (edit.getTarget() == null) { continue; } // 1. Detect the org-openroadm-device object modified - InstanceIdentifier<DataObject> path = InstanceIdentifier.unsafeOf( - (List<? extends DataObjectStep<?>>) edit.getTarget().steps()); + DataObjectIdentifier<?> path = DataObjectIdentifier.ofUnsafeSteps( + (Iterable<? extends @NonNull ExactDataObjectStep<?>>) edit.getTarget().steps()); LOG.debug("Instance Identifier received = {} from node {}", path.toString(), nodeId); switch (path.lastStep().type().getSimpleName()) { case "Ports": - String portName = path.firstKeyOf(Ports.class).getPortName(); - String cpName = path.firstKeyOf(CircuitPacks.class).getCircuitPackName(); + String portName = path.toLegacy().firstKeyOf(Ports.class).getPortName(); + String cpName = path.toLegacy().firstKeyOf(CircuitPacks.class).getCircuitPackName(); LOG.info("port {} of circruit-pack {} modified on device {}", portName, cpName, this.nodeId); Mapping oldMapping = portMapping.getMapping(nodeId, cpName, portName); if (oldMapping == null) { @@ -97,14 +96,13 @@ public class DeviceListener710 { break; case "OduSwitchingPools": LOG.info("odu-switching-pools modified on device {}", nodeId); - ospIID = path.firstIdentifierOf(OduSwitchingPools.class); + ospIID = path.toLegacy().firstIdentifierOf(OduSwitchingPools.class).toIdentifier(); break; case "PortList": - InstanceIdentifier<PortList> plIID = path.firstIdentifierOf(PortList.class); - Uint16 nblNb = path.firstKeyOf(NonBlockingList.class).getNblNumber(); + Uint16 nblNb = path.toLegacy().firstKeyOf(NonBlockingList.class).getNblNumber(); List<DataObjectIdentifier<PortList>> iidList = nbliidMap.containsKey(nblNb) ? nbliidMap.get(nblNb) : new ArrayList<>(); - iidList.add(plIID.toIdentifier()); + iidList.add(path.toLegacy().firstIdentifierOf(PortList.class).toIdentifier()); nbliidMap.put(nblNb, iidList); break; default: diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/FrequenciesServiceImpl.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/FrequenciesServiceImpl.java index e31331cd82..8aa148c9be 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/FrequenciesServiceImpl.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/FrequenciesServiceImpl.java @@ -60,7 +60,6 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdes import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.ZToADirection; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.pce.resource.resource.resource.TerminationPoint; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Decimal64; import org.opendaylight.yangtools.yang.common.Uint32; import org.osgi.service.component.annotations.Activate; @@ -177,7 +176,7 @@ public class FrequenciesServiceImpl implements FrequenciesService { */ private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.Node1 getCommonNetworkNodeFromDatastore(String nodeId) { - InstanceIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.Node1> nodeIID = + DataObjectIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.Node1> nodeIID = OpenRoadmTopology.createCommonNetworkNodeIID(nodeId); try (ReadTransaction nodeReadTx = this.dataBroker.newReadOnlyTransaction()) { Optional<org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.Node1> optionalNode = @@ -249,8 +248,8 @@ public class FrequenciesServiceImpl implements FrequenciesService { */ private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.TerminationPoint1 getCommonNetworkTerminationPointFromDatastore(String nodeId, String tpId) { - InstanceIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.TerminationPoint1> - tpIID = OpenRoadmTopology.createCommonNetworkTerminationPointIIDBuilder(nodeId, tpId).build(); + DataObjectIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.TerminationPoint1> + tpIID = OpenRoadmTopology.createCommonNetworkTerminationPointIIDBuilder(nodeId, tpId); try (ReadTransaction readTx = this.dataBroker.newReadOnlyTransaction()) { Optional<org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.TerminationPoint1> optionalTerminationPoint = readTx diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java index 4e67b4cbdf..ccdfa65cbd 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java @@ -71,7 +71,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Decimal64; import org.opendaylight.yangtools.yang.common.Uint16; import org.slf4j.Logger; @@ -590,9 +589,10 @@ public final class OpenRoadmTopology { * @param tpId String * @return InstanceIdentifierBuilder */ - public static InstanceIdentifier.Builder<org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526 + public static DataObjectIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526 .TerminationPoint1> createCommonNetworkTerminationPointIIDBuilder(String nodeId, String tpId) { - return InstanceIdentifier.builder(Networks.class) + return DataObjectIdentifier + .builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226 .networks.network.Node.class, @@ -603,7 +603,8 @@ public final class OpenRoadmTopology { .networks.network.node.TerminationPoint.class, new TerminationPointKey(new TpId(tpId))) .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526 - .TerminationPoint1.class); + .TerminationPoint1.class) + .build(); } /** @@ -626,9 +627,9 @@ public final class OpenRoadmTopology { * @param nodeId String * @return InstanceIdentifier */ - public static InstanceIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526 + public static DataObjectIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526 .Node1> createCommonNetworkNodeIID(String nodeId) { - return InstanceIdentifier.builder(Networks.class) + return DataObjectIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226 .networks.network.Node.class, diff --git a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/TpceNetworkTest.java b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/TpceNetworkTest.java index 50ba2adba8..c97790ea02 100644 --- a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/TpceNetworkTest.java +++ b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/TpceNetworkTest.java @@ -27,7 +27,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkKey; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NetworkTypes; import org.opendaylight.yangtools.binding.Augmentation; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; public class TpceNetworkTest extends AbstractTest { TpceNetwork tpceNetwork = new TpceNetwork(new NetworkTransactionImpl(getDataBroker())); @@ -35,8 +35,9 @@ public class TpceNetworkTest extends AbstractTest { @Test void createLayerClliTest() throws InterruptedException, ExecutionException { tpceNetwork.createLayer("clli-network"); - InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class) - .child(Network.class, new NetworkKey(new NetworkId("clli-network"))); + DataObjectIdentifier<Network> nwIID = DataObjectIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId("clli-network"))) + .build(); Network createdClli = getDataBroker().newReadOnlyTransaction() .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().orElseThrow(); assertNotNull(createdClli, "Clli layer should be created and not null"); @@ -53,8 +54,9 @@ public class TpceNetworkTest extends AbstractTest { @Test void createLayerNetworkTest() throws InterruptedException, ExecutionException { tpceNetwork.createLayer("openroadm-network"); - InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class) - .child(Network.class, new NetworkKey(new NetworkId("openroadm-network"))); + DataObjectIdentifier<Network> nwIID = DataObjectIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId("openroadm-network"))) + .build(); Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction() .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().orElseThrow(); assertNotNull(createdOrdNetwork, "openroadm-network layer should be created and not null"); @@ -64,8 +66,9 @@ public class TpceNetworkTest extends AbstractTest { @Test void createLayerTopologyTest() throws InterruptedException, ExecutionException { tpceNetwork.createLayer("openroadm-topology"); - InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class) - .child(Network.class, new NetworkKey(new NetworkId("openroadm-topology"))); + DataObjectIdentifier<Network> nwIID = DataObjectIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId("openroadm-topology"))) + .build(); Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction() .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().orElseThrow(); assertNotNull(createdOrdNetwork, "openroadm-logpology layer should be created and not null"); @@ -75,8 +78,9 @@ public class TpceNetworkTest extends AbstractTest { @Test void createLayerOtnTest() throws InterruptedException, ExecutionException { tpceNetwork.createLayer("otn-topology"); - InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class) - .child(Network.class, new NetworkKey(new NetworkId("otn-topology"))); + DataObjectIdentifier<Network> nwIID = DataObjectIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId("otn-topology"))) + .build(); Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction() .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().orElseThrow(); assertNotNull(createdOrdNetwork, "otn-logpology layer should be created and not null"); @@ -86,8 +90,9 @@ public class TpceNetworkTest extends AbstractTest { @Test void createBadLayerTest() throws InterruptedException, ExecutionException { tpceNetwork.createLayer("toto"); - InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class) - .child(Network.class, new NetworkKey(new NetworkId("toto"))); + DataObjectIdentifier<Network> nwIID = DataObjectIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId("toto"))) + .build(); Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction() .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().orElseThrow(); assertNotNull(createdOrdNetwork, "toto layer should be created and not null"); -- 2.36.6