From cac36ace635542170af138cc45f318037e87d830 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 1 Oct 2026 13:48:03 +0200 Subject: [PATCH 1/5] Migrate users of InstanceIdentifier Use DataObject{Identifier,Reference} instead. Change-Id: Ia6855267e69e725c5dfb92dfbe44cc77f2656840 Signed-off-by: Robert Varga --- .../HwvtepConnectionInstance.java | 10 +- .../HwvtepConnectionManager.java | 70 +++--- .../HwvtepDataChangeListener.java | 23 +- .../hwvtepsouthbound/HwvtepDeviceInfo.java | 136 +++++------ .../HwvtepOperGlobalListener.java | 59 +++-- .../HwvtepSouthboundMapper.java | 137 +++++------ .../HwvtepSouthboundProvider.java | 15 +- .../HwvtepSouthboundProviderInfo.java | 8 +- .../HwvtepSouthboundUtil.java | 33 +-- .../hwvtepsouthbound/HwvtepTableReader.java | 44 ++-- .../TransactionHistoryCmd.java | 23 +- .../cli/HwvtepCacheDisplayCmd.java | 38 ++- .../reconciliation/ReconciliationTask.java | 7 +- .../DataObjectModificationImpl.java | 6 +- .../DataTreeModificationImpl.java | 7 +- .../GlobalConfigOperationalChangeGetter.java | 7 +- .../HwvtepReconciliationManager.java | 9 +- .../HwvtepReconciliationTask.java | 17 +- .../SwitchConfigOperationalChangeGetter.java | 4 +- .../ConnectionReconciliationTask.java | 6 +- .../transact/AbstractTransactCommand.java | 60 +++-- .../transact/DependentJob.java | 32 +-- .../transact/HwvtepOperationalState.java | 84 +++---- .../transact/LogicalRouterRemoveCommand.java | 9 +- .../transact/LogicalRouterUpdateCommand.java | 22 +- .../transact/LogicalSwitchRemoveCommand.java | 32 ++- .../LogicalSwitchUcastsRemoveCommand.java | 19 +- .../transact/LogicalSwitchUpdateCommand.java | 34 ++- .../transact/McastMacsLocalRemoveCommand.java | 20 +- .../transact/McastMacsLocalUpdateCommand.java | 18 +- .../McastMacsRemoteRemoveCommand.java | 34 +-- .../McastMacsRemoteUpdateCommand.java | 66 +++-- .../transact/MdsalUpdate.java | 8 +- .../transact/PhysicalPortRemoveCommand.java | 16 +- .../transact/PhysicalPortUpdateCommand.java | 65 ++--- .../transact/PhysicalSwitchRemoveCommand.java | 16 +- .../transact/PhysicalSwitchUpdateCommand.java | 33 ++- .../transact/PlainLogicalSwitchRemoveCmd.java | 4 +- .../transact/TransactCommand.java | 10 +- .../transact/TransactCommandAggregator.java | 18 +- .../transact/TransactUtils.java | 27 +-- .../transact/UcastMacsLocalRemoveCommand.java | 16 +- .../transact/UcastMacsLocalUpdateCommand.java | 18 +- .../UcastMacsRemoteRemoveCommand.java | 42 ++-- .../UcastMacsRemoteUpdateCommand.java | 57 +++-- .../transact/UnMetDependencyGetter.java | 37 +-- .../md/AbstractTransactionCommand.java | 16 +- .../transactions/md/GlobalUpdateCommand.java | 15 +- .../md/HwvtepGlobalRemoveCommand.java | 10 +- .../md/HwvtepLogicalRouterRemoveCommand.java | 8 +- .../md/HwvtepLogicalRouterUpdateCommand.java | 21 +- .../md/HwvtepLogicalSwitchRemoveCommand.java | 9 +- .../md/HwvtepLogicalSwitchUpdateCommand.java | 12 +- .../md/HwvtepMacEntriesRemoveCommand.java | 43 ++-- .../md/HwvtepManagerRemoveCommand.java | 10 +- .../md/HwvtepManagerUpdateCommand.java | 5 +- .../md/HwvtepMcastMacsLocalUpdateCommand.java | 27 +-- .../HwvtepMcastMacsRemoteUpdateCommand.java | 30 +-- .../HwvtepPhysicalLocatorRemoveCommand.java | 9 +- .../HwvtepPhysicalLocatorUpdateCommand.java | 17 +- .../md/HwvtepPhysicalPortRemoveCommand.java | 11 +- .../md/HwvtepPhysicalPortUpdateCommand.java | 84 +++---- .../md/HwvtepPhysicalSwitchRemoveCommand.java | 14 +- .../md/HwvtepPhysicalSwitchUpdateCommand.java | 65 +++-- .../md/HwvtepTunnelRemoveCommand.java | 23 +- .../md/HwvtepTunnelUpdateCommand.java | 30 +-- .../md/HwvtepUcastMacsLocalUpdateCommand.java | 25 +- .../HwvtepUcastMacsRemoteUpdateCommand.java | 30 ++- .../DataChangeListenerTestBase.java | 72 +++--- .../HwvtepDataChangeListenerTest.java | 16 +- .../HwvtepOperationalDataChangeListener.java | 55 +++-- .../HwvtepOperationalStateTest.java | 8 +- .../ovsdb/hwvtepsouthbound/TestBuilders.java | 36 +-- .../transact/DependencyQueueTest.java | 18 +- .../transact/UnMetDependencyGetterTest.java | 12 +- .../it/HwvtepSouthboundIT.java | 61 +++-- .../ovsdb/lib/schema/ColumnType.java | 3 +- .../ovsdb/lib/schema/DatabaseSchemaImpl.java | 6 +- .../southbound/InstanceIdentifierCodec.java | 15 +- .../southbound/OvsdbConnectionInstance.java | 26 +- .../southbound/OvsdbConnectionManager.java | 41 ++-- .../OvsdbDataTreeChangeListener.java | 32 ++- .../southbound/OvsdbOperGlobalListener.java | 21 +- .../ovsdb/southbound/SouthboundMapper.java | 63 +++-- .../ovsdb/southbound/SouthboundUtil.java | 15 +- .../transact/AutoAttachRemovedCommand.java | 20 +- .../transact/AutoAttachUpdateCommand.java | 15 +- .../transact/BridgeOperationalState.java | 17 +- .../ovsdb/transact/BridgeRemovedCommand.java | 8 +- .../ovsdb/transact/BridgeUpdateCommand.java | 17 +- .../transact/ControllerRemovedCommand.java | 11 +- .../transact/ControllerUpdateCommand.java | 18 +- .../ovsdb/transact/DataChangeEvent.java | 10 +- .../DataChangesManagedByOvsdbNodeEvent.java | 54 ++--- .../transact/OvsdbNodeUpdateCommand.java | 13 +- .../transact/ProtocolRemovedCommand.java | 11 +- .../ovsdb/transact/ProtocolUpdateCommand.java | 19 +- .../ovsdb/transact/QosRemovedCommand.java | 8 +- .../ovsdb/transact/QosUpdateCommand.java | 20 +- .../ovsdb/transact/QueueRemovedCommand.java | 11 +- .../ovsdb/transact/QueueUpdateCommand.java | 18 +- .../TerminationPointCreateCommand.java | 18 +- .../TerminationPointDeleteCommand.java | 14 +- .../TerminationPointUpdateCommand.java | 15 +- .../ovsdb/transact/TransactUtils.java | 123 +++++----- .../reconciliation/ReconciliationManager.java | 52 ++-- .../reconciliation/ReconciliationTask.java | 6 +- .../BridgeConfigReconciliationTask.java | 61 ++--- ...minationPointConfigReconciliationTask.java | 36 ++- .../ConnectionReconciliationTask.java | 6 +- .../md/OpenVSwitchUpdateCommand.java | 22 +- .../md/OvsdbAutoAttachRemovedCommand.java | 14 +- .../md/OvsdbAutoAttachUpdateCommand.java | 18 +- .../md/OvsdbBridgeRemovedCommand.java | 7 +- .../md/OvsdbBridgeUpdateCommand.java | 38 ++- .../md/OvsdbControllerUpdateCommand.java | 37 ++- .../md/OvsdbInitialPortUpdateCommand.java | 13 +- .../md/OvsdbManagersRemovedCommand.java | 25 +- .../md/OvsdbManagersUpdateCommand.java | 31 ++- .../md/OvsdbNodeRemoveCommand.java | 4 +- .../md/OvsdbPortUpdateCommand.java | 89 +++---- .../md/OvsdbQosRemovedCommand.java | 22 +- .../md/OvsdbQosUpdateCommand.java | 87 +++---- .../md/OvsdbQueueRemovedCommand.java | 20 +- .../md/OvsdbQueueUpdateCommand.java | 44 ++-- .../OvsdbConnectionInstanceTest.java | 7 +- .../OvsdbConnectionManagerTest.java | 53 ++-- .../OvsdbDataTreeChangeListenerTest.java | 6 +- .../southbound/SouthboundMapperTest.java | 16 +- .../ovsdb/southbound/SouthboundUtilTest.java | 8 +- .../transact/BridgeOperationalStateTest.java | 61 ++--- ...ataChangesManagedByOvsdbNodeEventTest.java | 12 +- .../transact/OvsdbNodeUpdateCommandTest.java | 10 +- .../transact/ProtocolRemovedCommandTest.java | 11 +- .../TerminationPointCreateCommandTest.java | 12 +- .../TerminationPointDeleteCommandTest.java | 8 +- .../TerminationPointUpdateCommandTest.java | 27 ++- .../ovsdb/transact/TransactUtilsTest.java | 36 +-- .../BridgeConfigReconciliationTaskTest.java | 26 +- .../md/OpenVSwitchUpdateCommandTest.java | 5 +- .../md/OvsdbAutoAttachRemovedCommandTest.java | 17 +- .../md/OvsdbAutoAttachUpdateCommandTest.java | 21 +- .../md/OvsdbBridgeUpdateCommandTest.java | 31 ++- .../md/OvsdbControllerUpdateCommandTest.java | 34 +-- .../md/OvsdbManagersRemovedCommandTest.java | 16 +- .../md/OvsdbManagersUpdateCommandTest.java | 26 +- .../md/OvsdbNodeRemoveCommandTest.java | 6 +- .../md/OvsdbPortUpdateCommandTest.java | 69 +++--- .../ovsdb/southbound/it/SouthboundIT.java | 226 ++++++++++-------- .../utils/HwvtepSouthboundUtils.java | 24 +- .../ovsdb/utils/mdsal/utils/MdsalUtils.java | 31 ++- .../utils/mdsal/utils/MdsalUtilsAsync.java | 32 +-- .../utils/NotifyingDataChangeListener.java | 38 +-- .../mdsal/utils/MdsalUtilsAsyncTest.java | 12 +- .../utils/mdsal/utils/MdsalUtilsTest.java | 9 +- .../ovsdb/utils/ovsdb/it/utils/DockerOvs.java | 4 +- .../ovsdb/utils/ovsdb/it/utils/NodeInfo.java | 7 +- .../southbound/utils/SouthboundUtils.java | 127 +++++----- 158 files changed, 2211 insertions(+), 2359 deletions(-) diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionInstance.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionInstance.java index ba694437e..43460ac5b 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionInstance.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionInstance.java @@ -58,8 +58,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -68,7 +68,7 @@ public class HwvtepConnectionInstance { private ConnectionInfo connectionInfo; private final OvsdbClient client; private final HwvtepTableReader hwvtepTableReader; - private InstanceIdentifier instanceIdentifier; + private DataObjectIdentifier instanceIdentifier; private final TransactionInvoker txInvoker; private Map transactInvokers; private MonitorCallBack callback; @@ -91,7 +91,7 @@ public class HwvtepConnectionInstance { private TransactionHistory deviceUpdateHistory; HwvtepConnectionInstance(final HwvtepConnectionManager hwvtepConnectionManager, final ConnectionInfo key, - final OvsdbClient client, final InstanceIdentifier iid, final TransactionInvoker txInvoker, + final OvsdbClient client, final DataObjectIdentifier iid, final TransactionInvoker txInvoker, final DataBroker dataBroker, final Operations ops) { this.hwvtepConnectionManager = hwvtepConnectionManager; this.connectionInfo = key; @@ -304,7 +304,7 @@ public class HwvtepConnectionInstance { this.connectionInfo = key; } - public InstanceIdentifier getInstanceIdentifier() { + public DataObjectIdentifier getInstanceIdentifier() { return instanceIdentifier; } @@ -317,7 +317,7 @@ public class HwvtepConnectionInstance { return getNodeKey().getNodeId(); } - public void setInstanceIdentifier(final InstanceIdentifier iid) { + public void setInstanceIdentifier(final DataObjectIdentifier iid) { this.instanceIdentifier = iid; hwvtepConnectionManager.putConnectionInstance(instanceIdentifier, this); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionManager.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionManager.java index eca87386d..c1a629868 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionManager.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionManager.java @@ -66,8 +66,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.PhysicalSwitchAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.ConnectionInfo; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -85,16 +85,16 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo private final DataBroker db; private final TransactionInvoker txInvoker; private final Operations ops; - private final Map> instanceIdentifiers = new ConcurrentHashMap<>(); + private final Map> instanceIdentifiers = new ConcurrentHashMap<>(); private final Map entityConnectionMap = new ConcurrentHashMap<>(); private final EntityOwnershipService entityOwnershipService; private final HwvtepDeviceEntityOwnershipListener hwvtepDeviceEntityOwnershipListener; private final ReconciliationManager reconciliationManager; - private final Map, HwvtepConnectionInstance> nodeIidVsConnectionInstance = + private final Map, HwvtepConnectionInstance> nodeIidVsConnectionInstance = new ConcurrentHashMap<>(); private final HwvtepOperGlobalListener hwvtepOperGlobalListener; - private final Map, TransactionHistory> controllerTxHistory = new ConcurrentHashMap<>(); - private final Map, TransactionHistory> deviceUpdateHistory = new ConcurrentHashMap<>(); + private final Map, TransactionHistory> controllerTxHistory = new ConcurrentHashMap<>(); + private final Map, TransactionHistory> deviceUpdateHistory = new ConcurrentHashMap<>(); private final OvsdbConnection ovsdbConnectionService; private final Map alreadyProcessedClients = new ConcurrentHashMap<>(); private final ScheduledExecutorService dependencyExecutor; @@ -224,17 +224,17 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo } } - public OvsdbClient connect(final InstanceIdentifier iid, final HwvtepGlobalAugmentation hwvtepGlobal) + public OvsdbClient connect(final DataObjectIdentifier iid, final HwvtepGlobalAugmentation hwvtepGlobal) throws UnknownHostException, ConnectException { LOG.info("Connecting to {}", HwvtepSouthboundUtil.connectionInfoToString(hwvtepGlobal.getConnectionInfo())); InetAddress ip = HwvtepSouthboundMapper.createInetAddress(hwvtepGlobal.getConnectionInfo().getRemoteIp()); OvsdbClient client = ovsdbConnectionService .connect(ip, hwvtepGlobal.getConnectionInfo().getRemotePort().getValue().toJava()); if (client != null) { - putInstanceIdentifier(hwvtepGlobal.getConnectionInfo(), iid.firstIdentifierOf(Node.class)); + putInstanceIdentifier(hwvtepGlobal.getConnectionInfo(), iid.trimTo(Node.class)); HwvtepConnectionInstance hwvtepConnectionInstance = connectedButCallBacksNotRegistered(client); hwvtepConnectionInstance.setHwvtepGlobalAugmentation(hwvtepGlobal); - hwvtepConnectionInstance.setInstanceIdentifier(iid.firstIdentifierOf(Node.class)); + hwvtepConnectionInstance.setInstanceIdentifier(iid.trimTo(Node.class)); // Register Cluster Ownership for ConnectionInfo registerEntityForOwnership(hwvtepConnectionInstance); @@ -290,7 +290,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo LOG.info("Clients after put: {}", clients); } - void putConnectionInstance(final InstanceIdentifier nodeIid, + void putConnectionInstance(final DataObjectIdentifier nodeIid, final HwvtepConnectionInstance connectionInstance) { nodeIidVsConnectionInstance.put(nodeIid, connectionInstance); } @@ -335,12 +335,12 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo } } - public HwvtepConnectionInstance getConnectionInstanceFromNodeIid(final InstanceIdentifier nodeIid) { + public HwvtepConnectionInstance getConnectionInstanceFromNodeIid(final DataObjectIdentifier nodeIid) { HwvtepConnectionInstance hwvtepConnectionInstance = nodeIidVsConnectionInstance.get(nodeIid); if (hwvtepConnectionInstance != null) { return hwvtepConnectionInstance; } - InstanceIdentifier globalNodeIid = HwvtepSouthboundUtil.getGlobalNodeIid(nodeIid); + DataObjectIdentifier globalNodeIid = HwvtepSouthboundUtil.getGlobalNodeIid(nodeIid); if (globalNodeIid != null) { LOG.debug("Get the ConnectionInfo from HwvtepGlobal : {}", globalNodeIid); return nodeIidVsConnectionInstance.get(globalNodeIid); @@ -348,19 +348,14 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo return null; } - public void stopConfigurationReconciliation(final InstanceIdentifier nodeIid) { - final ReconciliationTask task = new HwvtepReconciliationTask( - reconciliationManager, HwvtepConnectionManager.this, nodeIid, null, null, db); - - reconciliationManager.dequeue(task); + public void stopConfigurationReconciliation(final DataObjectIdentifier nodeIid) { + reconciliationManager.dequeue(new HwvtepReconciliationTask( + reconciliationManager, HwvtepConnectionManager.this, nodeIid, null, null, db)); } public void reconcileConfigurations(final HwvtepConnectionInstance client, final Node psNode) { - final InstanceIdentifier nodeIid = client.getInstanceIdentifier(); - final ReconciliationTask task = new HwvtepReconciliationTask( - reconciliationManager, HwvtepConnectionManager.this, nodeIid, psNode, client, db); - - reconciliationManager.enqueue(task); + reconciliationManager.enqueue(new HwvtepReconciliationTask(reconciliationManager, this, + client.getInstanceIdentifier(), psNode, client, db)); } private void removeConnectionInstance(final ConnectionInfo key) { @@ -369,18 +364,18 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo LOG.info("Clients after remove: {}", clients); } - private void removeConnectionInstance(final InstanceIdentifier nodeIid) { + private void removeConnectionInstance(final DataObjectIdentifier nodeIid) { if (nodeIid != null) { nodeIidVsConnectionInstance.remove(nodeIid); } } - private void putInstanceIdentifier(final ConnectionInfo key,final InstanceIdentifier iid) { + private void putInstanceIdentifier(final ConnectionInfo key,final DataObjectIdentifier iid) { ConnectionInfo connectionInfo = HwvtepSouthboundMapper.suppressLocalIpPort(key); instanceIdentifiers.put(connectionInfo, iid); } - public InstanceIdentifier getInstanceIdentifier(final ConnectionInfo key) { + public DataObjectIdentifier getInstanceIdentifier(final ConnectionInfo key) { ConnectionInfo connectionInfo = HwvtepSouthboundMapper.suppressLocalIpPort(key); return instanceIdentifiers.get(connectionInfo); } @@ -416,7 +411,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo Entity candidateEntity = getEntityFromConnectionInstance(hwvtepConnectionInstance); if (entityConnectionMap.get(candidateEntity) != null) { - InstanceIdentifier iid = hwvtepConnectionInstance.getInstanceIdentifier(); + DataObjectIdentifier iid = hwvtepConnectionInstance.getInstanceIdentifier(); LOG.info("Calling disconnect before processing new connection for {}", candidateEntity); disconnected(entityConnectionMap.get(candidateEntity).getOvsdbClient()); hwvtepConnectionInstance.setInstanceIdentifier(iid); @@ -496,7 +491,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo } private Entity getEntityFromConnectionInstance(@NonNull final HwvtepConnectionInstance hwvtepConnectionInstance) { - InstanceIdentifier iid = hwvtepConnectionInstance.getInstanceIdentifier(); + DataObjectIdentifier iid = hwvtepConnectionInstance.getInstanceIdentifier(); if (iid == null) { //TODO: Is Global the right one? Global hwvtepGlobalRow = getHwvtepGlobalTableEntry(hwvtepConnectionInstance); @@ -517,7 +512,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo hwvtepConnectionInstance.setControllerTxHistory(controllerLog); hwvtepConnectionInstance.setDeviceUpdateHistory(deviceLog); } - Entity deviceEntity = new Entity(ENTITY_TYPE, iid); + Entity deviceEntity = new Entity(ENTITY_TYPE, iid.toLegacy()); LOG.debug("Entity {} created for device connection {}", deviceEntity, hwvtepConnectionInstance.getConnectionInfo()); return deviceEntity; @@ -528,12 +523,12 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo entityConnectionMap.remove(hwvtepConnectionInstance.getConnectedEntity()); } - public void reconcileConnection(final InstanceIdentifier iid, final HwvtepGlobalAugmentation hwvtepNode) { + public void reconcileConnection(final DataObjectIdentifier iid, final HwvtepGlobalAugmentation hwvtepNode) { retryConnection(iid, hwvtepNode, ConnectionReconciliationTriggers.ON_CONTROLLER_INITIATED_CONNECTION_FAILURE); } - public void stopConnectionReconciliationIfActive(final InstanceIdentifier iid, + public void stopConnectionReconciliationIfActive(final DataObjectIdentifier iid, final HwvtepGlobalAugmentation hwvtepNode) { final ReconciliationTask task = new ConnectionReconciliationTask( reconciliationManager, @@ -543,7 +538,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo reconciliationManager.dequeue(task); } - private void retryConnection(final InstanceIdentifier iid, final HwvtepGlobalAugmentation hwvtepNode, + private void retryConnection(final DataObjectIdentifier iid, final HwvtepGlobalAugmentation hwvtepNode, final ConnectionReconciliationTriggers trigger) { if (hwvtepNode == null) { //switch initiated connection @@ -565,8 +560,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo break; case ON_DISCONNECT: { ReadTransaction tx = db.newReadOnlyTransaction(); - FluentFuture> readNodeFuture = - tx.read(LogicalDatastoreType.CONFIGURATION, iid.toIdentifier()); + FluentFuture> readNodeFuture = tx.read(LogicalDatastoreType.CONFIGURATION, iid); readNodeFuture.addCallback(new FutureCallback>() { @Override @@ -584,7 +578,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo } else { LOG.debug("Connection {} was switch initiated, no reconciliation is required", - iid.firstKeyOf(Node.class).getNodeId()); + iid.getFirstKeyOf(Node.class).getNodeId()); } } @@ -625,7 +619,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo // Below code might look weird but it's required. We want to give first opportunity to the // previous owner of the device to clean up the operational data store if there is no owner now. // That way we will avoid lot of nasty md-sal exceptions because of concurrent delete. - InstanceIdentifier nodeIid = (InstanceIdentifier) entity.getIdentifier(); + var nodeIid = (DataObjectIdentifier) entity.getIdentifier().toIdentifier(); hwvtepOperGlobalListener.scheduleOldConnectionNodeDelete(nodeIid); /* Assuming node1 was the owner earlier. @@ -703,20 +697,20 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo } } - final Map, HwvtepDeviceInfo> allConnectedInstances() { + final Map, HwvtepDeviceInfo> allConnectedInstances() { return Maps.transformValues(Collections.unmodifiableMap(nodeIidVsConnectionInstance), HwvtepConnectionInstance::getDeviceInfo); } - final Map, TransactionHistory> controllerTxHistory() { + final Map, TransactionHistory> controllerTxHistory() { return Collections.unmodifiableMap(controllerTxHistory); } - final Map, TransactionHistory> deviceUpdateHistory() { + final Map, TransactionHistory> deviceUpdateHistory() { return Collections.unmodifiableMap(deviceUpdateHistory); } - public void cleanupOperationalNode(final InstanceIdentifier nodeIid) { + public void cleanupOperationalNode(final DataObjectIdentifier nodeIid) { txInvoker.invoke(new HwvtepGlobalRemoveCommand(nodeIid)); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDataChangeListener.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDataChangeListener.java index b131601a6..97ceccebc 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDataChangeListener.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDataChangeListener.java @@ -35,8 +35,9 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; +import org.opendaylight.yangtools.binding.DataObjectReference; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,7 +54,7 @@ public final class HwvtepDataChangeListener implements DataTreeChangeListener> changes) { for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().path(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); Node node = getCreated(mod); if (node != null) { @@ -98,7 +99,7 @@ public final class HwvtepDataChangeListener implements DataTreeChangeListener iid = hcm.getInstanceIdentifier(connection); + var iid = hcm.getInstanceIdentifier(connection); if (iid != null) { LOG.warn("Connection to device {} already exists. Plugin does not allow multiple connections " + "to same device, hence dropping the request {}", connection, hwvtepGlobal); @@ -116,7 +117,7 @@ public final class HwvtepDataChangeListener implements DataTreeChangeListener> changes) { for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().path(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); Node updated = getUpdated(mod); if (updated != null) { @@ -161,7 +162,7 @@ public final class HwvtepDataChangeListener implements DataTreeChangeListener> changes) { for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().path(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); Node deleted = getRemoved(mod); if (deleted != null) { @@ -234,8 +235,7 @@ public final class HwvtepDataChangeListener implements DataTreeChangeListener mod = change.getRootNode(); //From original node to get connection instance Node node = mod.dataBefore() != null ? mod.dataBefore() : mod.dataAfter(); - HwvtepConnectionInstance connection = hcm.getConnectionInstanceFromNodeIid( - change.getRootPath().path()); + HwvtepConnectionInstance connection = hcm.getConnectionInstanceFromNodeIid(change.path()); if (connection != null) { if (!result.containsKey(connection)) { List> tempChanges = new ArrayList<>(); @@ -255,14 +255,15 @@ public final class HwvtepDataChangeListener implements DataTreeChangeListener> changes) { for (DataTreeModification change : changes) { - String nodeId = change.getRootPath().path().firstKeyOf(Node.class).getNodeId().getValue(); + String nodeId = change.path().getFirstKeyOf(Node.class).getNodeId().getValue(); if (!nodeId.contains("/disconnect")) { continue; } int reconcileIndex = nodeId.indexOf("/disconnect"); String globalNodeId = nodeId.substring(0, reconcileIndex); - InstanceIdentifier globalNodeIid = change.getRootPath().path().firstIdentifierOf(Topology.class) - .child(Node.class, new NodeKey(new NodeId(globalNodeId))); + var globalNodeIid = change.path().trimTo(Topology.class).toBuilder() + .child(Node.class, new NodeKey(new NodeId(globalNodeId))) + .build(); HwvtepConnectionInstance connectionInstance = hcm.getConnectionInstanceFromNodeIid(globalNodeIid); if (connectionInstance != null) { LOG.error("Disconnecting from controller {}", nodeId); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java index 06eb291bf..cebde898a 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java @@ -32,7 +32,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yangtools.binding.BindingInstanceIdentifier; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -58,20 +57,20 @@ public class HwvtepDeviceInfo { private static final Logger LOG = LoggerFactory.getLogger(HwvtepDeviceInfo.class); - private Map>, Map> availableInOperDs = + private Map>, Map> availableInOperDs = new ConcurrentHashMap<>(); - public void markAvailableInOperDs(Class> cls, InstanceIdentifier key) { + public void markAvailableInOperDs(Class> cls, DataObjectIdentifier key) { availableInOperDs.putIfAbsent(cls, new ConcurrentHashMap<>()); availableInOperDs.get(cls).put(key, Boolean.TRUE); } - public Boolean isAvailableInOperDs(Class> cls, InstanceIdentifier key) { + public Boolean isAvailableInOperDs(Class> cls, DataObjectIdentifier key) { availableInOperDs.putIfAbsent(cls, new ConcurrentHashMap<>()); return availableInOperDs.get(cls).getOrDefault(key, Boolean.FALSE); } - public Boolean clearOperDsAvailability(Class> cls, InstanceIdentifier key) { + public Boolean clearOperDsAvailability(Class> cls, DataObjectIdentifier key) { availableInOperDs.putIfAbsent(cls, new ConcurrentHashMap<>()); return availableInOperDs.get(cls).remove(key); } @@ -83,13 +82,13 @@ public class HwvtepDeviceInfo { } public static class DeviceData { - private final InstanceIdentifier key; + private final DataObjectIdentifier key; private final UUID uuid; private final Object data; private final DeviceDataStatus status; private long intransitTimeStamp; - DeviceData(InstanceIdentifier key, UUID uuid, Object data, DeviceDataStatus status) { + DeviceData(DataObjectIdentifier key, UUID uuid, Object data, DeviceDataStatus status) { this.data = data; this.key = key; this.status = status; @@ -111,7 +110,7 @@ public class HwvtepDeviceInfo { return uuid; } - public InstanceIdentifier getKey() { + public DataObjectIdentifier getKey() { return key; } @@ -134,21 +133,21 @@ public class HwvtepDeviceInfo { } } - private final Map, Set> tepIdReferences = new ConcurrentHashMap<>(); - private final Map, Map, RemoteUcastMacs>> - logicalSwitchVsUcasts = new ConcurrentHashMap<>(); - private final Map, Map, RemoteMcastMacs>> - logicalSwitchVsMcasts = new ConcurrentHashMap<>(); + private final Map, Set> tepIdReferences = new ConcurrentHashMap<>(); + private final Map, + Map, RemoteUcastMacs>> logicalSwitchVsUcasts = new ConcurrentHashMap<>(); + private final Map, + Map, RemoteMcastMacs>> logicalSwitchVsMcasts = new ConcurrentHashMap<>(); private final Map physicalSwitches = new ConcurrentHashMap<>(); private final Map mapTunnelToPhysicalSwitch = new ConcurrentHashMap<>(); - private final Map>, Map> opKeyVsData = + private final Map>, Map> opKeyVsData = new ConcurrentHashMap<>(); private final Map>, Map> uuidVsData = new ConcurrentHashMap<>(); private final HwvtepConnectionInstance connectionInstance; private final DependencyQueue dependencyQueue; - private Map iidInQueueCount = new ConcurrentHashMap<>(); - private Map>, Map> configKeyVsData = + private Map iidInQueueCount = new ConcurrentHashMap<>(); + private Map>, Map> configKeyVsData = new ConcurrentHashMap<>(); private TransactionHistory controllerTxHistory = null; private TransactionHistory deviceUpdateHistory = null; @@ -228,33 +227,33 @@ public class HwvtepDeviceInfo { return mapTunnelToPhysicalSwitch; } - public boolean isKeyInTransit(Class> cls, InstanceIdentifier key) { + public boolean isKeyInTransit(Class> cls, DataObjectIdentifier key) { DeviceData deviceData = HwvtepSouthboundUtil.getData(opKeyVsData, cls, key); return deviceData != null && DeviceDataStatus.IN_TRANSIT == deviceData.status; } - public boolean isConfigDataAvailable(Class> cls, InstanceIdentifier key) { + public boolean isConfigDataAvailable(Class> cls, DataObjectIdentifier key) { return HwvtepSouthboundUtil.getData(configKeyVsData, cls, key) != null; } - public void updateConfigData(Class> cls, InstanceIdentifier key, Object data) { + public void updateConfigData(Class> cls, DataObjectIdentifier key, Object data) { HwvtepSouthboundUtil.updateData(configKeyVsData, cls, key, new DeviceData(key, null, data, DeviceDataStatus.AVAILABLE)); } - public DeviceData getConfigData(Class> cls, InstanceIdentifier key) { + public DeviceData getConfigData(Class> cls, DataObjectIdentifier key) { return HwvtepSouthboundUtil.getData(configKeyVsData, cls, key); } - public Map>, Map> getConfigData() { + public Map>, Map> getConfigData() { return Collections.unmodifiableMap(configKeyVsData); } - public void clearConfigData(Class> cls, InstanceIdentifier key) { + public void clearConfigData(Class> cls, DataObjectIdentifier key) { HwvtepSouthboundUtil.clearData(configKeyVsData, cls, key); } - public void markKeyAsInTransit(Class> cls, InstanceIdentifier key) { + public void markKeyAsInTransit(Class> cls, DataObjectIdentifier key) { LOG.debug("Marking device data as intransit {}", key); DeviceData deviceData = getDeviceOperData(cls, key); UUID uuid = null; @@ -268,7 +267,7 @@ public class HwvtepDeviceInfo { new DeviceData(key, uuid, data, DeviceDataStatus.IN_TRANSIT)); } - public void updateDeviceOperData(Class> cls, InstanceIdentifier key, + public void updateDeviceOperData(Class> cls, DataObjectIdentifier key, UUID uuid, Object data) { LOG.debug("Updating device data {}", key); DeviceData deviceData = new DeviceData(key, uuid, data, DeviceDataStatus.AVAILABLE); @@ -276,7 +275,7 @@ public class HwvtepDeviceInfo { HwvtepSouthboundUtil.updateData(uuidVsData, cls, uuid, deviceData); } - public void clearDeviceOperData(Class> cls, InstanceIdentifier key) { + public void clearDeviceOperData(Class> cls, DataObjectIdentifier key) { DeviceData deviceData = HwvtepSouthboundUtil.getData(opKeyVsData, cls, key); if (deviceData != null && deviceData.uuid != null) { HwvtepSouthboundUtil.clearData(uuidVsData, cls, deviceData.uuid); @@ -285,11 +284,11 @@ public class HwvtepDeviceInfo { } public void clearDeviceOperData(Class> cls) { - Map iids = opKeyVsData.get(cls); + Map iids = opKeyVsData.get(cls); if (iids != null && !iids.isEmpty()) { - Iterator> it = iids.entrySet().iterator(); + Iterator> it = iids.entrySet().iterator(); while (it.hasNext()) { - Map.Entry entry = it.next(); + Map.Entry entry = it.next(); DeviceData deviceData = entry.getValue(); if (deviceData != null && deviceData.getStatus() != DeviceDataStatus.IN_TRANSIT) { it.remove(); @@ -298,7 +297,7 @@ public class HwvtepDeviceInfo { } } - public void clearDeviceOperUUID(Class> cls, InstanceIdentifier key, UUID uuid) { + public void clearDeviceOperUUID(Class> cls, DataObjectIdentifier key, UUID uuid) { LOG.debug("Clearing device data {}", key); if (uuidVsData.containsKey(cls) && uuidVsData.get(cls).containsKey(uuid)) { LOG.debug("Remove {} {} from device data.", connectionInstance.getNodeId().getValue(), cls.getSimpleName()); @@ -311,15 +310,15 @@ public class HwvtepDeviceInfo { return HwvtepSouthboundUtil.getData(uuidVsData, cls, uuid); } - public DeviceData getDeviceOperData(Class> cls, InstanceIdentifier key) { + public DeviceData getDeviceOperData(Class> cls, DataObjectIdentifier key) { return HwvtepSouthboundUtil.getData(opKeyVsData, cls, key); } - public Map getDeviceOperData(Class> cls) { + public Map getDeviceOperData(Class> cls) { return opKeyVsData.get(cls); } - public InstanceIdentifier getDeviceOperKey(final Class> cls, final UUID uuid) { + public DataObjectIdentifier getDeviceOperKey(final Class> cls, final UUID uuid) { DeviceData deviceData = HwvtepSouthboundUtil.getData(uuidVsData, cls, uuid); if (deviceData != null) { return deviceData.getKey(); @@ -327,7 +326,7 @@ public class HwvtepDeviceInfo { return null; } - public UUID getUUID(Class> cls, InstanceIdentifier key) { + public UUID getUUID(Class> cls, DataObjectIdentifier key) { DeviceData data = HwvtepSouthboundUtil.getData(opKeyVsData, cls, key); if (data != null) { return data.uuid; @@ -351,7 +350,7 @@ public class HwvtepDeviceInfo { dependencyQueue.submit(() -> connectionInstance.transact(transactCommand)); } - public void clearInTransit(Class> cls, InstanceIdentifier key) { + public void clearInTransit(Class> cls, DataObjectIdentifier key) { DeviceData deviceData = getDeviceOperData(cls, key); if (deviceData != null && deviceData.isInTransitState()) { if (deviceData.getData() != null) { @@ -363,13 +362,13 @@ public class HwvtepDeviceInfo { } } - public void incRefCount(InstanceIdentifier reference, BindingInstanceIdentifier tep) { + public void incRefCount(DataObjectIdentifier reference, BindingInstanceIdentifier tep) { if (tep instanceof DataObjectIdentifier doi) { - incRefCount(reference, doi.toLegacy()); + incRefCount(reference, doi); } } - public void incRefCount(InstanceIdentifier reference, InstanceIdentifier tep) { + public void incRefCount(DataObjectIdentifier reference, DataObjectIdentifier tep) { if (reference == null || tep == null) { return; } @@ -377,49 +376,41 @@ public class HwvtepDeviceInfo { tepIdReferences.get(tep).add(reference); } - public int getRefCount(InstanceIdentifier tep) { + public int getRefCount(DataObjectIdentifier tep) { return tepIdReferences.containsKey(tep) ? tepIdReferences.get(tep).size() : 0; } - public Set getRefCounts(InstanceIdentifier tep) { + public Set getRefCounts(DataObjectIdentifier tep) { return tepIdReferences.get(tep); } - public void decRefCount(InstanceIdentifier reference, BindingInstanceIdentifier tep) { - if (tep instanceof DataObjectIdentifier doi) { - decRefCount(reference, doi.toLegacy()); - } - } - - public void decRefCount(InstanceIdentifier reference, InstanceIdentifier tep) { - if (reference == null || tep == null || !tepIdReferences.containsKey(tep)) { - return; - } - //synchronize to make sure that no two parallel deletes puts the key in transit state twice - synchronized (this) { - boolean removed = tepIdReferences.get(tep).remove(reference); - if (removed && tepIdReferences.get(tep).isEmpty()) { - LOG.debug("Marking the termination point as in transit ref count zero {} ", tep); - markKeyAsInTransit(TerminationPoint.class, tep); + public void decRefCount(DataObjectIdentifier reference, BindingInstanceIdentifier tep) { + if (reference != null && tep instanceof DataObjectIdentifier doi && tepIdReferences.containsKey(doi)) { + // synchronize to make sure that no two parallel deletes puts the key in transit state twice + synchronized (this) { + boolean removed = tepIdReferences.get(doi).remove(reference); + if (removed && tepIdReferences.get(doi).isEmpty()) { + LOG.debug("Marking the termination point as in transit ref count zero {} ", doi); + markKeyAsInTransit(TerminationPoint.class, doi); + } } } } - public void clearLogicalSwitchRefs(InstanceIdentifier logicalSwitchKey) { - Map, RemoteMcastMacs> mcasts = logicalSwitchVsMcasts.get(logicalSwitchKey); + public void clearLogicalSwitchRefs(DataObjectIdentifier logicalSwitchKey) { + var mcasts = logicalSwitchVsMcasts.get(logicalSwitchKey); if (mcasts != null) { mcasts.entrySet().forEach((entry) -> removeRemoteMcast(logicalSwitchKey, entry.getKey())); } - Map, RemoteUcastMacs> ucasts = logicalSwitchVsUcasts.get(logicalSwitchKey); + var ucasts = logicalSwitchVsUcasts.get(logicalSwitchKey); if (ucasts != null) { ucasts.entrySet().forEach((entry) -> removeRemoteUcast(logicalSwitchKey, entry.getKey())); } markKeyAsInTransit(LogicalSwitches.class, logicalSwitchKey); } - public void updateRemoteMcast(InstanceIdentifier lsIid, - InstanceIdentifier mcastIid, - RemoteMcastMacs mac) { + public void updateRemoteMcast(DataObjectIdentifier lsIid, + DataObjectIdentifier mcastIid, RemoteMcastMacs mac) { logicalSwitchVsMcasts.computeIfAbsent(lsIid, (lsKey) -> new ConcurrentHashMap<>()); logicalSwitchVsMcasts.get(lsIid).put(mcastIid, mac); if (mac.getLocatorSet() != null) { @@ -427,16 +418,15 @@ public class HwvtepDeviceInfo { } } - public void updateRemoteUcast(InstanceIdentifier lsIid, - InstanceIdentifier ucastIid, - RemoteUcastMacs mac) { + public void updateRemoteUcast(DataObjectIdentifier lsIid, + DataObjectIdentifier ucastIid, RemoteUcastMacs mac) { logicalSwitchVsUcasts.computeIfAbsent(lsIid, (lsKey) -> new ConcurrentHashMap<>()); logicalSwitchVsUcasts.get(lsIid).put(ucastIid, mac); incRefCount(ucastIid, mac.getLocatorRef().getValue()); } - public void removeRemoteMcast(InstanceIdentifier lsIid, - InstanceIdentifier mcastIid) { + public void removeRemoteMcast(DataObjectIdentifier lsIid, + DataObjectIdentifier mcastIid) { if (!logicalSwitchVsMcasts.containsKey(lsIid)) { return; } @@ -447,8 +437,8 @@ public class HwvtepDeviceInfo { markKeyAsInTransit(RemoteMcastMacs.class, mcastIid); } - public void removeRemoteUcast(InstanceIdentifier lsIid, - InstanceIdentifier ucastIid) { + public void removeRemoteUcast(DataObjectIdentifier lsIid, + DataObjectIdentifier ucastIid) { if (!logicalSwitchVsUcasts.containsKey(lsIid)) { return; } @@ -463,7 +453,7 @@ public class HwvtepDeviceInfo { return connectionInstance; } - public void setConfigKeyVsData(Map>, Map>, Map> configKeyVsData) { this.configKeyVsData = configKeyVsData; } @@ -484,7 +474,7 @@ public class HwvtepDeviceInfo { deviceUpdateHistory.addToHistory(transactionType, object); } - public Map>, Map> getOperData() { + public Map>, Map> getOperData() { return Collections.unmodifiableMap(opKeyVsData); } @@ -492,16 +482,16 @@ public class HwvtepDeviceInfo { return Collections.unmodifiableMap(uuidVsData); } - public void putKeyInDependencyQueue(InstanceIdentifier iid) { + public void putKeyInDependencyQueue(DataObjectIdentifier iid) { iidInQueueCount.putIfAbsent(iid, new AtomicInteger(0)); iidInQueueCount.get(iid).incrementAndGet(); } - public void clearKeyFromDependencyQueue(InstanceIdentifier iid) { + public void clearKeyFromDependencyQueue(DataObjectIdentifier iid) { iidInQueueCount.remove(iid); } - public boolean isKeyInDependencyQueue(InstanceIdentifier iid) { + public boolean isKeyInDependencyQueue(DataObjectIdentifier iid) { return iidInQueueCount.containsKey(iid); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperGlobalListener.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperGlobalListener.java index 6e0da572c..360cd44b9 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperGlobalListener.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperGlobalListener.java @@ -19,7 +19,6 @@ import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.DataObjectModification; import org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType; import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; -import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.ovsdb.utils.mdsal.utils.Scheduler; @@ -29,24 +28,27 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; +import org.opendaylight.yangtools.binding.DataObjectReference; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public final class HwvtepOperGlobalListener implements DataTreeChangeListener, AutoCloseable { - private static final Logger LOG = LoggerFactory.getLogger(HwvtepOperGlobalListener.class); - private static final Map, ConnectionInfo> NODE_CONNECTION_INFO = new ConcurrentHashMap<>(); - private static final Map, ScheduledFuture> TIMEOUT_FTS = new ConcurrentHashMap<>(); + + // FIXME: these should not be static + private static final Map, ConnectionInfo> NODE_CONNECTION_INFO = + new ConcurrentHashMap<>(); + private static final Map, ScheduledFuture> TIMEOUT_FTS = + new ConcurrentHashMap<>(); + private static final Map, List>> NODE_DELET_WAITING_JOBS = + new ConcurrentHashMap<>(); + private static final Map, Node> CONNECTED_NODES = new ConcurrentHashMap<>(); private Registration registration; private final HwvtepConnectionManager hcm; private final DataBroker db; - private static final Map, List>> NODE_DELET_WAITING_JOBS - = new ConcurrentHashMap<>(); - private static final Map, Node> CONNECTED_NODES = new ConcurrentHashMap<>(); - HwvtepOperGlobalListener(final DataBroker db, HwvtepConnectionManager hcm) { LOG.info("Registering HwvtepOperGlobalListener"); @@ -56,10 +58,7 @@ public final class HwvtepOperGlobalListener implements DataTreeChangeListener treeId = - DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, getWildcardPath()); - - registration = db.registerTreeChangeListener(treeId, this); + registration = db.registerTreeChangeListener(LogicalDatastoreType.OPERATIONAL, getWildcardPath(), this); } @Override @@ -82,7 +81,7 @@ public final class HwvtepOperGlobalListener implements DataTreeChangeListener iid, Runnable job) { + public static void runAfterTimeoutIfNodeNotCreated(DataObjectIdentifier iid, Runnable job) { ScheduledFuture ft = TIMEOUT_FTS.get(iid); if (ft != null) { ft.cancel(false); @@ -96,7 +95,7 @@ public final class HwvtepOperGlobalListener implements DataTreeChangeListener iid, Callable job) throws Exception { + public void runAfterNodeDeleted(DataObjectIdentifier iid, Callable job) throws Exception { synchronized (HwvtepOperGlobalListener.class) { if (NODE_DELET_WAITING_JOBS.containsKey(iid)) { LOG.error("Node present in the cache {} adding to delete queue", iid); @@ -114,7 +113,7 @@ public final class HwvtepOperGlobalListener implements DataTreeChangeListener iid) { + private synchronized void runPendingJobs(DataObjectIdentifier iid) { List> jobs = NODE_DELET_WAITING_JOBS.remove(iid); if (jobs != null && !jobs.isEmpty()) { jobs.forEach(job -> { @@ -131,7 +130,7 @@ public final class HwvtepOperGlobalListener implements DataTreeChangeListener> changes) { changes.forEach(change -> { - InstanceIdentifier key = change.getRootPath().path(); + DataObjectIdentifier key = change.path(); DataObjectModification mod = change.getRootNode(); Node node = getCreated(mod); if (node == null) { @@ -159,7 +158,7 @@ public final class HwvtepOperGlobalListener implements DataTreeChangeListener> changes) { changes.forEach(change -> { - InstanceIdentifier key = change.getRootPath().path(); + DataObjectIdentifier key = change.path(); DataObjectModification mod = change.getRootNode(); Node node = getUpdated(mod); if (node != null) { @@ -168,13 +167,13 @@ public final class HwvtepOperGlobalListener implements DataTreeChangeListener key) { + public static Node getNode(final DataObjectIdentifier key) { return CONNECTED_NODES.get(key); } private void disconnect(List> changes) { changes.forEach(change -> { - InstanceIdentifier key = change.getRootPath().path(); + DataObjectIdentifier key = change.path(); DataObjectModification mod = change.getRootNode(); Node node = getRemoved(mod); if (node != null) { @@ -187,19 +186,18 @@ public final class HwvtepOperGlobalListener implements DataTreeChangeListener iid) { - return iid.firstKeyOf(Node.class).getNodeId().getValue(); + private static String getNodeId(DataObjectIdentifier iid) { + return iid.getFirstKeyOf(Node.class).getNodeId().getValue(); } - public void scheduleOldConnectionNodeDelete(InstanceIdentifier iid) { + public void scheduleOldConnectionNodeDelete(DataObjectIdentifier iid) { ConnectionInfo oldConnectionInfo = getNodeConnectionInfo(iid); HwvtepSouthboundUtil.schedule(() -> { deleteTheNodeOfOldConnection(iid, oldConnectionInfo); }, HwvtepSouthboundConstants.STALE_HWVTEP_CLEANUP_DELAY_SECS, TimeUnit.SECONDS); } - private void deleteTheNodeOfOldConnection(InstanceIdentifier iid, - ConnectionInfo oldConnectionInfo) { + private void deleteTheNodeOfOldConnection(DataObjectIdentifier iid, ConnectionInfo oldConnectionInfo) { if (oldConnectionInfo == null) { return; } @@ -211,7 +209,7 @@ public final class HwvtepOperGlobalListener implements DataTreeChangeListener iid) { + private static ConnectionInfo getNodeConnectionInfo(DataObjectIdentifier iid) { return NODE_CONNECTION_INFO.get(iid); } @@ -229,10 +227,11 @@ public final class HwvtepOperGlobalListener implements DataTreeChangeListener getWildcardPath() { - return InstanceIdentifier.create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) - .child(Node.class); + private static DataObjectReference getWildcardPath() { + return DataObjectReference.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) + .child(Node.class) + .build(); } private static Node getUpdated(DataObjectModification mod) { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundMapper.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundMapper.java index 10b8b99a0..f57c09c16 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundMapper.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundMapper.java @@ -14,6 +14,7 @@ import java.net.Inet4Address; import java.net.Inet6Address; import java.net.InetAddress; import java.net.UnknownHostException; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.ovsdb.lib.OvsdbClient; import org.opendaylight.ovsdb.schema.hardwarevtep.ACL; import org.opendaylight.ovsdb.schema.hardwarevtep.Global; @@ -51,7 +52,9 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier.WithKey; +import org.opendaylight.yangtools.binding.DataObjectReference; import org.opendaylight.yangtools.yang.common.Uint16; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,109 +65,110 @@ public final class HwvtepSouthboundMapper { private HwvtepSouthboundMapper() { } - public static InstanceIdentifier createInstanceIdentifier(final NodeId nodeId) { - return InstanceIdentifier - .create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) - .child(Node.class,new NodeKey(nodeId)); + public static WithKey createInstanceIdentifier(final NodeId nodeId) { + return DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) + .child(Node.class,new NodeKey(nodeId)) + .build(); } - public static InstanceIdentifier createInstanceIdentifier(final OvsdbClient client) { + public static WithKey createInstanceIdentifier(final OvsdbClient client) { return createInstanceIdentifier(createIpAddress(client.getConnectionInfo().getRemoteAddress()), new PortNumber(Uint16.valueOf(client.getConnectionInfo().getRemotePort()))); } - private static InstanceIdentifier createInstanceIdentifier(final IpAddress ip, final PortNumber port) { + private static WithKey createInstanceIdentifier(final IpAddress ip, final PortNumber port) { String uriString = HwvtepSouthboundConstants.HWVTEP_URI_PREFIX + "://" + ip.stringValue() + ":" + port.getValue(); Uri uri = new Uri(uriString); NodeId nodeId = new NodeId(uri); - InstanceIdentifier path = InstanceIdentifier.create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) - .child(Node.class,new NodeKey(nodeId)); + var path = DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) + .child(Node.class,new NodeKey(nodeId)) + .build(); LOG.debug("Created ovsdb path: {}",path); return path; } - public static InstanceIdentifier createInstanceIdentifier(final HwvtepConnectionInstance client, + public static WithKey createInstanceIdentifier(final HwvtepConnectionInstance client, final PhysicalSwitch physicalSwitch) { //TODO: Clean this up return createInstanceIdentifier(client, new HwvtepNodeName(physicalSwitch.getName())); } - public static InstanceIdentifier createInstanceIdentifier(final HwvtepConnectionInstance client, + public static WithKey createInstanceIdentifier(final HwvtepConnectionInstance client, final HwvtepNodeName psName) { - NodeKey nodeKey = new NodeKey(createManagedNodeId(client, psName)); - return InstanceIdentifier.builder(NetworkTopology.class) - .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) - .child(Node.class, nodeKey).build(); - } - - public static InstanceIdentifier createInstanceIdentifier(final HwvtepConnectionInstance client, - final LogicalSwitch logicalSwitch) { - InstanceIdentifier iid = null; - iid = InstanceIdentifier.builder(NetworkTopology.class) - .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) - .child(Node.class, client.getNodeKey()).augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitch.getName()))) - .build(); + return DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) + .child(Node.class, new NodeKey(createManagedNodeId(client, psName))) + .build(); + } + + public static WithKey createInstanceIdentifier( + final HwvtepConnectionInstance client, final LogicalSwitch logicalSwitch) { + return DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) + .child(Node.class, client.getNodeKey()).augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitch.getName()))) + .build(); /* TODO: Will this work instead to make it simpler? iid = client.getInstanceIdentifier().builder() .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName(lSwitch.getName())))).build() */ - return iid; } - public static InstanceIdentifier createInstanceIdentifier(final HwvtepConnectionInstance client, + public static @NonNull WithKey createInstanceIdentifier(final HwvtepConnectionInstance client, final ACL acl) { - return InstanceIdentifier.builder(NetworkTopology.class) - .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) - .child(Node.class, client.getNodeKey()).augmentation(HwvtepGlobalAugmentation.class) - .child(Acls.class, new AclsKey(acl.getAclName())) - .build(); + return DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) + .child(Node.class, client.getNodeKey()).augmentation(HwvtepGlobalAugmentation.class) + .child(Acls.class, new AclsKey(acl.getAclName())) + .build(); } - public static InstanceIdentifier createInstanceIdentifier(final InstanceIdentifier nodeIid, - final InstanceIdentifier localTpIid, - final InstanceIdentifier remoteTpIid) { - - TunnelsKey tunnelsKey = new TunnelsKey(new HwvtepPhysicalLocatorRef(localTpIid.toIdentifier()), - new HwvtepPhysicalLocatorRef(remoteTpIid.toIdentifier())); - InstanceIdentifier tunnelInstanceId = nodeIid.builder().augmentation(PhysicalSwitchAugmentation.class) - .child(Tunnels.class, tunnelsKey).build(); - return tunnelInstanceId; + public static @NonNull WithKey createInstanceIdentifier( + final DataObjectIdentifier nodeIid, final DataObjectIdentifier localTpIid, + final DataObjectIdentifier remoteTpIid) { + return nodeIid.toBuilder() + .augmentation(PhysicalSwitchAugmentation.class) + .child(Tunnels.class, new TunnelsKey(new HwvtepPhysicalLocatorRef(localTpIid), + new HwvtepPhysicalLocatorRef(remoteTpIid))) + .build(); } - public static InstanceIdentifier createInstanceIdentifier(final InstanceIdentifier nodeIid, - final PhysicalLocator physicalLocator) { - return nodeIid.child(TerminationPoint.class, getTerminationPointKey(physicalLocator)); + public static @NonNull WithKey createInstanceIdentifier( + final DataObjectIdentifier nodeIid, final PhysicalLocator physicalLocator) { + return nodeIid.toBuilder() + .child(TerminationPoint.class, getTerminationPointKey(physicalLocator)) + .build(); } - public static InstanceIdentifier createInstanceIdentifier(final HwvtepConnectionInstance client, - final InstanceIdentifier tpPath, final VlanBindings vlanBindings) { - return tpPath.augmentation(HwvtepPhysicalPortAugmentation.class).child(VlanBindings.class, - new VlanBindingsKey(vlanBindings.key())); + public static @NonNull WithKey createInstanceIdentifier( + final HwvtepConnectionInstance client, final DataObjectIdentifier tpPath, + final VlanBindings vlanBindings) { + return tpPath.toBuilder() + .augmentation(HwvtepPhysicalPortAugmentation.class) + .child(VlanBindings.class, new VlanBindingsKey(vlanBindings.key())) + .build(); } - public static InstanceIdentifier createInstanceIdentifier() { - InstanceIdentifier path = InstanceIdentifier - .create(NetworkTopology.class) + public static DataObjectReference createInstanceIdentifier() { + return DataObjectReference + .builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) - .child(Node.class); - return path; + .child(Node.class) + .build(); } - public static NodeId createManagedNodeId(final InstanceIdentifier iid) { - NodeKey nodeKey = iid.firstKeyOf(Node.class); - return nodeKey.getNodeId(); + public static NodeId createManagedNodeId(final DataObjectIdentifier iid) { + return iid.getFirstKeyOf(Node.class).getNodeId(); } public static NodeId createManagedNodeId(final HwvtepConnectionInstance client, final HwvtepNodeName psName) { String nodeString = client.getNodeKey().getNodeId().getValue() + "/" + HwvtepSouthboundConstants.PSWITCH_URI_PREFIX + "/" + psName.getValue(); - NodeId nodeId = new NodeId(new Uri(nodeString)); - return nodeId; + return new NodeId(new Uri(nodeString)); } public static IpAddress createIpAddress(final InetAddress address) { @@ -212,16 +216,13 @@ public final class HwvtepSouthboundMapper { } } - public static InstanceIdentifier getInstanceIdentifier(final Global global) { + public static @NonNull WithKey getInstanceIdentifier(final Global global) { String nodeString = HwvtepSouthboundConstants.HWVTEP_URI_PREFIX + "://" + HwvtepSouthboundConstants.UUID + "/" + global.getUuid().toString(); - NodeId nodeId = new NodeId(new Uri(nodeString)); - NodeKey nodeKey = new NodeKey(nodeId); - TopologyKey topoKey = new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID); - return InstanceIdentifier.builder(NetworkTopology.class) - .child(Topology.class, topoKey) - .child(Node.class, nodeKey) - .build(); + return DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) + .child(Node.class, new NodeKey(new NodeId(new Uri(nodeString)))) + .build(); } public static EncapsulationTypeBase createEncapsulationType(final String type) { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundProvider.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundProvider.java index adb92d8bc..73a6b92f5 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundProvider.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundProvider.java @@ -42,7 +42,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.data.codec.api.BindingNormalizedNodeSerializer; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Deactivate; @@ -99,10 +98,10 @@ public final class HwvtepSouthboundProvider LOG.warn("HWVTEP Southbound Provider instance entity {} was already " + "registered for ownership", instanceEntity, e); } - InstanceIdentifier path = InstanceIdentifier - .create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)); - DataTreeIdentifier treeId = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, path); + DataTreeIdentifier treeId = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, + DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) + .build()); LOG.trace("Registering listener for path {}", treeId); operTopologyRegistration = dataBroker.registerTreeChangeListener(treeId, this); @@ -219,17 +218,17 @@ public final class HwvtepSouthboundProvider } @Override - public Map, HwvtepDeviceInfo> getAllConnectedInstances() { + public Map, HwvtepDeviceInfo> getAllConnectedInstances() { return cm.allConnectedInstances(); } @Override - public Map, TransactionHistory> getControllerTxHistory() { + public Map, TransactionHistory> getControllerTxHistory() { return cm.controllerTxHistory(); } @Override - public Map, TransactionHistory> getDeviceUpdateHistory() { + public Map, TransactionHistory> getDeviceUpdateHistory() { return cm.deviceUpdateHistory(); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundProviderInfo.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundProviderInfo.java index 2d1d6f85b..6b2ad66fa 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundProviderInfo.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundProviderInfo.java @@ -12,14 +12,14 @@ import java.util.Map; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.ovsdb.utils.mdsal.utils.TransactionHistory; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; @Beta public interface HwvtepSouthboundProviderInfo { - @NonNull Map, HwvtepDeviceInfo> getAllConnectedInstances(); + @NonNull Map, HwvtepDeviceInfo> getAllConnectedInstances(); - @NonNull Map, TransactionHistory> getControllerTxHistory(); + @NonNull Map, TransactionHistory> getControllerTxHistory(); - @NonNull Map, TransactionHistory> getDeviceUpdateHistory(); + @NonNull Map, TransactionHistory> getDeviceUpdateHistory(); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundUtil.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundUtil.java index 0d8ef52fd..f46d4bb72 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundUtil.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundUtil.java @@ -87,9 +87,9 @@ public final class HwvtepSouthboundUtil { public static Optional readNode( DataBroker db, - LogicalDatastoreType logicalDatastoreType, final InstanceIdentifier connectionIid) { + LogicalDatastoreType logicalDatastoreType, final DataObjectIdentifier connectionIid) { if (logicalDatastoreType == LogicalDatastoreType.OPERATIONAL) { - Node node = HwvtepOperGlobalListener.getNode((InstanceIdentifier) connectionIid); + Node node = HwvtepOperGlobalListener.getNode((DataObjectIdentifier) connectionIid); if (node != null) { return Optional.of((D)node); } else { @@ -97,7 +97,7 @@ public final class HwvtepSouthboundUtil { } } try (ReadTransaction transaction = db.newReadOnlyTransaction()) { - return transaction.read(logicalDatastoreType, connectionIid.toIdentifier()).get(); + return transaction.read(logicalDatastoreType, connectionIid).get(); } catch (InterruptedException | ExecutionException e) { LOG.error("Read failed from datastore for Node : {}",connectionIid,e); throw new IllegalStateException(e); @@ -106,9 +106,9 @@ public final class HwvtepSouthboundUtil { public static Optional readNode( ReadTransaction transaction, - LogicalDatastoreType logicalDatastoreType, final InstanceIdentifier connectionIid) { + LogicalDatastoreType logicalDatastoreType, final DataObjectIdentifier connectionIid) { if (logicalDatastoreType == LogicalDatastoreType.OPERATIONAL) { - Node node = HwvtepOperGlobalListener.getNode((InstanceIdentifier) connectionIid); + Node node = HwvtepOperGlobalListener.getNode((DataObjectIdentifier) connectionIid); if (node != null) { return Optional.of((D)node); } else { @@ -116,7 +116,7 @@ public final class HwvtepSouthboundUtil { } } try { - return transaction.read(logicalDatastoreType, connectionIid.toIdentifier()).get(); + return transaction.read(logicalDatastoreType, connectionIid).get(); } catch (InterruptedException | ExecutionException e) { LOG.error("Read failed from datastore for Node : {}",connectionIid,e); throw new IllegalStateException(e); @@ -124,15 +124,15 @@ public final class HwvtepSouthboundUtil { } public static Optional readNode( - ReadWriteTransaction transaction, final InstanceIdentifier connectionIid) { + ReadWriteTransaction transaction, final DataObjectIdentifier connectionIid) { return readNode(transaction, LogicalDatastoreType.OPERATIONAL, connectionIid); } public static Optional readNode(ReadWriteTransaction transaction, LogicalDatastoreType logicalDatastoreType, - InstanceIdentifier connectionIid) { + DataObjectIdentifier connectionIid) { if (logicalDatastoreType == LogicalDatastoreType.OPERATIONAL) { - Node node = HwvtepOperGlobalListener.getNode((InstanceIdentifier) connectionIid); + Node node = HwvtepOperGlobalListener.getNode((DataObjectIdentifier) connectionIid); if (node != null) { return Optional.of((D)node); } else { @@ -140,7 +140,7 @@ public final class HwvtepSouthboundUtil { } } try { - return transaction.read(logicalDatastoreType, connectionIid.toIdentifier()).get(); + return transaction.read(logicalDatastoreType, connectionIid).get(); } catch (InterruptedException | ExecutionException e) { LOG.error("Read failed from datastore for Node : {}",connectionIid,e); throw new IllegalStateException(e); @@ -167,9 +167,8 @@ public final class HwvtepSouthboundUtil { public static Optional getManagingNode(DataBroker db, HwvtepGlobalRef ref) { try { @SuppressWarnings("unchecked") - // Note: erasure makes this safe in combination with the typecheck - // below - InstanceIdentifier path = ((DataObjectIdentifier) ref.getValue()).toLegacy(); + // Note: erasure makes this safe in combination with the typecheck below + DataObjectIdentifier path = (DataObjectIdentifier) ref.getValue(); Optional optional = new MdsalUtils(db).readOptional(LogicalDatastoreType.OPERATIONAL, path); if (optional != null && optional.isPresent()) { @@ -259,15 +258,17 @@ public final class HwvtepSouthboundUtil { return map == null || map.isEmpty(); } - public static InstanceIdentifier getGlobalNodeIid(final InstanceIdentifier physicalNodeIid) { - String nodeId = physicalNodeIid.firstKeyOf(Node.class).getNodeId().getValue(); + public static DataObjectIdentifier getGlobalNodeIid(final DataObjectIdentifier physicalNodeIid) { + String nodeId = physicalNodeIid.getFirstKeyOf(Node.class).getNodeId().getValue(); int physicalSwitchIndex = nodeId.indexOf(HwvtepSouthboundConstants.PSWITCH_URI_PREFIX); if (physicalSwitchIndex > 0) { nodeId = nodeId.substring(0, physicalSwitchIndex - 1); } else { return null; } - return physicalNodeIid.firstIdentifierOf(Topology.class).child(Node.class , new NodeKey(new NodeId(nodeId))); + return physicalNodeIid.trimTo(Topology.class).toBuilder() + .child(Node.class , new NodeKey(new NodeId(nodeId))) + .build(); } public static Integer getRemotePort(Node node) { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepTableReader.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepTableReader.java index 73121bcdc..aa1cd1f3f 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepTableReader.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepTableReader.java @@ -63,7 +63,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -147,7 +146,8 @@ public class HwvtepTableReader { } @FunctionalInterface - private interface WhereClauseGetter extends Function, List> { + private interface WhereClauseGetter + extends Function, List> { } @@ -159,10 +159,10 @@ public class HwvtepTableReader { } @Override - public List apply(final InstanceIdentifier iid) { + public List apply(final DataObjectIdentifier iid) { RemoteMcastMacsKey key = iid.firstKeyOf(RemoteMcastMacs.class); - InstanceIdentifier lsIid = - ((DataObjectIdentifier) key.getLogicalSwitchRef().getValue()).toLegacy(); + DataObjectIdentifier lsIid = + ((DataObjectIdentifier) key.getLogicalSwitchRef().getValue()); UUID lsUUID = getLsUuid(lsIid); if (lsUUID == null) { LOG.warn("Could not find uuid for ls key {}", getNodeKeyStr(lsIid)); @@ -175,16 +175,15 @@ public class HwvtepTableReader { } } - protected String getNodeKeyStr(final InstanceIdentifier iid) { - return iid.firstKeyOf(Node.class).getNodeId().getValue() + "." + getLsKeyStr(iid); + protected String getNodeKeyStr(final DataObjectIdentifier iid) { + return iid.getFirstKeyOf(Node.class).getNodeId().getValue() + "." + getLsKeyStr(iid); } - protected String getLsKeyStr(final InstanceIdentifier iid) { - return ((InstanceIdentifier)iid).firstKeyOf(LogicalSwitches.class) - .getHwvtepNodeName().getValue(); + protected String getLsKeyStr(final DataObjectIdentifier iid) { + return iid.getFirstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); } - public UUID getLsUuid(final InstanceIdentifier lsIid) { + public UUID getLsUuid(final DataObjectIdentifier lsIid) { UUID lsUUID = connectionInstance.getDeviceInfo().getUUID(LogicalSwitches.class, lsIid); if (lsUUID == null) { Optional optional = getHwvtepTableEntryUUID(LogicalSwitches.class, lsIid, null); @@ -203,10 +202,10 @@ public class HwvtepTableReader { } @Override - public List apply(final InstanceIdentifier iid) { + public List apply(final DataObjectIdentifier iid) { RemoteUcastMacsKey key = iid.firstKeyOf(RemoteUcastMacs.class); - InstanceIdentifier lsIid = - ((DataObjectIdentifier) key.getLogicalSwitchRef().getValue()).toLegacy(); + DataObjectIdentifier lsIid = + ((DataObjectIdentifier) key.getLogicalSwitchRef().getValue()); UUID lsUUID = connectionInstance.getDeviceInfo().getUUID(LogicalSwitches.class, lsIid); if (lsUUID == null) { LOG.error("Could not find uuid for ls key {}", lsIid); @@ -228,8 +227,8 @@ public class HwvtepTableReader { } @Override - public List apply(final InstanceIdentifier iid) { - String lsName = iid.firstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); + public List apply(final DataObjectIdentifier iid) { + String lsName = iid.getFirstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); return List.of(logicalSwitch.getNameColumn().getSchema().opEqual(lsName)); } } @@ -242,8 +241,8 @@ public class HwvtepTableReader { } @Override - public List apply(final InstanceIdentifier iid) { - String locatorIp = iid.firstKeyOf(TerminationPoint.class).getTpId().getValue(); + public List apply(final DataObjectIdentifier iid) { + String locatorIp = iid.getFirstKeyOf(TerminationPoint.class).getTpId().getValue(); locatorIp = locatorIp.substring(locatorIp.indexOf(":") + 1); LOG.info("Locator ip to look for {}", locatorIp); return List.of(locatorTable.getDstIpColumn().getSchema().opEqual(locatorIp)); @@ -252,7 +251,7 @@ public class HwvtepTableReader { @SuppressWarnings("checkstyle:IllegalCatch") public Optional getHwvtepTableEntryUUID(final Class> cls, - final InstanceIdentifier iid, + final DataObjectIdentifier iid, final UUID existingUUID) { final TypedDatabaseSchema dbSchema; try { @@ -386,7 +385,7 @@ public class HwvtepTableReader { .getHwvtepTableEntries(TerminationPoint.class); for (TypedBaseTable row : physicalLocators) { PhysicalLocator physicalLocator = (PhysicalLocator)row; - InstanceIdentifier tpPath = + DataObjectIdentifier tpPath = HwvtepSouthboundMapper.createInstanceIdentifier(connectionInstance.getInstanceIdentifier(), physicalLocator); connectionInstance.getDeviceInfo().updateDeviceOperData( @@ -399,9 +398,10 @@ public class HwvtepTableReader { .getHwvtepTableEntries(LogicalSwitches.class); for (TypedBaseTable row : logicalSwitches) { LogicalSwitch logicalSwitch = (LogicalSwitch)row; - InstanceIdentifier switchIid = connectionInstance.getInstanceIdentifier() + var switchIid = connectionInstance.getInstanceIdentifier().toBuilder() .augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitch.getName()))); + .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitch.getName()))) + .build(); connectionInstance.getDeviceInfo().updateDeviceOperData(LogicalSwitches.class, switchIid, logicalSwitch.getUuid(), logicalSwitch); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/TransactionHistoryCmd.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/TransactionHistoryCmd.java index d216459b9..082ed840c 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/TransactionHistoryCmd.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/TransactionHistoryCmd.java @@ -12,7 +12,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import org.apache.karaf.shell.api.action.Action; @@ -23,7 +22,7 @@ import org.apache.karaf.shell.api.action.lifecycle.Service; import org.opendaylight.ovsdb.utils.mdsal.utils.TransactionHistory; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; @Service @Command(scope = "hwvtep", name = "txlog", description = "prints hwvtep tx log") @@ -41,13 +40,13 @@ public class TransactionHistoryCmd implements Action { public Object execute() { final PrintStream out = System.out; - Map, TransactionHistory> controllerTxLogs = hwvtepProvider.getControllerTxHistory(); - Map, TransactionHistory> deviceUpdateLogs = hwvtepProvider.getDeviceUpdateHistory(); + Map, TransactionHistory> controllerTxLogs = hwvtepProvider.getControllerTxHistory(); + Map, TransactionHistory> deviceUpdateLogs = hwvtepProvider.getDeviceUpdateHistory(); if (nodeid != null) { printLogs(out, controllerTxLogs, deviceUpdateLogs, HwvtepSouthboundMapper.createInstanceIdentifier(new NodeId(nodeid))); } else { - Map, TransactionHistory> txlogs + Map, TransactionHistory> txlogs = controllerTxLogs.isEmpty() ? deviceUpdateLogs : controllerTxLogs; txlogs.keySet().forEach(iid -> printLogs(out, controllerTxLogs, deviceUpdateLogs, iid)); out.println("Device tx logs size " + deviceUpdateLogs.size()); @@ -56,17 +55,17 @@ public class TransactionHistoryCmd implements Action { } private static void printLogs(final PrintStream out, - final Map, TransactionHistory> controllerTxLogs, - final Map, TransactionHistory> deviceUpdateLogs, - final InstanceIdentifier iid) { + final Map, TransactionHistory> controllerTxLogs, + final Map, TransactionHistory> deviceUpdateLogs, + final DataObjectIdentifier iid) { out.println(SEPERATOR + " START " + SEPERATOR); List controllerTxLog = controllerTxLogs.get(iid).getElements() - .stream().map(ele -> new HwvtepTransactionLogElement(ele, false)).collect(Collectors.toList()); + .stream().map(ele -> new HwvtepTransactionLogElement(ele, false)).toList(); List deviceUpdateLog = deviceUpdateLogs.get(iid).getElements() - .stream().map(ele -> new HwvtepTransactionLogElement(ele, true)).collect(Collectors.toList()); + .stream().map(ele -> new HwvtepTransactionLogElement(ele, true)).toList(); List> allLogs = mergeLogsByDate(controllerTxLog, deviceUpdateLog); out.print("Printing for Node : "); - out.println(iid.firstKeyOf(Node.class).getNodeId().getValue()); + out.println(iid.getFirstKeyOf(Node.class).getNodeId().getValue()); printLogs(out, allLogs); out.println(SEPERATOR + " END " + SEPERATOR); out.println(); @@ -89,7 +88,7 @@ public class TransactionHistoryCmd implements Action { final List logs1, final List logs2) { - ArrayList> result = new ArrayList(); + ArrayList> result = new ArrayList<>(); int firstIdx = 0; int secondIdx = 0; int firstSize = logs1.size(); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/cli/HwvtepCacheDisplayCmd.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/cli/HwvtepCacheDisplayCmd.java index 984fefc34..aba4a3a49 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/cli/HwvtepCacheDisplayCmd.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/cli/HwvtepCacheDisplayCmd.java @@ -33,7 +33,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @Service @Command(scope = "hwvtep", name = "cache", description = "Disply hwvtep cache") @@ -55,8 +54,7 @@ public class HwvtepCacheDisplayCmd implements Action { @Override @SuppressWarnings("checkstyle:RegexpSinglelineJava") public Object execute() throws Exception { - Map, HwvtepDeviceInfo> allConnectedInstances = - hwvtepSouthboundProvider.getAllConnectedInstances(); + var allConnectedInstances = hwvtepSouthboundProvider.getAllConnectedInstances(); if (nodeid == null) { allConnectedInstances.entrySet().forEach(entry -> { System.out.println(SEPERATOR + " START " + SEPERATOR); @@ -73,21 +71,18 @@ public class HwvtepCacheDisplayCmd implements Action { return null; } - private InstanceIdentifier getIid() { - NodeId nodeId = new NodeId(new Uri(nodeid)); - NodeKey nodeKey = new NodeKey(nodeId); - TopologyKey topoKey = new TopologyKey(HWVTEP_TOPOLOGY_ID); - return InstanceIdentifier.builder(NetworkTopology.class) - .child(Topology.class, topoKey) - .child(Node.class, nodeKey) - .build(); + private DataObjectIdentifier getIid() { + return DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HWVTEP_TOPOLOGY_ID)) + .child(Node.class, new NodeKey(new NodeId(new Uri(nodeid)))) + .build(); } @SuppressWarnings("checkstyle:RegexpSinglelineJava") - private static void print(InstanceIdentifier iid, HwvtepDeviceInfo deviceInfo) { + private static void print(DataObjectIdentifier iid, HwvtepDeviceInfo deviceInfo) { PrintStream printStream = System.out; printStream.print("Printing for Node : "); - printStream.println(iid.firstKeyOf(Node.class).getNodeId().getValue()); + printStream.println(iid.getFirstKeyOf(Node.class).getNodeId().getValue()); printStream.println(SECTION_SEPERATOR); printStream.println("Config data"); @@ -111,13 +106,12 @@ public class HwvtepCacheDisplayCmd implements Action { }); printStream.println(SECTION_SEPERATOR); printStream.println(SECTION_SEPERATOR); - } private static void printEntry(PrintStream console, Map.Entry>, - Map> entry) { + Map> entry) { Class> cls = entry.getKey(); - Map map = entry.getValue(); + var map = entry.getValue(); String clsName = cls.getSimpleName(); console.println(clsName + " - "); map.values().forEach(deviceData -> { @@ -151,12 +145,12 @@ public class HwvtepCacheDisplayCmd implements Action { } private static void printLogicalSwitches(PrintStream console, HwvtepDeviceInfo.DeviceData deviceData) { - InstanceIdentifier ls = deviceData.getKey(); + var ls = deviceData.getKey(); console.print(ls.firstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue()); } private static void printRemoteMcasts(PrintStream console, HwvtepDeviceInfo.DeviceData deviceData) { - InstanceIdentifier remoteMcastMacsIid = deviceData.getKey(); + var remoteMcastMacsIid = deviceData.getKey(); String macAddress = remoteMcastMacsIid.firstKeyOf(RemoteMcastMacs.class).getMacEntryKey().getValue(); String logicalSwitchRef = getLogicalSwitchRef(remoteMcastMacsIid.firstKeyOf(RemoteMcastMacs.class).getLogicalSwitchRef()); @@ -166,7 +160,7 @@ public class HwvtepCacheDisplayCmd implements Action { } private static void printRemoteUcasts(PrintStream console, HwvtepDeviceInfo.DeviceData deviceData) { - InstanceIdentifier remoteUcastMacsIid = deviceData.getKey(); + var remoteUcastMacsIid = deviceData.getKey(); String macAddress = remoteUcastMacsIid.firstKeyOf(RemoteUcastMacs.class).getMacEntryKey().getValue(); String logicalSwitchRef = getLogicalSwitchRef(remoteUcastMacsIid.firstKeyOf(RemoteUcastMacs.class).getLogicalSwitchRef()); @@ -177,11 +171,11 @@ public class HwvtepCacheDisplayCmd implements Action { private static String getLogicalSwitchRef(HwvtepLogicalSwitchRef hwvtepLogicalSwitchRef) { return ((DataObjectIdentifier) hwvtepLogicalSwitchRef.getValue()) - .toLegacy().firstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); + .getFirstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); } private static void printTerminationPoint(PrintStream console, HwvtepDeviceInfo.DeviceData deviceData) { - InstanceIdentifier terminationPointIid = deviceData.getKey(); + var terminationPointIid = deviceData.getKey(); console.print(terminationPointIid.firstKeyOf(TerminationPoint.class).getTpId().getValue()); try { PhysicalPort physicalPort = (PhysicalPort) deviceData.getData(); @@ -192,7 +186,7 @@ public class HwvtepCacheDisplayCmd implements Action { } private static void printNode(PrintStream console, HwvtepDeviceInfo.DeviceData deviceData) { - InstanceIdentifier ls = deviceData.getKey(); + var ls = deviceData.getKey(); console.print(ls.firstKeyOf(Node.class).getNodeId().getValue()); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/ReconciliationTask.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/ReconciliationTask.java index 9fc3757dc..195ee7641 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/ReconciliationTask.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/ReconciliationTask.java @@ -12,7 +12,7 @@ import static java.util.Objects.requireNonNull; import org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepConnectionManager; import org.opendaylight.ovsdb.hwvtepsouthbound.reconciliation.connection.ConnectionReconciliationTask; import org.opendaylight.yangtools.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; /** * Copied from org.opendaylight.ovsdb.southbound.reconciliation.ReconciliationTask @@ -25,12 +25,11 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public abstract class ReconciliationTask implements Runnable { protected final ReconciliationManager reconciliationManager; protected final HwvtepConnectionManager connectionManager; - protected final InstanceIdentifier nodeIid; + protected final DataObjectIdentifier nodeIid; protected final DataObject configData; protected ReconciliationTask(ReconciliationManager reconciliationManager, HwvtepConnectionManager connectionManager, - InstanceIdentifier nodeIid, - DataObject configData) { + DataObjectIdentifier nodeIid, DataObject configData) { this.reconciliationManager = requireNonNull(reconciliationManager, "Reconciliation manager must not be null"); this.connectionManager = requireNonNull(connectionManager, "Connection manager must not be null"); this.nodeIid = requireNonNull(nodeIid, "Node Iid must not be null"); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/DataObjectModificationImpl.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/DataObjectModificationImpl.java index e286b7faa..c61585495 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/DataObjectModificationImpl.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/DataObjectModificationImpl.java @@ -14,16 +14,16 @@ import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.mdsal.binding.api.DataObjectModification; import org.opendaylight.mdsal.binding.api.DataObjectWritten; import org.opendaylight.yangtools.binding.DataObject; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.ExactDataObjectStep; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class DataObjectModificationImpl extends DataObjectWritten { private final Collection> childNodesCache = new ArrayList<>(); - InstanceIdentifier nodeId; + DataObjectIdentifier nodeId; T newNode; T oldNode; - public DataObjectModificationImpl(final InstanceIdentifier nodeId, final T newData, final T oldData) { + public DataObjectModificationImpl(final DataObjectIdentifier nodeId, final T newData, final T oldData) { this.nodeId = nodeId; newNode = newData; oldNode = oldData; diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/DataTreeModificationImpl.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/DataTreeModificationImpl.java index f62a71eec..5c653436b 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/DataTreeModificationImpl.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/DataTreeModificationImpl.java @@ -12,14 +12,13 @@ import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class DataTreeModificationImpl implements DataTreeModification { - InstanceIdentifier nodeId; + DataObjectIdentifier nodeId; T newNode; T oldNode; - public DataTreeModificationImpl(final InstanceIdentifier nodeId, final T newNode, final T oldNode) { + public DataTreeModificationImpl(final DataObjectIdentifier nodeId, final T newNode, final T oldNode) { this.nodeId = nodeId; this.newNode = newNode; this.oldNode = oldNode; @@ -32,7 +31,7 @@ public class DataTreeModificationImpl implements DataTreeM @Override public DataObjectIdentifier path() { - return nodeId.toIdentifier(); + return nodeId; } @Override diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/GlobalConfigOperationalChangeGetter.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/GlobalConfigOperationalChangeGetter.java index ff4a5473b..1da594721 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/GlobalConfigOperationalChangeGetter.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/GlobalConfigOperationalChangeGetter.java @@ -25,14 +25,13 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public final class GlobalConfigOperationalChangeGetter { private GlobalConfigOperationalChangeGetter() { } - public static DataTreeModification getModification(final InstanceIdentifier nodeId, + public static DataTreeModification getModification(final DataObjectIdentifier nodeId, final Node configNode, final Node opNode) { NodeBuilder newNodeBuilder = getNodeBuilderFromNode(configNode); @@ -91,8 +90,8 @@ public final class GlobalConfigOperationalChangeGetter { } private static String extractHwvtepNodeName(HwvtepLogicalSwitchRef hwvtepLogicalSwitchRef) { - return ((DataObjectIdentifier) hwvtepLogicalSwitchRef.getValue()).toLegacy() - .firstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); + return ((DataObjectIdentifier) hwvtepLogicalSwitchRef.getValue()) + .getFirstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); } static Set getLogicalSwitchesToBeRemoved(final Node configNode, final Node opNode) { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/HwvtepReconciliationManager.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/HwvtepReconciliationManager.java index 5fb039428..0c94a3fe6 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/HwvtepReconciliationManager.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/HwvtepReconciliationManager.java @@ -22,7 +22,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.PhysicalSwitchAugmentation; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,8 +34,8 @@ public final class HwvtepReconciliationManager implements DataTreeChangeListener public HwvtepReconciliationManager(DataBroker db, HwvtepConnectionManager hcm) { this.hcm = hcm; - final InstanceIdentifier iid = HwvtepSouthboundMapper.createInstanceIdentifier(); - final DataTreeIdentifier treeId = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, iid); + final var iid = HwvtepSouthboundMapper.createInstanceIdentifier(); + final var treeId = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, iid); LOG.trace("Registering listener for path {}", treeId); registration = db.registerTreeChangeListener(treeId, this); } @@ -56,8 +55,8 @@ public final class HwvtepReconciliationManager implements DataTreeChangeListener private void processDisconnectedNodes(List> changes) { for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().path(); - final DataObjectModification mod = change.getRootNode(); + final var key = change.path(); + final var mod = change.getRootNode(); Node deleted = getRemoved(mod); if (deleted != null) { if (deleted.augmentation(HwvtepGlobalAugmentation.class) != null) { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/HwvtepReconciliationTask.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/HwvtepReconciliationTask.java index 132756425..af14d1e15 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/HwvtepReconciliationTask.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/HwvtepReconciliationTask.java @@ -26,7 +26,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitchesKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; public class HwvtepReconciliationTask extends ReconciliationTask { private final HwvtepConnectionInstance connectionInstance; @@ -35,7 +35,7 @@ public class HwvtepReconciliationTask extends ReconciliationTask { public HwvtepReconciliationTask(ReconciliationManager reconciliationManager, HwvtepConnectionManager connectionManager, - InstanceIdentifier nodeId, + DataObjectIdentifier nodeId, Node psNode, HwvtepConnectionInstance connectionInstance, DataBroker db) { @@ -57,8 +57,8 @@ public class HwvtepReconciliationTask extends ReconciliationTask { @Override public boolean reconcileConfiguration(HwvtepConnectionManager connectionManagerOfDevice) { - InstanceIdentifier psNodeIid = HwvtepSouthboundMapper.createInstanceIdentifier(psNode.getNodeId()); - InstanceIdentifier nodeId = (InstanceIdentifier)nodeIid; + DataObjectIdentifier psNodeIid = HwvtepSouthboundMapper.createInstanceIdentifier(psNode.getNodeId()); + DataObjectIdentifier nodeId = (DataObjectIdentifier)nodeIid; ReadTransaction tx = reconciliationManager.getDb().newReadOnlyTransaction(); Node globalConfigNode = readNode(tx, LogicalDatastoreType.CONFIGURATION, nodeId); @@ -79,9 +79,10 @@ public class HwvtepReconciliationTask extends ReconciliationTask { Map switches = augmentation.getLogicalSwitches(); if (switches != null) { for (LogicalSwitches logicalSwitches : switches.values()) { - connectionInstance.getDeviceInfo().updateConfigData(LogicalSwitches.class, - nodeId.augmentation(HwvtepGlobalAugmentation.class).child(LogicalSwitches.class, - logicalSwitches.key()), logicalSwitches); + connectionInstance.getDeviceInfo().updateConfigData(LogicalSwitches.class, nodeId.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, logicalSwitches.key()) + .build(), logicalSwitches); } } } @@ -104,7 +105,7 @@ public class HwvtepReconciliationTask extends ReconciliationTask { } private static Node readNode(ReadTransaction transaction, - LogicalDatastoreType logicalDatastoreType, InstanceIdentifier iid) { + LogicalDatastoreType logicalDatastoreType, DataObjectIdentifier iid) { return HwvtepSouthboundUtil.readNode(transaction, logicalDatastoreType, iid).orElse(null); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/SwitchConfigOperationalChangeGetter.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/SwitchConfigOperationalChangeGetter.java index 53c178aaa..ea7f022aa 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/SwitchConfigOperationalChangeGetter.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/configuration/SwitchConfigOperationalChangeGetter.java @@ -19,13 +19,13 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; public final class SwitchConfigOperationalChangeGetter { private SwitchConfigOperationalChangeGetter() { } - public static DataTreeModification getModification(final InstanceIdentifier psNodeId, + public static DataTreeModification getModification(final DataObjectIdentifier psNodeId, final Node configNode, final Node operationalNode) { NodeBuilder newNodeBuilder = getNodeBuilderFromNode(configNode); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/connection/ConnectionReconciliationTask.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/connection/ConnectionReconciliationTask.java index a22d37ff2..e5162822f 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/connection/ConnectionReconciliationTask.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/reconciliation/connection/ConnectionReconciliationTask.java @@ -17,7 +17,7 @@ import org.opendaylight.ovsdb.lib.OvsdbClient; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,7 +36,7 @@ public class ConnectionReconciliationTask extends ReconciliationTask { private final AtomicInteger connectionAttempt = new AtomicInteger(0); public ConnectionReconciliationTask(ReconciliationManager reconciliationManager, HwvtepConnectionManager - connectionManager, InstanceIdentifier nodeIid, DataObject configData) { + connectionManager, DataObjectIdentifier nodeIid, DataObject configData) { super(reconciliationManager, connectionManager, nodeIid, configData); } @@ -45,7 +45,7 @@ public class ConnectionReconciliationTask extends ReconciliationTask { public boolean reconcileConfiguration(HwvtepConnectionManager connectionManager) { boolean result = false; connectionAttempt.incrementAndGet(); - InstanceIdentifier nodeId = (InstanceIdentifier) nodeIid; + DataObjectIdentifier nodeId = (DataObjectIdentifier) nodeIid; HwvtepGlobalAugmentation hwvtepNode = (HwvtepGlobalAugmentation) configData; LOG.info("Retry({}) connection to Ovsdb Node {} ", connectionAttempt.get(), hwvtepNode.getConnectionInfo()); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/AbstractTransactCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/AbstractTransactCommand.java index 668d90f53..f43e85058 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/AbstractTransactCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/AbstractTransactCommand.java @@ -41,7 +41,6 @@ import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; import org.opendaylight.yangtools.binding.Key; import org.opendaylight.yangtools.binding.PropertyIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -81,21 +80,21 @@ public abstract class AbstractTransactCommand, I ext return getOperationalState().getConnectionInstance().ops(); } - void updateCurrentTxDeleteData(final Class> cls, final InstanceIdentifier key, + void updateCurrentTxDeleteData(final Class> cls, final DataObjectIdentifier key, final T data) { hwvtepOperationalState.updateCurrentTxDeleteData(cls, key); markKeyAsInTransit(cls, key); addToUpdates(key, data); } - void updateCurrentTxData(final Class> cls, final InstanceIdentifier key, + void updateCurrentTxData(final Class> cls, final DataObjectIdentifier key, final UUID uuid, final T data) { hwvtepOperationalState.updateCurrentTxData(cls, key, uuid); markKeyAsInTransit(cls, key); addToUpdates(key, data); } - void addToUpdates(final InstanceIdentifier key, final T data) { + void addToUpdates(final DataObjectIdentifier key, final T data) { T oldData = null; Type type = getClass().getGenericSuperclass(); Type classType = ((ParameterizedType) type).getActualTypeArguments()[0]; @@ -107,8 +106,8 @@ public abstract class AbstractTransactCommand, I ext void processDependencies(final UnMetDependencyGetter unMetDependencyGetter, final TransactionBuilder transaction, - final InstanceIdentifier nodeIid, - final InstanceIdentifier key, + final DataObjectIdentifier nodeIid, + final DataObjectIdentifier key, final T data, final Object... extraData) { HwvtepDeviceInfo deviceInfo = hwvtepOperationalState.getDeviceInfo(); @@ -219,14 +218,14 @@ public abstract class AbstractTransactCommand, I ext } @Override - public void doDeviceTransaction(final TransactionBuilder transaction, final InstanceIdentifier nodeIid, - final T data, final InstanceIdentifier key, final Object... extraData) { + public void doDeviceTransaction(final TransactionBuilder transaction, final DataObjectIdentifier nodeIid, + final T data, final DataObjectIdentifier key, final Object... extraData) { //tobe removed as part of refactoring patch } @Override - public void onConfigUpdate(final TransactionBuilder transaction, final InstanceIdentifier nodeIid, - final T data, final InstanceIdentifier key, final Object... extraData) { + public void onConfigUpdate(final TransactionBuilder transaction, final DataObjectIdentifier nodeIid, + final T data, final DataObjectIdentifier key, final Object... extraData) { //tobe removed as part of refactoring patch } @@ -258,12 +257,12 @@ public abstract class AbstractTransactCommand, I ext } @NonNull - protected Map, List> extractRemoved( + protected Map, List> extractRemoved( final Collection> modification, final Class class1) { - Map, List> result = new HashMap<>(); + Map, List> result = new HashMap<>(); if (modification != null && !modification.isEmpty()) { for (DataTreeModification change : modification) { - final InstanceIdentifier key = change.getRootPath().getRootIdentifier(); + final DataObjectIdentifier key = change.path(); if (!Objects.equals(hwvtepOperationalState.getConnectionInstance().getInstanceIdentifier(), key)) { continue; } @@ -282,12 +281,12 @@ public abstract class AbstractTransactCommand, I ext } @NonNull - protected Map, List> extractUpdated( + protected Map, List> extractUpdated( final Collection> modification, final Class class1) { - Map, List> result = new HashMap<>(); + Map, List> result = new HashMap<>(); if (modification != null && !modification.isEmpty()) { for (DataTreeModification change : modification) { - InstanceIdentifier key = change.getRootPath().getRootIdentifier(); + DataObjectIdentifier key = change.path(); if (!Objects.equals(hwvtepOperationalState.getConnectionInstance().getInstanceIdentifier(), key)) { continue; } @@ -311,7 +310,7 @@ public abstract class AbstractTransactCommand, I ext DataObjectModification mod = change.getRootNode(); Node updatedNode = TransactUtils.getUpdated(mod); List updatedData = getData(updatedNode); - Set deleted = getOperationalState().getDeletedKeysInCurrentTx(LogicalSwitches.class); + Set deleted = getOperationalState().getDeletedKeysInCurrentTx(LogicalSwitches.class); UnMetDependencyGetter dependencyGetter = getDependencyGetter(); if (!HwvtepSouthboundUtil.isEmpty(deleted) && !HwvtepSouthboundUtil.isEmpty(updatedData) && dependencyGetter != null) { @@ -445,7 +444,7 @@ public abstract class AbstractTransactCommand, I ext } public HwvtepDeviceInfo.DeviceData fetchDeviceData(final Class> cls, - final InstanceIdentifier key) { + final DataObjectIdentifier key) { HwvtepDeviceInfo.DeviceData deviceData = getDeviceOpData(cls, key); if (deviceData == null) { LOG.debug("Could not find data for key {}", getNodeKeyStr(key)); @@ -466,25 +465,25 @@ public abstract class AbstractTransactCommand, I ext hwvtepOperationalState.getDeviceInfo().addJobToQueue(job); } - public void markKeyAsInTransit(final Class> cls, final InstanceIdentifier key) { + public void markKeyAsInTransit(final Class> cls, final DataObjectIdentifier key) { hwvtepOperationalState.getDeviceInfo().markKeyAsInTransit(cls, key); } public HwvtepDeviceInfo.DeviceData getDeviceOpData(final Class> cls, - final InstanceIdentifier key) { + final DataObjectIdentifier key) { return getOperationalState().getDeviceInfo().getDeviceOperData(cls, key); } - public void clearConfigData(final Class> cls, final InstanceIdentifier key) { + public void clearConfigData(final Class> cls, final DataObjectIdentifier key) { hwvtepOperationalState.getDeviceInfo().clearConfigData(cls, key); } public HwvtepDeviceInfo.DeviceData getConfigData(final Class> cls, - final InstanceIdentifier key) { + final DataObjectIdentifier key) { return hwvtepOperationalState.getDeviceInfo().getConfigData(cls, key); } - public void updateConfigData(final Class> cls, final InstanceIdentifier key, + public void updateConfigData(final Class> cls, final DataObjectIdentifier key, final Object data) { hwvtepOperationalState.getDeviceInfo().updateConfigData(cls, key, data); } @@ -512,24 +511,23 @@ public abstract class AbstractTransactCommand, I ext return new HwvtepOperationalState(getConnectionInstance()); } - protected String getNodeKeyStr(final InstanceIdentifier iid) { + protected String getNodeKeyStr(final DataObjectIdentifier iid) { return getClassType().getTypeName() + "." - + iid.firstKeyOf(Node.class).getNodeId().getValue() + "." + getKeyStr(iid); + + iid.getFirstKeyOf(Node.class).getNodeId().getValue() + "." + getKeyStr(iid); } - protected String getKeyStr(final InstanceIdentifier iid) { + protected String getKeyStr(final DataObjectIdentifier iid) { return iid.toString(); } - protected String getLsKeyStr(final InstanceIdentifier iid) { - return iid.toLegacy().firstKeyOf(LogicalSwitches.class).getHwvtepNodeName() .getValue(); + protected String getLsKeyStr(final DataObjectIdentifier iid) { + return iid.getFirstKeyOf(LogicalSwitches.class).getHwvtepNodeName() .getValue(); } protected String getLsKeyStr(final BindingInstanceIdentifier iid) { - final var doi = switch (iid) { + return getLsKeyStr(switch (iid) { case DataObjectIdentifier oi -> oi; case PropertyIdentifier pi -> pi.container(); - }; - return getLsKeyStr(doi.toLegacy()); + }); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependentJob.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependentJob.java index b18070314..03f3991fd 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependentJob.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependentJob.java @@ -18,8 +18,8 @@ import org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepSouthboundConstants; import org.opendaylight.ovsdb.lib.operations.TransactionBuilder; import org.opendaylight.ovsdb.lib.schema.typed.TypedBaseTable; import org.opendaylight.yangtools.binding.DataObject; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,13 +48,13 @@ public abstract class DependentJob> { = (controllerData, deviceData) -> controllerData.getUuid() != null && deviceData.isPresent(); private final long expiryTime; - private final InstanceIdentifier key; + private final DataObjectIdentifier key; private final T data; - private final Map, List> dependencies; + private final Map, List> dependencies; private final long transactionId; - DependentJob(InstanceIdentifier key, - T data, Map, List> dependencies, + DependentJob(DataObjectIdentifier key, + T data, Map, List> dependencies, long transactionId) { this.expiryTime = System.currentTimeMillis() + HwvtepSouthboundConstants.WAITING_JOB_EXPIRY_TIME_MILLIS; this.key = key; @@ -81,7 +81,7 @@ public abstract class DependentJob> { * @return true if the dependency is met */ protected abstract boolean isDependencyMet(HwvtepDeviceInfo deviceInfo, Class cls, - InstanceIdentifier iid); + DataObjectIdentifier iid); boolean isExpired(long currentTime) { return currentTime > expiryTime; @@ -94,9 +94,9 @@ public abstract class DependentJob> { * @return true if all the dependencies are met */ boolean areDependenciesMet(HwvtepDeviceInfo deviceInfo) { - for (Entry, List> entry : dependencies.entrySet()) { + for (Entry, List> entry : dependencies.entrySet()) { Class cls = entry.getKey(); - for (InstanceIdentifier iid : entry.getValue()) { + for (DataObjectIdentifier iid : entry.getValue()) { if (!isDependencyMet(deviceInfo, cls, iid)) { return false; } @@ -105,7 +105,7 @@ public abstract class DependentJob> { return true; } - public InstanceIdentifier getKey() { + public DataObjectIdentifier getKey() { return key; } @@ -113,7 +113,7 @@ public abstract class DependentJob> { return transactionId; } - public Map, List> getDependencies() { + public Map, List> getDependencies() { return dependencies; } @@ -133,13 +133,13 @@ public abstract class DependentJob> { public abstract static class ConfigWaitingJob> extends DependentJob { - public ConfigWaitingJob(InstanceIdentifier key, T data, - Map, List> dependencies) { + public ConfigWaitingJob(DataObjectIdentifier key, T data, + Map, List> dependencies) { super(key, data, dependencies, 0); } @Override - protected boolean isDependencyMet(HwvtepDeviceInfo deviceInfo, Class cls, InstanceIdentifier iid) { + protected boolean isDependencyMet(HwvtepDeviceInfo deviceInfo, Class cls, DataObjectIdentifier iid) { return deviceInfo.isConfigDataAvailable(cls, iid); } @@ -150,14 +150,14 @@ public abstract class DependentJob> { public abstract static class OpWaitingJob> extends DependentJob { - public OpWaitingJob(InstanceIdentifier key, T data, - Map, List> dependencies, + public OpWaitingJob(DataObjectIdentifier key, T data, + Map, List> dependencies, long transactionId) { super(key, data, dependencies, transactionId); } @Override - protected boolean isDependencyMet(HwvtepDeviceInfo deviceInfo, Class cls, InstanceIdentifier iid) { + protected boolean isDependencyMet(HwvtepDeviceInfo deviceInfo, Class cls, DataObjectIdentifier iid) { boolean depenencyMet = true; HwvtepDeviceInfo.DeviceData controllerData = deviceInfo.getDeviceOperData(cls, iid); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/HwvtepOperationalState.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/HwvtepOperationalState.java index 22a2cd15b..dcbcdf2ae 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/HwvtepOperationalState.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/HwvtepOperationalState.java @@ -56,7 +56,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,14 +64,14 @@ public class HwvtepOperationalState { private static final Logger LOG = LoggerFactory.getLogger(HwvtepOperationalState.class); - private final Map, Node> operationalNodes = new HashMap<>(); + private final Map, Node> operationalNodes = new HashMap<>(); private ReadWriteTransaction transaction; - HashMap, UUID> inflightLocators = new HashMap<>(); + HashMap, UUID> inflightLocators = new HashMap<>(); private final HwvtepDeviceInfo deviceInfo; private final HwvtepConnectionInstance connectionInstance; - private final Map>, Map> currentTxUUIDs = + private final Map>, Map> currentTxUUIDs = new ConcurrentHashMap<>(); - private final Map>, Map> currentTxDeletedKeys = + private final Map>, Map> currentTxDeletedKeys = new ConcurrentHashMap<>(); /* stores the modified and deleted data for each child type of each node id @@ -80,7 +79,7 @@ public class HwvtepOperationalState { each updated/ deleted contains Map < child type, List> child type is the child of hwvtep Global augmentation */ - private Map, + private Map, Pair>, List>>, Map>, List>>>> modifiedData = new HashMap<>(); private boolean inReconciliation = false; @@ -121,7 +120,7 @@ public class HwvtepOperationalState { if (globalAugmentation != null) { if (!HwvtepSouthboundUtil.isEmptyMap(globalAugmentation.getSwitches())) { operationalNodes.put(((DataObjectIdentifier) globalAugmentation.getSwitches().values().iterator() - .next().getSwitchRef().getValue()).toLegacy(), psNode); + .next().getSwitchRef().getValue()), psNode); } } } @@ -135,11 +134,11 @@ public class HwvtepOperationalState { connectionInstance.getNodeId().getValue()); return; } - Map, Node> nodeCreateOrUpdate = + Map, Node> nodeCreateOrUpdate = TransactUtils.extractCreatedOrUpdatedOrRemoved(changes, Node.class); if (nodeCreateOrUpdate != null) { transaction = db.newReadWriteTransaction(); - for (Entry, Node> entry: nodeCreateOrUpdate.entrySet()) { + for (Entry, Node> entry: nodeCreateOrUpdate.entrySet()) { Optional readNode = new MdsalUtils(db).readOptional(LogicalDatastoreType.OPERATIONAL, entry.getKey()); //add related globalNode or physicalSwitchNode to operationalNodes map @@ -153,8 +152,8 @@ public class HwvtepOperationalState { if (hgAugmentation != null) { for (Switches pswitch : hgAugmentation.nonnullSwitches().values()) { @SuppressWarnings("unchecked") - InstanceIdentifier psNodeIid = - ((DataObjectIdentifier) pswitch.getSwitchRef().getValue()).toLegacy(); + DataObjectIdentifier psNodeIid = + ((DataObjectIdentifier) pswitch.getSwitchRef().getValue()); Optional psNode = new MdsalUtils(db).readOptional(LogicalDatastoreType.OPERATIONAL, psNodeIid); if (psNode.isPresent()) { @@ -164,8 +163,8 @@ public class HwvtepOperationalState { } if (psAugmentation != null) { @SuppressWarnings("unchecked") - InstanceIdentifier hgNodeIid = - ((DataObjectIdentifier) psAugmentation.getManagedBy().getValue()).toLegacy(); + DataObjectIdentifier hgNodeIid = + ((DataObjectIdentifier) psAugmentation.getManagedBy().getValue()); Optional hgNode = new MdsalUtils(db).readOptional( LogicalDatastoreType.OPERATIONAL, hgNodeIid); if (hgNode.isPresent()) { @@ -177,48 +176,48 @@ public class HwvtepOperationalState { } } - public Optional getGlobalNode(final InstanceIdentifier iid) { - InstanceIdentifier nodeIid = iid.firstIdentifierOf(Node.class); + public Optional getGlobalNode(final DataObjectIdentifier iid) { + DataObjectIdentifier nodeIid = iid.trimTo(Node.class); return Optional.ofNullable(operationalNodes.get(nodeIid)); } - public Optional getHwvtepGlobalAugmentation(final InstanceIdentifier iid) { + public Optional getHwvtepGlobalAugmentation(final DataObjectIdentifier iid) { return getGlobalNode(requireNonNull(iid)) .flatMap(node -> Optional.ofNullable(node.augmentation(HwvtepGlobalAugmentation.class))); } - public Optional getPhysicalSwitchAugmentation(final InstanceIdentifier iid) { + public Optional getPhysicalSwitchAugmentation(final DataObjectIdentifier iid) { return getGlobalNode(requireNonNull(iid)) .flatMap(node -> Optional.ofNullable(node.augmentation(PhysicalSwitchAugmentation.class))); } public Optional> getTerminationPointList( - final InstanceIdentifier iid) { + final DataObjectIdentifier iid) { return getGlobalNode(requireNonNull(iid)) .flatMap(node -> Optional.ofNullable(node.getTerminationPoint())); } - public Optional getLogicalSwitches(final InstanceIdentifier iid, + public Optional getLogicalSwitches(final DataObjectIdentifier iid, final LogicalSwitchesKey logicalSwitchesKey) { return getHwvtepGlobalAugmentation(requireNonNull(iid)) .flatMap(node -> Optional.ofNullable(node.nonnullLogicalSwitches().get(logicalSwitchesKey))); } - public Optional getLogicalSwitches(final InstanceIdentifier iid) { + public Optional getLogicalSwitches(final DataObjectIdentifier iid) { return new MdsalUtils(db).readOptional(LogicalDatastoreType.OPERATIONAL, iid); } - public Optional getTunnels(final InstanceIdentifier iid, final TunnelsKey tunnelsKey) { + public Optional getTunnels(final DataObjectIdentifier iid, final TunnelsKey tunnelsKey) { return getPhysicalSwitchAugmentation(requireNonNull(iid)) .flatMap(ps -> Optional.ofNullable(ps.nonnullTunnels().get(tunnelsKey))); } - public Optional getTunnels(final InstanceIdentifier iid) { + public Optional getTunnels(final DataObjectIdentifier iid) { Optional tunnels = new MdsalUtils(db).readOptional(LogicalDatastoreType.OPERATIONAL, iid); return tunnels; } - public Optional getPhysicalPortAugmentation(final InstanceIdentifier iid, + public Optional getPhysicalPortAugmentation(final DataObjectIdentifier iid, final HwvtepNodeName hwvtepNodeName) { Optional> nodeOptional = getTerminationPointList(requireNonNull(iid)); @@ -234,7 +233,7 @@ public class HwvtepOperationalState { return Optional.empty(); } - public Optional getPhysicalLocatorAugmentation(final InstanceIdentifier iid, + public Optional getPhysicalLocatorAugmentation(final DataObjectIdentifier iid, final IpAddress dstIp, final EncapsulationTypeBase encapType) { Optional> nodeOptional = getTerminationPointList(requireNonNull(iid)); @@ -252,38 +251,40 @@ public class HwvtepOperationalState { } public Optional - getPhysicalLocatorAugmentation(final InstanceIdentifier iid) { + getPhysicalLocatorAugmentation(final DataObjectIdentifier iid) { Optional optTp = new MdsalUtils(db).readOptional(LogicalDatastoreType.OPERATIONAL, iid); return optTp.flatMap(tp -> Optional.ofNullable(tp.augmentation(HwvtepPhysicalLocatorAugmentation.class))); } - public Optional getLocalMcastMacs(final InstanceIdentifier iid, final LocalMcastMacsKey key) { + public Optional getLocalMcastMacs(final DataObjectIdentifier iid, final LocalMcastMacsKey key) { return getHwvtepGlobalAugmentation(requireNonNull(iid)) .flatMap(node -> Optional.ofNullable(node.nonnullLocalMcastMacs().get(key))); } - public Optional getRemoteMcastMacs(final InstanceIdentifier iid, final RemoteMcastMacsKey key) { + public Optional getRemoteMcastMacs(final DataObjectIdentifier iid, + final RemoteMcastMacsKey key) { return getHwvtepGlobalAugmentation(requireNonNull(iid)) .flatMap(node -> Optional.ofNullable(node.nonnullRemoteMcastMacs().get(key))); } - public Optional getLocalUcastMacs(final InstanceIdentifier iid, final LocalUcastMacsKey key) { + public Optional getLocalUcastMacs(final DataObjectIdentifier iid, final LocalUcastMacsKey key) { return getHwvtepGlobalAugmentation(requireNonNull(iid)) .flatMap(node -> Optional.ofNullable(node.nonnullLocalUcastMacs().get(key))); } - public Optional getRemoteUcastMacs(final InstanceIdentifier iid, final RemoteUcastMacsKey key) { + public Optional getRemoteUcastMacs(final DataObjectIdentifier iid, + final RemoteUcastMacsKey key) { return getHwvtepGlobalAugmentation(requireNonNull(iid)) .flatMap(node -> Optional.ofNullable(node.nonnullRemoteUcastMacs().get(key))); } - public Optional getLogicalRouters(final InstanceIdentifier iid, + public Optional getLogicalRouters(final DataObjectIdentifier iid, final LogicalRoutersKey logicalRoutersKey) { return getHwvtepGlobalAugmentation(requireNonNull(iid)) .flatMap(node -> Optional.ofNullable(node.nonnullLogicalRouters().get(logicalRoutersKey))); } - public Optional getAcls(final InstanceIdentifier iid) { + public Optional getAcls(final DataObjectIdentifier iid) { return new MdsalUtils(db).readOptional(LogicalDatastoreType.OPERATIONAL, iid); } @@ -291,12 +292,12 @@ public class HwvtepOperationalState { return transaction; } - public void setPhysicalLocatorInFlight(final InstanceIdentifier iid, + public void setPhysicalLocatorInFlight(final DataObjectIdentifier iid, final UUID uuid) { inflightLocators.put(iid, uuid); } - public UUID getPhysicalLocatorInFlight(final InstanceIdentifier iid) { + public UUID getPhysicalLocatorInFlight(final DataObjectIdentifier iid) { return inflightLocators.get(iid); } @@ -308,31 +309,32 @@ public class HwvtepOperationalState { return deviceInfo; } - public void updateCurrentTxData(final Class> cls, final InstanceIdentifier key, + public void updateCurrentTxData(final Class> cls, final DataObjectIdentifier key, final UUID uuid) { HwvtepSouthboundUtil.updateData(currentTxUUIDs, cls, key, uuid); } - public void updateCurrentTxDeleteData(final Class> cls, final InstanceIdentifier key) { + public void updateCurrentTxDeleteData(final Class> cls, + final DataObjectIdentifier key) { HwvtepSouthboundUtil.updateData(currentTxDeletedKeys, cls, key, Boolean.TRUE); } - public UUID getUUIDFromCurrentTx(final Class> cls, final InstanceIdentifier key) { + public UUID getUUIDFromCurrentTx(final Class> cls, final DataObjectIdentifier key) { return HwvtepSouthboundUtil.getData(currentTxUUIDs, cls, key); } - public boolean isKeyPartOfCurrentTx(final Class> cls, final InstanceIdentifier key) { + public boolean isKeyPartOfCurrentTx(final Class> cls, final DataObjectIdentifier key) { return HwvtepSouthboundUtil.containsKey(currentTxUUIDs, cls, key); } - public Set getDeletedKeysInCurrentTx(final Class> cls) { + public Set getDeletedKeysInCurrentTx(final Class> cls) { if (currentTxDeletedKeys.containsKey(cls)) { return currentTxDeletedKeys.get(cls).keySet(); } return Collections.emptySet(); } - public List> getUpdatedData(final InstanceIdentifier key, + public List> getUpdatedData(final DataObjectIdentifier key, final Class> cls) { List> result = null; if (modifiedData.get(key) != null && modifiedData.get(key).getLeft() != null) { @@ -344,7 +346,7 @@ public class HwvtepOperationalState { return result; } - public List> getDeletedData(final InstanceIdentifier key, + public List> getDeletedData(final DataObjectIdentifier key, final Class> cls) { List> result = null; if (modifiedData.get(key) != null && modifiedData.get(key).getRight() != null) { @@ -356,7 +358,7 @@ public class HwvtepOperationalState { return result; } - public void setModifiedData(final Map, + public void setModifiedData(final Map, Pair>, List>>, Map>, List>>>> modifiedData) { this.modifiedData = modifiedData; diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalRouterRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalRouterRemoveCommand.java index 18fb2af77..4f17410b3 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalRouterRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalRouterRemoveCommand.java @@ -11,7 +11,6 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepConnectionInstance; @@ -24,7 +23,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalRouters; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalRoutersKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,10 +38,10 @@ public class LogicalRouterRemoveCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> removed = + Map, List> removed = extractRemoved(getChanges(),LogicalRouters.class); - for (Entry, List> created: removed.entrySet()) { + for (var created : removed.entrySet()) { if (!HwvtepSouthboundUtil.isEmpty(created.getValue())) { getOperationalState().getDeviceInfo().scheduleTransaction(new TransactCommand<>() { @Override @@ -72,7 +71,7 @@ public class LogicalRouterRemoveCommand } private void removeLogicalRouter(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, final List routerList) { + final DataObjectIdentifier instanceIdentifier, final List routerList) { final var op = ops(); for (LogicalRouters lrouter: routerList) { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalRouterUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalRouterUpdateCommand.java index d1433d40a..af4058cf1 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalRouterUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalRouterUpdateCommand.java @@ -11,7 +11,6 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.lib.notation.UUID; @@ -30,7 +29,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.logical.router.attributes.SwitchBindings; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,22 +43,23 @@ public class LogicalRouterUpdateCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> updateMap = + Map, List> updateMap = extractUpdated(getChanges(),LogicalRouters.class); - for (Entry, List> updated: - updateMap.entrySet()) { + for (var updated : updateMap.entrySet()) { updateLogicalRouter(transaction, updated.getKey(), updated.getValue()); } } private void updateLogicalRouter(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, final List routerList) { + final DataObjectIdentifier instanceIdentifier, final List routerList) { final var op = ops(); for (LogicalRouters lrouter: routerList) { - final InstanceIdentifier routerKey = instanceIdentifier - .augmentation(HwvtepGlobalAugmentation.class).child(LogicalRouters.class, lrouter.key()); + final var routerKey = instanceIdentifier.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalRouters.class, lrouter.key()) + .build(); LOG.debug("Creating logical router named: {}", lrouter.getHwvtepNodeName()); final Optional operationalRouterOptional = @@ -119,8 +118,8 @@ public class LogicalRouterUpdateCommand Map bindingMap = new HashMap<>(); for (SwitchBindings switchBinding : switchBindings) { @SuppressWarnings("unchecked") - InstanceIdentifier lswitchIid = - ((DataObjectIdentifier) switchBinding.getLogicalSwitchRef().getValue()).toLegacy(); + DataObjectIdentifier lswitchIid = + (DataObjectIdentifier) switchBinding.getLogicalSwitchRef().getValue(); Optional operationalSwitchOptional = getOperationalState().getLogicalSwitches(lswitchIid); if (operationalSwitchOptional.isPresent()) { @@ -141,8 +140,7 @@ public class LogicalRouterUpdateCommand Map bindingMap = new HashMap<>(); for (AclBindings aclBinding : aclBindings.values()) { @SuppressWarnings("unchecked") - InstanceIdentifier aclIid = - ((DataObjectIdentifier) aclBinding.getAclRef().getValue()).toLegacy(); + DataObjectIdentifier aclIid = (DataObjectIdentifier) aclBinding.getAclRef().getValue(); Optional operationalAclOptional = getOperationalState().getAcls(aclIid); if (operationalAclOptional.isPresent()) { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchRemoveCommand.java index 5a3ad082e..359358c7d 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchRemoveCommand.java @@ -10,7 +10,6 @@ package org.opendaylight.ovsdb.hwvtepsouthbound.transact; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Objects; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.lib.operations.TransactionBuilder; @@ -18,13 +17,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitchesKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; public class LogicalSwitchRemoveCommand extends AbstractTransactCommand { - private static final Logger LOG = LoggerFactory.getLogger(LogicalSwitchRemoveCommand.class); List deletedLs; public LogicalSwitchRemoveCommand(final HwvtepOperationalState state, @@ -34,15 +30,15 @@ public class LogicalSwitchRemoveCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> removeds = - extractRemoved(getChanges(), LogicalSwitches.class); + var removeds = extractRemoved(getChanges(), LogicalSwitches.class); if (removeds != null) { - for (Entry, List> deleted: removeds.entrySet()) { + for (var deleted: removeds.entrySet()) { deletedLs = deleted.getValue(); for (LogicalSwitches lswitch : deleted.getValue()) { - InstanceIdentifier lsKey = - deleted.getKey().augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalSwitches.class, lswitch.key()); + var lsKey = deleted.getKey().toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, lswitch.key()) + .build(); getDeviceInfo().clearConfigData(LogicalSwitches.class, lsKey); onConfigUpdate(transaction, deleted.getKey(), lswitch, lsKey); } @@ -51,17 +47,17 @@ public class LogicalSwitchRemoveCommand } @Override - public void onConfigUpdate(final TransactionBuilder transaction, final InstanceIdentifier nodeIid, - final LogicalSwitches logicalSwitches, final InstanceIdentifier lsKey, + public void onConfigUpdate(final TransactionBuilder transaction, final DataObjectIdentifier nodeIid, + final LogicalSwitches logicalSwitches, final DataObjectIdentifier lsKey, final Object... extraData) { processDependencies(EmptyDependencyGetter.INSTANCE, transaction, nodeIid, lsKey, logicalSwitches); } @Override public void doDeviceTransaction(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, + final DataObjectIdentifier instanceIdentifier, final LogicalSwitches lswitch, - final InstanceIdentifier lsKey, + final DataObjectIdentifier lsKey, final Object... extraData) { LogicalSwitchUcastsRemoveCommand cmd = new LogicalSwitchUcastsRemoveCommand( newOperState(), getChanges(), deletedLs, lswitch); @@ -87,13 +83,13 @@ public class LogicalSwitchRemoveCommand @Override public void onCommandSucceeded() { - for (MdsalUpdate mdsalUpdate : updates) { + for (var mdsalUpdate : updates) { getDeviceInfo().clearLogicalSwitchRefs(mdsalUpdate.getKey()); } } @Override - protected String getKeyStr(InstanceIdentifier iid) { - return iid.firstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); + protected String getKeyStr(DataObjectIdentifier iid) { + return iid.getFirstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchUcastsRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchUcastsRemoveCommand.java index fdaa0fb48..908ca6d9a 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchUcastsRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchUcastsRemoveCommand.java @@ -36,7 +36,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitchesKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.port.attributes.VlanBindings; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,7 +47,7 @@ public final class LogicalSwitchUcastsRemoveCommand private final AtomicInteger retryCount = new AtomicInteger(5); private final LogicalSwitches logicalSwitches; - private final InstanceIdentifier nodeIid; + private final DataObjectIdentifier nodeIid; private final List deletedLs; volatile Map> updatedPortBindings = new HashMap<>(); @@ -65,8 +65,10 @@ public final class LogicalSwitchUcastsRemoveCommand @Override public void execute(final TransactionBuilder transaction) { - InstanceIdentifier lsKey = nodeIid.augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalSwitches.class, logicalSwitches.key()); + var lsKey = nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, logicalSwitches.key()) + .build(); HwvtepDeviceInfo.DeviceData deviceData = super.fetchDeviceData(LogicalSwitches.class, lsKey); if (deviceData != null && deviceData.getUuid() != null) { @@ -160,9 +162,10 @@ public final class LogicalSwitchUcastsRemoveCommand private void getFreshPortBindingsExcludingDeleted() { Set deletedLsUuids = new HashSet<>(); for (LogicalSwitches ls : deletedLs) { - InstanceIdentifier lsKey = nodeIid + var lsKey = nodeIid.toBuilder() .augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalSwitches.class, ls.key()); + .child(LogicalSwitches.class, ls.key()) + .build(); HwvtepDeviceInfo.DeviceData deviceData = super.fetchDeviceData(LogicalSwitches.class, lsKey); if (deviceData.getUuid() != null) { @@ -212,7 +215,7 @@ public final class LogicalSwitchUcastsRemoveCommand } @Override - protected String getKeyStr(InstanceIdentifier iid) { - return iid.firstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); + protected String getKeyStr(DataObjectIdentifier iid) { + return iid.getFirstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchUpdateCommand.java index d5c50db61..ec31a5e02 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchUpdateCommand.java @@ -13,7 +13,6 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Objects; import java.util.Set; import org.opendaylight.mdsal.binding.api.DataTreeModification; @@ -27,7 +26,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitchesKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,39 +41,38 @@ public class LogicalSwitchUpdateCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> updateds = - extractUpdated(getChanges(),LogicalSwitches.class); + var updateds = extractUpdated(getChanges(),LogicalSwitches.class); if (!updateds.isEmpty()) { - for (Entry, List> updated: - updateds.entrySet()) { + for (var updated : updateds.entrySet()) { updateLogicalSwitch(transaction, updated.getKey(), updated.getValue()); } } } - public void updateLogicalSwitch(final TransactionBuilder transaction, - final InstanceIdentifier nodeIid, final List lswitchList) { - for (LogicalSwitches lswitch: lswitchList) { - InstanceIdentifier lsKey = nodeIid.augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalSwitches.class, lswitch.key()); - onConfigUpdate(transaction, nodeIid, lswitch, lsKey); + public void updateLogicalSwitch(final TransactionBuilder transaction, final DataObjectIdentifier nodeIid, + final List lswitchList) { + for (LogicalSwitches lswitch : lswitchList) { + onConfigUpdate(transaction, nodeIid, lswitch, nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, lswitch.key()) + .build()); } } @Override public void onConfigUpdate(final TransactionBuilder transaction, - final InstanceIdentifier nodeIid, + final DataObjectIdentifier nodeIid, final LogicalSwitches lswitch, - final InstanceIdentifier lsKey, + final DataObjectIdentifier lsKey, final Object... extraData) { processDependencies(EmptyDependencyGetter.INSTANCE, transaction, nodeIid, lsKey, lswitch); } @Override public void doDeviceTransaction(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, + final DataObjectIdentifier instanceIdentifier, final LogicalSwitches lswitch, - final InstanceIdentifier lsKey, + final DataObjectIdentifier lsKey, final Object... extraData) { LOG.debug("Creating logical switch named: {}", lswitch.getHwvtepNodeName()); final HwvtepDeviceInfo.DeviceData operationalSwitchOptional = @@ -153,7 +151,7 @@ public class LogicalSwitchUpdateCommand } @Override - protected String getKeyStr(InstanceIdentifier iid) { - return iid.firstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); + protected String getKeyStr(DataObjectIdentifier iid) { + return iid.getFirstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue(); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsLocalRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsLocalRemoveCommand.java index 713ee025e..a01095465 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsLocalRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsLocalRemoveCommand.java @@ -10,7 +10,6 @@ package org.opendaylight.ovsdb.hwvtepsouthbound.transact; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.lib.notation.UUID; @@ -21,7 +20,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalMcastMacsKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,18 +34,16 @@ public class McastMacsLocalRemoveCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> removeds = - extractRemoved(getChanges(),LocalMcastMacs.class); + var removeds = extractRemoved(getChanges(),LocalMcastMacs.class); if (!removeds.isEmpty()) { - for (Entry, List> removed: - removeds.entrySet()) { + for (var removed : removeds.entrySet()) { removeMcastMacLocal(transaction, removed.getKey(), removed.getValue()); } } } private void removeMcastMacLocal(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, final List macList) { + final DataObjectIdentifier instanceIdentifier, final List macList) { final var op = ops(); for (LocalMcastMacs mac: macList) { @@ -91,8 +87,8 @@ public class McastMacsLocalRemoveCommand } @Override - protected String getKeyStr(InstanceIdentifier iid) { - return getLsKeyStr(iid.firstKeyOf(LocalMcastMacs.class).getLogicalSwitchRef().getValue()); + protected String getKeyStr(DataObjectIdentifier iid) { + return getLsKeyStr(iid.getFirstKeyOf(LocalMcastMacs.class).getLogicalSwitchRef().getValue()); } // FIXME: hide/move/make this final @@ -104,12 +100,12 @@ public class McastMacsLocalRemoveCommand } @Override - public List> getLogicalSwitchDependencies(final LocalMcastMacs data) { - return List.of(((DataObjectIdentifier) data.getLogicalSwitchRef().getValue()).toLegacy()); + public List> getLogicalSwitchDependencies(final LocalMcastMacs data) { + return List.of((DataObjectIdentifier) data.getLogicalSwitchRef().getValue()); } @Override - public List> getTerminationPointDependencies(final LocalMcastMacs data) { + public List> getTerminationPointDependencies(final LocalMcastMacs data) { return List.of(); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsLocalUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsLocalUpdateCommand.java index 522d3848b..b67310c2c 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsLocalUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsLocalUpdateCommand.java @@ -10,7 +10,6 @@ package org.opendaylight.ovsdb.hwvtepsouthbound.transact; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepSouthboundConstants; @@ -24,7 +23,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,18 +37,16 @@ public class McastMacsLocalUpdateCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> updateds = - extractUpdated(getChanges(),LocalMcastMacs.class); + var updateds = extractUpdated(getChanges(),LocalMcastMacs.class); if (!updateds.isEmpty()) { - for (Entry, List> updated: - updateds.entrySet()) { + for (var updated : updateds.entrySet()) { updateMcastMacsLocal(transaction, updated.getKey(), updated.getValue()); } } } private void updateMcastMacsLocal(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, final List localMcastMacs) { + final DataObjectIdentifier instanceIdentifier, final List localMcastMacs) { final var op = ops(); for (LocalMcastMacs localMcastMac: localMcastMacs) { @@ -85,8 +81,8 @@ public class McastMacsLocalUpdateCommand private void setLogicalSwitch(final McastMacsLocal mcastMacsLocal, final LocalMcastMacs inputMac) { if (inputMac.getLogicalSwitchRef() != null) { @SuppressWarnings("unchecked") - InstanceIdentifier lswitchIid = - ((DataObjectIdentifier) inputMac.getLogicalSwitchRef().getValue()).toLegacy(); + DataObjectIdentifier lswitchIid = + (DataObjectIdentifier) inputMac.getLogicalSwitchRef().getValue(); Optional operationalSwitchOptional = getOperationalState().getLogicalSwitches(lswitchIid); if (operationalSwitchOptional.isPresent()) { @@ -135,7 +131,7 @@ public class McastMacsLocalUpdateCommand } @Override - protected String getKeyStr(InstanceIdentifier iid) { - return getLsKeyStr(iid.firstKeyOf(LocalMcastMacs.class).getLogicalSwitchRef().getValue()); + protected String getKeyStr(DataObjectIdentifier iid) { + return getLsKeyStr(iid.getFirstKeyOf(LocalMcastMacs.class).getLogicalSwitchRef().getValue()); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsRemoteRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsRemoteRemoveCommand.java index 6cb08faf8..d52754bb4 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsRemoteRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsRemoteRemoveCommand.java @@ -24,7 +24,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacsKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,20 +39,19 @@ public class McastMacsRemoteRemoveCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> removeds = + Map, List> removeds = extractRemoved(getChanges(),RemoteMcastMacs.class); if (!removeds.isEmpty()) { - for (Entry, List> removed: + for (Entry, List> removed: removeds.entrySet()) { removeMcastMacRemote(transaction, removed.getKey(), removed.getValue()); } } //Remove the ones whose locator set got emptied - Map, List> updated = + Map, List> updated = extractUpdated(getChanges(),RemoteMcastMacs.class); if (!HwvtepSouthboundUtil.isEmptyMap(updated)) { - for (Entry, List> entry: - updated.entrySet()) { + for (Entry, List> entry : updated.entrySet()) { List updatedList = entry.getValue(); List tobeRemovedList = new ArrayList<>(); if (!HwvtepSouthboundUtil.isEmpty(updatedList)) { @@ -68,30 +67,31 @@ public class McastMacsRemoteRemoveCommand } private void removeMcastMacRemote(final TransactionBuilder transaction, - final InstanceIdentifier nodeIid, final List macList) { + final DataObjectIdentifier nodeIid, final List macList) { for (RemoteMcastMacs mac : macList) { - InstanceIdentifier macKey = nodeIid.augmentation(HwvtepGlobalAugmentation.class) - .child(RemoteMcastMacs.class, mac.key()); - onConfigUpdate(transaction, nodeIid, mac, macKey); + onConfigUpdate(transaction, nodeIid, mac, nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteMcastMacs.class, mac.key()) + .build()); } } @Override public void onConfigUpdate(final TransactionBuilder transaction, - final InstanceIdentifier nodeIid, + final DataObjectIdentifier nodeIid, final RemoteMcastMacs remoteMcastMac, - final InstanceIdentifier macKey, + final DataObjectIdentifier macKey, final Object... extraData) { processDependencies(EmptyDependencyGetter.INSTANCE, transaction, nodeIid, macKey, remoteMcastMac); } @Override public void doDeviceTransaction(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, + final DataObjectIdentifier instanceIdentifier, final RemoteMcastMacs mac, - final InstanceIdentifier macIid, + final DataObjectIdentifier macIid, final Object... extraData) { - String nodeId = instanceIdentifier.firstKeyOf(Node.class).getNodeId().getValue(); + String nodeId = instanceIdentifier.getFirstKeyOf(Node.class).getNodeId().getValue(); clearConfigData(RemoteMcastMacs.class, macIid); long transactionId = getOperationalState().getTransactionId(); LOG.debug("Remove received for RemoteMcastMacs key: {} txId: {}", macIid, transactionId); @@ -148,7 +148,7 @@ public class McastMacsRemoteRemoveCommand } @Override - protected String getKeyStr(InstanceIdentifier iid) { - return getLsKeyStr(iid.firstKeyOf(RemoteMcastMacs.class).getLogicalSwitchRef().getValue()); + protected String getKeyStr(DataObjectIdentifier iid) { + return getLsKeyStr(iid.getFirstKeyOf(RemoteMcastMacs.class).getLogicalSwitchRef().getValue()); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsRemoteUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsRemoteUpdateCommand.java index 8b88ac6a9..a6dc1f22b 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsRemoteUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/McastMacsRemoteUpdateCommand.java @@ -14,7 +14,6 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Objects; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepDeviceInfo; @@ -31,7 +30,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSet; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,23 +47,22 @@ public class McastMacsRemoteUpdateCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> updateds = - extractUpdated(getChanges(),RemoteMcastMacs.class); + var updateds = extractUpdated(getChanges(),RemoteMcastMacs.class); if (!updateds.isEmpty()) { - for (Entry, List> updated: - updateds.entrySet()) { + for (var updated : updateds.entrySet()) { updateMcastMacRemote(transaction, updated.getKey(), updated.getValue()); } } } private void updateMcastMacRemote(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, final List macList) { + final DataObjectIdentifier instanceIdentifier, final List macList) { for (RemoteMcastMacs mac: macList) { //add / update only if locator set got changed - InstanceIdentifier macIid = instanceIdentifier - .augmentation(HwvtepGlobalAugmentation.class) - .child(RemoteMcastMacs.class, mac.key()); + var macIid = instanceIdentifier.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteMcastMacs.class, mac.key()) + .build(); updateConfigData(RemoteMcastMacs.class, macIid, mac); if (!HwvtepSouthboundUtil.isEmpty(mac.getLocatorSet())) { onConfigUpdate(transaction, instanceIdentifier, mac, null); @@ -75,31 +72,32 @@ public class McastMacsRemoteUpdateCommand @Override public void onConfigUpdate(final TransactionBuilder transaction, - final InstanceIdentifier nodeIid, + final DataObjectIdentifier nodeIid, final RemoteMcastMacs remoteMcastMac, - final InstanceIdentifier macKey, + final DataObjectIdentifier macKey, final Object... extraData) { - InstanceIdentifier macIid = nodeIid.augmentation(HwvtepGlobalAugmentation.class) - .child(RemoteMcastMacs.class, remoteMcastMac.key()); - processDependencies(MCAST_MAC_DATA_VALIDATOR, transaction, nodeIid, macIid, remoteMcastMac); + processDependencies(MCAST_MAC_DATA_VALIDATOR, transaction, nodeIid, nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteMcastMacs.class, remoteMcastMac.key()) + .build(), remoteMcastMac); } @Override public void doDeviceTransaction(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, - final RemoteMcastMacs mac, - final InstanceIdentifier macKey, - final Object... extraData) { + final DataObjectIdentifier instanceIdentifier, final RemoteMcastMacs mac, + final DataObjectIdentifier macKey, final Object... extraData) { - String nodeId = instanceIdentifier.firstKeyOf(Node.class).getNodeId().getValue(); + String nodeId = instanceIdentifier.getFirstKeyOf(Node.class).getNodeId().getValue(); LOG.debug("Creating remoteMcastMacs, mac address: {} {}", nodeId, mac.getMacEntryKey().getValue()); McastMacsRemote mcastMacsRemote = transaction.getTypedRowWrapper(McastMacsRemote.class); setIpAddress(mcastMacsRemote, mac); setLogicalSwitch(transaction, mcastMacsRemote, mac); setMac(mcastMacsRemote, mac); - InstanceIdentifier macIid = instanceIdentifier.augmentation(HwvtepGlobalAugmentation.class) - .child(RemoteMcastMacs.class, mac.key()); + var macIid = instanceIdentifier.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteMcastMacs.class, mac.key()) + .build(); HwvtepDeviceInfo.DeviceData deviceData = super.fetchDeviceData(RemoteMcastMacs.class, macIid); if (deviceData == null) { setLocatorSet(transaction, mcastMacsRemote, mac); @@ -129,8 +127,8 @@ public class McastMacsRemoteUpdateCommand final RemoteMcastMacs inputMac) { if (inputMac.getLogicalSwitchRef() != null) { @SuppressWarnings("unchecked") - InstanceIdentifier lswitchIid = - ((DataObjectIdentifier) inputMac.getLogicalSwitchRef().getValue()).toLegacy(); + DataObjectIdentifier lswitchIid = + (DataObjectIdentifier) inputMac.getLogicalSwitchRef().getValue(); UUID logicalSwitchUUID = TransactUtils.getLogicalSwitchUUID(transaction, getOperationalState(), lswitchIid); if (logicalSwitchUUID != null) { mcastMacsRemote.setLogicalSwitch(logicalSwitchUUID); @@ -194,21 +192,21 @@ public class McastMacsRemoteUpdateCommand static class McastMacUnMetDependencyGetter extends UnMetDependencyGetter { @Override - public List> getLogicalSwitchDependencies(final RemoteMcastMacs data) { + public List> getLogicalSwitchDependencies(final RemoteMcastMacs data) { if (data == null) { return List.of(); } - return List.of(((DataObjectIdentifier) data.getLogicalSwitchRef().getValue()).toLegacy()); + return List.of(((DataObjectIdentifier) data.getLogicalSwitchRef().getValue())); } @Override - public List> getTerminationPointDependencies(final RemoteMcastMacs data) { + public List> getTerminationPointDependencies(final RemoteMcastMacs data) { if (data == null || HwvtepSouthboundUtil.isEmpty(data.getLocatorSet())) { return List.of(); } - List> locators = new ArrayList<>(); + List> locators = new ArrayList<>(); for (LocatorSet locator: data.getLocatorSet()) { - locators.add(((DataObjectIdentifier) locator.getLocatorRef().getValue()).toLegacy()); + locators.add(((DataObjectIdentifier) locator.getLocatorRef().getValue())); } return locators; } @@ -220,7 +218,7 @@ public class McastMacsRemoteUpdateCommand //increment the refcounts for new mcast mac RemoteMcastMacs newMac = (RemoteMcastMacs) mdsalUpdate.getNewData(); RemoteMcastMacs oldMac = (RemoteMcastMacs) mdsalUpdate.getOldData(); - InstanceIdentifier macIid = mdsalUpdate.getKey(); + DataObjectIdentifier macIid = mdsalUpdate.getKey(); if (oldMac != null && !oldMac.equals(newMac)) { if (oldMac.getLocatorSet() != null) { @@ -238,14 +236,14 @@ public class McastMacsRemoteUpdateCommand for (MdsalUpdate mdsalUpdate : updates) { updateLocatorRefCounts(mdsalUpdate); RemoteMcastMacs mac = (RemoteMcastMacs) mdsalUpdate.getNewData(); - InstanceIdentifier macIid = mdsalUpdate.getKey(); + DataObjectIdentifier macIid = mdsalUpdate.getKey(); getDeviceInfo().updateRemoteMcast( - ((DataObjectIdentifier) mac.getLogicalSwitchRef().getValue()).toLegacy(), macIid, mac); + (DataObjectIdentifier) mac.getLogicalSwitchRef().getValue(), macIid, mac); } } @Override - protected String getKeyStr(final InstanceIdentifier iid) { - return getLsKeyStr(iid.firstKeyOf(RemoteMcastMacs.class).getLogicalSwitchRef().getValue()); + protected String getKeyStr(final DataObjectIdentifier iid) { + return getLsKeyStr(iid.getFirstKeyOf(RemoteMcastMacs.class).getLogicalSwitchRef().getValue()); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/MdsalUpdate.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/MdsalUpdate.java index 586edc972..42cccf6c2 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/MdsalUpdate.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/MdsalUpdate.java @@ -7,22 +7,22 @@ */ package org.opendaylight.ovsdb.hwvtepsouthbound.transact; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class MdsalUpdate> { - private InstanceIdentifier key; + private DataObjectIdentifier key; private T newData; private T oldData; - public MdsalUpdate(InstanceIdentifier key, T newData, T oldData) { + public MdsalUpdate(DataObjectIdentifier key, T newData, T oldData) { this.key = key; this.newData = newData; this.oldData = oldData; } - public InstanceIdentifier getKey() { + public DataObjectIdentifier getKey() { return key; } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalPortRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalPortRemoveCommand.java index 6d3d8c954..324f67fa7 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalPortRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalPortRemoveCommand.java @@ -12,7 +12,6 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataObjectModification; import org.opendaylight.mdsal.binding.api.DataTreeModification; @@ -22,7 +21,7 @@ import org.opendaylight.ovsdb.utils.mdsal.utils.TransactionType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalPortAugmentation; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,18 +36,17 @@ public class PhysicalPortRemoveCommand extends AbstractTransactCommand { @Override public void execute(final TransactionBuilder transaction) { //TODO reuse from base class instead of extractRemovedPorts - Map, List> removeds = + Map, List> removeds = extractRemovedPorts(getChanges(), HwvtepPhysicalPortAugmentation.class); if (!removeds.isEmpty()) { - for (Entry, List> removed: - removeds.entrySet()) { + for (var removed : removeds.entrySet()) { updatePhysicalPort(transaction, removed.getKey(), removed.getValue()); } } } private void updatePhysicalPort(final TransactionBuilder transaction, - final InstanceIdentifier psNodeiid, + final DataObjectIdentifier psNodeiid, final List listPort) { final var op = ops(); @@ -75,12 +73,12 @@ public class PhysicalPortRemoveCommand extends AbstractTransactCommand { } } - protected Map, List> extractRemovedPorts( + protected Map, List> extractRemovedPorts( final Collection> changes, final Class class1) { - Map, List> result = new HashMap<>(); + Map, List> result = new HashMap<>(); if (changes != null && !changes.isEmpty()) { for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().getRootIdentifier(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); //If the node which physical ports belong to is removed, all physical ports //should be removed too. diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalPortUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalPortUpdateCommand.java index 8b58c3627..a9e381b2b 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalPortUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalPortUpdateCommand.java @@ -32,7 +32,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,18 +47,18 @@ public class PhysicalPortUpdateCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> createds = + Map, List> createds = extractCreated(getChanges(),TerminationPoint.class); if (!createds.isEmpty()) { - for (Entry, List> created: + for (Entry, List> created: createds.entrySet()) { updatePhysicalPort(transaction, created.getKey(), created.getValue()); } } - Map, List> updateds = + Map, List> updateds = extractUpdatedPorts(getChanges(), TerminationPoint.class); if (!updateds.isEmpty()) { - for (Entry, List> updated: + for (Entry, List> updated: updateds.entrySet()) { updatePhysicalPort(transaction, updated.getKey(), updated.getValue()); } @@ -67,12 +66,14 @@ public class PhysicalPortUpdateCommand } public void updatePhysicalPort(final TransactionBuilder transaction, - final InstanceIdentifier psNodeiid, + final DataObjectIdentifier psNodeiid, final List listPort) { if (listPort != null) { for (TerminationPoint port : listPort) { LOG.debug("Processing port {}", port); - InstanceIdentifier tpIId = psNodeiid.child(TerminationPoint.class, port.key()); + DataObjectIdentifier tpIId = psNodeiid.toBuilder() + .child(TerminationPoint.class, port.key()) + .build(); HwvtepPhysicalPortAugmentation hwvtepPhysicalPortAugmentation = port.augmentation(HwvtepPhysicalPortAugmentation.class); if (hwvtepPhysicalPortAugmentation != null) { @@ -83,17 +84,18 @@ public class PhysicalPortUpdateCommand } @Override - public void onConfigUpdate(final TransactionBuilder transaction, final InstanceIdentifier psNodeiid, - final TerminationPoint port, final InstanceIdentifier tpIId, final Object... extraData) { + public void onConfigUpdate(final TransactionBuilder transaction, final DataObjectIdentifier psNodeiid, + final TerminationPoint port, final DataObjectIdentifier tpIId, + final Object... extraData) { doDeviceTransaction(transaction, psNodeiid, port, tpIId); } @Override - public void doDeviceTransaction(final TransactionBuilder transaction, final InstanceIdentifier nodeIid, - final TerminationPoint data, final InstanceIdentifier key, + public void doDeviceTransaction(final TransactionBuilder transaction, final DataObjectIdentifier nodeIid, + final TerminationPoint data, final DataObjectIdentifier key, final Object... extraData) { LOG.debug("Processing port doDeviceTransaction {}", data); - final InstanceIdentifier psNodeiid = nodeIid; + final DataObjectIdentifier psNodeiid = nodeIid; HwvtepPhysicalPortAugmentation port = data.augmentation(HwvtepPhysicalPortAugmentation.class); if (port == null) { LOG.info("No port augmentation found for port {}", data); @@ -174,10 +176,10 @@ public class PhysicalPortUpdateCommand } } - private Map setVlanBindings(final InstanceIdentifier psNodeiid, + private Map setVlanBindings(final DataObjectIdentifier psNodeiid, final PhysicalPort physicalPort, final TerminationPoint inputPhysicalPort, - final InstanceIdentifier key, + final DataObjectIdentifier key, final TransactionBuilder transaction) { HwvtepPhysicalPortAugmentation portAugmentation = inputPhysicalPort.augmentation( HwvtepPhysicalPortAugmentation.class); @@ -185,8 +187,8 @@ public class PhysicalPortUpdateCommand //get UUID by LogicalSwitchRef for (VlanBindings vlanBinding : portAugmentation.nonnullVlanBindings().values()) { @SuppressWarnings("unchecked") - InstanceIdentifier lswitchIid = - ((DataObjectIdentifier) vlanBinding.getLogicalSwitchRef().getValue()).toLegacy(); + DataObjectIdentifier lswitchIid = + ((DataObjectIdentifier) vlanBinding.getLogicalSwitchRef().getValue()); Map inTransitDependencies = DEPENDENCY_GETTER.getInTransitDependencies( getOperationalState(), vlanBinding); @@ -213,9 +215,9 @@ public class PhysicalPortUpdateCommand return bindingMap; } - private void createOperWaitingJob(final InstanceIdentifier psNodeiid, + private void createOperWaitingJob(final DataObjectIdentifier psNodeiid, final TerminationPoint inputPhysicalPort, - final InstanceIdentifier key, + final DataObjectIdentifier key, final Map inTransitDependencies) { if (getDeviceInfo().isKeyInDependencyQueue(key)) { return; @@ -240,9 +242,9 @@ public class PhysicalPortUpdateCommand getDeviceInfo().addJobToQueue(opWaitingJob); } - private void createConfigWaitJob(final InstanceIdentifier psNodeiid, + private void createConfigWaitJob(final DataObjectIdentifier psNodeiid, final TerminationPoint inputPhysicalPort, - final InstanceIdentifier key, + final DataObjectIdentifier key, final Map configDependencies) { if (getDeviceInfo().isKeyInDependencyQueue(key)) { return; @@ -270,26 +272,26 @@ public class PhysicalPortUpdateCommand static class VlanBindingsUnMetDependencyGetter extends UnMetDependencyGetter { @Override - public List> getLogicalSwitchDependencies(final VlanBindings data) { + public List> getLogicalSwitchDependencies(final VlanBindings data) { if (data == null) { return Collections.emptyList(); } return Collections.singletonList( - ((DataObjectIdentifier) data.getLogicalSwitchRef().getValue()).toLegacy()); + ((DataObjectIdentifier) data.getLogicalSwitchRef().getValue())); } @Override - public List> getTerminationPointDependencies(final VlanBindings data) { + public List> getTerminationPointDependencies(final VlanBindings data) { return Collections.emptyList(); } } - private static Map, List> extractCreated( + private static Map, List> extractCreated( final Collection> changes, final Class class1) { - Map, List> result = new HashMap<>(); + Map, List> result = new HashMap<>(); if (changes != null && !changes.isEmpty()) { for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().getRootIdentifier(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); Node created = TransactUtils.getCreated(mod); if (created != null) { @@ -308,12 +310,12 @@ public class PhysicalPortUpdateCommand return result; } - private static Map, List> extractUpdatedPorts( + private static Map, List> extractUpdatedPorts( final Collection> changes, final Class class1) { - Map, List> result = new HashMap<>(); + Map, List> result = new HashMap<>(); if (changes != null && !changes.isEmpty()) { for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().getRootIdentifier(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); Node updated = TransactUtils.getUpdated(mod); Node before = mod.dataBefore(); @@ -343,13 +345,12 @@ public class PhysicalPortUpdateCommand } @Override - protected String getKeyStr(final InstanceIdentifier iid) { + protected String getKeyStr(final DataObjectIdentifier iid) { try { - return ((TerminationPoint)iid.firstKeyOf(TerminationPoint.class)).getTpId().getValue(); + return iid.getFirstKeyOf(TerminationPoint.class).getTpId().getValue(); } catch (ClassCastException exp) { LOG.error("Error in getting the TerminationPoint id ", exp); } return super.getKeyStr(iid); } - } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalSwitchRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalSwitchRemoveCommand.java index 8c84fb231..b48025106 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalSwitchRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalSwitchRemoveCommand.java @@ -11,7 +11,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataObjectModification; import org.opendaylight.mdsal.binding.api.DataTreeModification; @@ -22,7 +21,7 @@ import org.opendaylight.ovsdb.schema.hardwarevtep.Global; import org.opendaylight.ovsdb.schema.hardwarevtep.PhysicalSwitch; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.PhysicalSwitchAugmentation; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,18 +35,17 @@ public class PhysicalSwitchRemoveCommand extends AbstractTransactCommand { @Override public void execute(final TransactionBuilder transaction) { - Map, PhysicalSwitchAugmentation> removeds = + Map, PhysicalSwitchAugmentation> removeds = extractRemovedSwitches(getChanges(),PhysicalSwitchAugmentation.class); if (!removeds.isEmpty()) { - for (Entry, PhysicalSwitchAugmentation> removed: - removeds.entrySet()) { + for (var removed : removeds.entrySet()) { removePhysicalSwitch(transaction, removed.getKey(), removed.getValue()); } } } private void removePhysicalSwitch(final TransactionBuilder transaction, - final InstanceIdentifier iid, final PhysicalSwitchAugmentation physicalSwitchAugmentation) { + final DataObjectIdentifier iid, final PhysicalSwitchAugmentation physicalSwitchAugmentation) { LOG.debug("Removing a physical switch named: {}", physicalSwitchAugmentation.getHwvtepNodeName().getValue()); Optional operationalPhysicalSwitchOptional = getOperationalState().getPhysicalSwitchAugmentation(iid); @@ -74,12 +72,12 @@ public class PhysicalSwitchRemoveCommand extends AbstractTransactCommand { } } - private static Map, PhysicalSwitchAugmentation> extractRemovedSwitches( + private static Map, PhysicalSwitchAugmentation> extractRemovedSwitches( final Collection> changes, final Class class1) { - Map, PhysicalSwitchAugmentation> result = new HashMap<>(); + Map, PhysicalSwitchAugmentation> result = new HashMap<>(); if (changes != null && !changes.isEmpty()) { for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().getRootIdentifier(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); Node removed = TransactUtils.getRemoved(mod); if (removed != null) { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalSwitchUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalSwitchUpdateCommand.java index d3f43d44c..99d31ccf6 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalSwitchUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PhysicalSwitchUpdateCommand.java @@ -46,7 +46,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -60,18 +59,18 @@ public final class PhysicalSwitchUpdateCommand extends AbstractTransactCommand { @Override public void execute(final TransactionBuilder transaction) { - Map, PhysicalSwitchAugmentation> created = + Map, PhysicalSwitchAugmentation> created = extractCreated(getChanges(),PhysicalSwitchAugmentation.class); if (!created.isEmpty()) { - for (Entry, PhysicalSwitchAugmentation> physicalSwitchEntry: + for (Entry, PhysicalSwitchAugmentation> physicalSwitchEntry: created.entrySet()) { updatePhysicalSwitch(transaction, physicalSwitchEntry.getKey(), physicalSwitchEntry.getValue()); } } - Map, PhysicalSwitchAugmentation> updated = + Map, PhysicalSwitchAugmentation> updated = extractUpdatedSwitches(getChanges(),PhysicalSwitchAugmentation.class); if (!updated.isEmpty()) { - for (Entry, PhysicalSwitchAugmentation> physicalSwitchEntry: + for (Entry, PhysicalSwitchAugmentation> physicalSwitchEntry: updated.entrySet()) { updatePhysicalSwitch(transaction, physicalSwitchEntry.getKey(), physicalSwitchEntry.getValue()); } @@ -80,7 +79,7 @@ public final class PhysicalSwitchUpdateCommand extends AbstractTransactCommand { private void updatePhysicalSwitch(final TransactionBuilder transaction, - final InstanceIdentifier iid, final PhysicalSwitchAugmentation physicalSwitchAugmentation) { + final DataObjectIdentifier iid, final PhysicalSwitchAugmentation physicalSwitchAugmentation) { LOG.debug("Creating a physical switch named: {}", physicalSwitchAugmentation.getHwvtepNodeName()); Optional operationalPhysicalSwitchOptional = getOperationalState().getPhysicalSwitchAugmentation(iid); @@ -181,7 +180,7 @@ public final class PhysicalSwitchUpdateCommand extends AbstractTransactCommand { } @SuppressWarnings("unchecked") - private void setTunnels(final TransactionBuilder transaction, final InstanceIdentifier iid, + private void setTunnels(final TransactionBuilder transaction, final DataObjectIdentifier iid, final PhysicalSwitch physicalSwitch, final PhysicalSwitchAugmentation physicalSwitchAugmentation, final boolean switchExists) { final var op = ops(); @@ -193,9 +192,9 @@ public final class PhysicalSwitchUpdateCommand extends AbstractTransactCommand { Tunnel newTunnel = transaction.getTypedRowWrapper(Tunnel.class); UUID localUUID = getLocatorUUID(transaction, - ((DataObjectIdentifier) tunnel.getLocalLocatorRef().getValue()).toLegacy()); + (DataObjectIdentifier) tunnel.getLocalLocatorRef().getValue()); UUID remoteUUID = getLocatorUUID(transaction, - ((DataObjectIdentifier) tunnel.getRemoteLocatorRef().getValue()).toLegacy()); + (DataObjectIdentifier) tunnel.getRemoteLocatorRef().getValue()); if (localUUID != null && remoteUUID != null) { // local and remote must exist newTunnel.setLocal(localUUID); @@ -270,7 +269,8 @@ public final class PhysicalSwitchUpdateCommand extends AbstractTransactCommand { } } - private UUID getLocatorUUID(final TransactionBuilder transaction, final InstanceIdentifier iid) { + private UUID getLocatorUUID(final TransactionBuilder transaction, + final DataObjectIdentifier iid) { UUID locatorUUID = null; Optional opLocOptional = getOperationalState().getPhysicalLocatorAugmentation(iid); @@ -292,12 +292,12 @@ public final class PhysicalSwitchUpdateCommand extends AbstractTransactCommand { return locatorUUID; } - private static Map, PhysicalSwitchAugmentation> extractCreated( + private static Map, PhysicalSwitchAugmentation> extractCreated( final Collection> changes, final Class class1) { - Map, PhysicalSwitchAugmentation> result = new HashMap<>(); + Map, PhysicalSwitchAugmentation> result = new HashMap<>(); if (changes != null && !changes.isEmpty()) { for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().getRootIdentifier(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); Node created = TransactUtils.getCreated(mod); if (created != null) { @@ -312,12 +312,12 @@ public final class PhysicalSwitchUpdateCommand extends AbstractTransactCommand { return result; } - private static Map, PhysicalSwitchAugmentation> extractUpdatedSwitches( + private static Map, PhysicalSwitchAugmentation> extractUpdatedSwitches( final Collection> changes, final Class class1) { - Map, PhysicalSwitchAugmentation> result = new HashMap<>(); + Map, PhysicalSwitchAugmentation> result = new HashMap<>(); if (changes != null && !changes.isEmpty()) { for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().getRootIdentifier(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); Node updated = TransactUtils.getUpdated(mod); if (updated != null) { @@ -331,5 +331,4 @@ public final class PhysicalSwitchUpdateCommand extends AbstractTransactCommand { } return result; } - } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PlainLogicalSwitchRemoveCmd.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PlainLogicalSwitchRemoveCmd.java index 10c32a5b3..5271b7372 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PlainLogicalSwitchRemoveCmd.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/PlainLogicalSwitchRemoveCmd.java @@ -22,7 +22,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitchesKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,7 +32,7 @@ public final class PlainLogicalSwitchRemoveCmd private AtomicInteger retryCount = new AtomicInteger(5); private final LogicalSwitches logicalSwitches; - private final InstanceIdentifier nodeIid; + private final DataObjectIdentifier nodeIid; public PlainLogicalSwitchRemoveCmd(final HwvtepOperationalState state, final Collection> changes, diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommand.java index fe4ab90f2..a50a16317 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommand.java @@ -9,19 +9,19 @@ package org.opendaylight.ovsdb.hwvtepsouthbound.transact; import org.opendaylight.ovsdb.lib.operations.TransactionBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public interface TransactCommand> { void execute(TransactionBuilder transaction); - default void onConfigUpdate(TransactionBuilder transaction, InstanceIdentifier nodeIid, T data, - InstanceIdentifier key, Object... extraData) { + default void onConfigUpdate(TransactionBuilder transaction, DataObjectIdentifier nodeIid, T data, + DataObjectIdentifier key, Object... extraData) { } - default void doDeviceTransaction(TransactionBuilder transaction, InstanceIdentifier nodeIid, T data, - InstanceIdentifier key, Object... extraData) { + default void doDeviceTransaction(TransactionBuilder transaction, DataObjectIdentifier nodeIid, T data, + DataObjectIdentifier key, Object... extraData) { } default void onSuccess(TransactionBuilder deviceTransaction) { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommandAggregator.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommandAggregator.java index bb6a2a686..408a33204 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommandAggregator.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommandAggregator.java @@ -24,8 +24,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacs; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObject; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,7 +40,7 @@ public class TransactCommandAggregator implements TransactCommand { each updated/ deleted contains Map < child type, List> child type is the child of hwvtep Global augmentation */ - private final Map, + private final Map, Pair>, List>>, Map>, List>>>> modifiedData = new HashMap<>(); @@ -76,21 +76,19 @@ public class TransactCommandAggregator implements TransactCommand { } @Override - public void onConfigUpdate(TransactionBuilder transaction, InstanceIdentifier nodeIid, EntryObject data, - InstanceIdentifier key, - Object... extraData) { + public void onConfigUpdate(TransactionBuilder transaction, DataObjectIdentifier nodeIid, EntryObject data, + DataObjectIdentifier key, Object... extraData) { } @Override - public void doDeviceTransaction(TransactionBuilder transaction, InstanceIdentifier nodeIid, EntryObject data, - InstanceIdentifier key, - Object... extraData) { + public void doDeviceTransaction(TransactionBuilder transaction, DataObjectIdentifier nodeIid, EntryObject data, + DataObjectIdentifier key, Object... extraData) { } private void onDataTreeChanged(final Collection> changes) { boolean readOperationalNodes = false; for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().getRootIdentifier(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); final Map>, List>> updatedData = new HashMap<>(); final Map>, List>> deletedData = new HashMap<>(); @@ -113,7 +111,7 @@ public class TransactCommandAggregator implements TransactCommand { || deletedData.containsKey(RemoteUcastMacs.class) && deletedData.size() == 1; } - private static void extractDataChanged(final InstanceIdentifier key, final DataObjectModification mod, + private static void extractDataChanged(final DataObjectIdentifier key, final DataObjectModification mod, final Map>, List>> updatedData, final Map>, List>> deletedData) { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactUtils.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactUtils.java index dde84c071..1610ac93f 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactUtils.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactUtils.java @@ -40,7 +40,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -101,11 +100,11 @@ public final class TransactUtils { } //TODO: change this function to be generic - public static Map, Node> extractCreatedOrUpdatedOrRemoved( + public static Map, Node> extractCreatedOrUpdatedOrRemoved( final Collection> changes, final Class class1) { - Map, Node> result = new HashMap<>(); + Map, Node> result = new HashMap<>(); for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().path(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); Node created = getCreated(mod); if (created != null) { @@ -129,8 +128,8 @@ public final class TransactUtils { Set locatorsInfo = new HashSet<>(); for (LocatorSet locator: locatorList) { @SuppressWarnings("unchecked") - InstanceIdentifier iid = - ((DataObjectIdentifier) locator.getLocatorRef().getValue()).toLegacy(); + DataObjectIdentifier iid = + ((DataObjectIdentifier) locator.getLocatorRef().getValue()); UUID locatorUuid = createPhysicalLocator(transaction, hwvtepOperationalState, iid); if (locatorUuid != null) { locators.add(locatorUuid); @@ -150,7 +149,7 @@ public final class TransactUtils { public static UUID createPhysicalLocator(final TransactionBuilder transaction, final HwvtepOperationalState operationalState, - final InstanceIdentifier iid) { + final DataObjectIdentifier iid) { UUID locatorUuid = null; HwvtepDeviceInfo.DeviceData deviceData = operationalState.getDeviceInfo().getDeviceOperData( TerminationPoint.class, iid); @@ -230,14 +229,14 @@ public final class TransactUtils { return HwvtepSouthboundConstants.LOGICALSWITCH_UUID_PREFIX + sanitizeUUID(lswitch.getHwvtepNodeName()); } - public static UUID getLogicalSwitchUUID(final InstanceIdentifier lswitchIid) { + public static UUID getLogicalSwitchUUID(final DataObjectIdentifier lswitchIid) { return new UUID(HwvtepSouthboundConstants.LOGICALSWITCH_UUID_PREFIX - + sanitizeUUID(lswitchIid.firstKeyOf(LogicalSwitches.class).getHwvtepNodeName())); + + sanitizeUUID(lswitchIid.getFirstKeyOf(LogicalSwitches.class).getHwvtepNodeName())); } public static UUID getLogicalSwitchUUID(final TransactionBuilder transaction, final HwvtepOperationalState operationalState, - final InstanceIdentifier lswitchIid) { + final DataObjectIdentifier lswitchIid) { HwvtepDeviceInfo hwvtepDeviceInfo = operationalState.getDeviceInfo(); HwvtepDeviceInfo.DeviceData lsData = hwvtepDeviceInfo.getDeviceOperData(LogicalSwitches.class, lswitchIid); if (lsData != null) { @@ -253,7 +252,7 @@ public final class TransactUtils { MdsalUtils mdsalUtils = new MdsalUtils(operationalState.getDataBroker()); LogicalSwitches ls = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION, lswitchIid); if (ls != null) { - cmd.updateLogicalSwitch(transaction, lswitchIid.firstIdentifierOf(Node.class), List.of(ls)); + cmd.updateLogicalSwitch(transaction, lswitchIid.trimTo(Node.class), List.of(ls)); } else { LOG.error("Could not find logical switch in config ds {}", lswitchIid); return null; @@ -265,14 +264,14 @@ public final class TransactUtils { return HwvtepSouthboundConstants.LOGICALROUTER_UUID_PREFIX + sanitizeUUID(lrouter.getHwvtepNodeName()); } - public static UUID getAclUUID(final InstanceIdentifier aclIid) { + public static UUID getAclUUID(final DataObjectIdentifier aclIid) { return new UUID(HwvtepSouthboundConstants.ACL_UUID_PREFIX - + sanitizeUUID(aclIid.firstKeyOf(Acls.class).getAclName())); + + sanitizeUUID(aclIid.getFirstKeyOf(Acls.class).getAclName())); } @SuppressWarnings("checkstyle:IllegalCatch") private static void addLocatorToTransactionHistory(final HwvtepOperationalState hwvtepOperationalState, - final Set locatorsInfo, final InstanceIdentifier iid) { + final Set locatorsInfo, final DataObjectIdentifier iid) { try { HwvtepDeviceInfo.DeviceData deviceData = hwvtepOperationalState.getDeviceInfo().getDeviceOperData( TerminationPoint.class, iid); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsLocalRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsLocalRemoveCommand.java index fd1557f2f..b8f626c9a 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsLocalRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsLocalRemoveCommand.java @@ -10,7 +10,6 @@ package org.opendaylight.ovsdb.hwvtepsouthbound.transact; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.lib.notation.UUID; @@ -21,7 +20,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalUcastMacsKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,18 +34,16 @@ public class UcastMacsLocalRemoveCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> removeds = - extractRemoved(getChanges(),LocalUcastMacs.class); + var removeds = extractRemoved(getChanges(),LocalUcastMacs.class); if (!removeds.isEmpty()) { - for (Entry, List> removed: - removeds.entrySet()) { + for (var removed : removeds.entrySet()) { removeUcastMacLocal(transaction, removed.getKey(), removed.getValue()); } } } private void removeUcastMacLocal(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, final List macList) { + final DataObjectIdentifier instanceIdentifier, final List macList) { final var op = ops(); for (LocalUcastMacs mac: macList) { @@ -99,12 +95,12 @@ public class UcastMacsLocalRemoveCommand } @Override - public List> getLogicalSwitchDependencies(final LocalUcastMacs data) { - return List.of(((DataObjectIdentifier) data.getLogicalSwitchRef().getValue()).toLegacy()); + public List> getLogicalSwitchDependencies(final LocalUcastMacs data) { + return List.of((DataObjectIdentifier) data.getLogicalSwitchRef().getValue()); } @Override - public List> getTerminationPointDependencies(final LocalUcastMacs data) { + public List> getTerminationPointDependencies(final LocalUcastMacs data) { return List.of(); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsLocalUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsLocalUpdateCommand.java index fb98ca57c..60b752a27 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsLocalUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsLocalUpdateCommand.java @@ -10,7 +10,6 @@ package org.opendaylight.ovsdb.hwvtepsouthbound.transact; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; @@ -27,7 +26,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,18 +40,16 @@ public class UcastMacsLocalUpdateCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> updateds = - extractUpdated(getChanges(),LocalUcastMacs.class); + var updateds = extractUpdated(getChanges(),LocalUcastMacs.class); if (!updateds.isEmpty()) { - for (Entry, List> updated: - updateds.entrySet()) { + for (var updated: updateds.entrySet()) { updateUcastMacsLocal(transaction, updated.getKey(), updated.getValue()); } } } private void updateUcastMacsLocal(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, final List localUcastMacs) { + final DataObjectIdentifier instanceIdentifier, final List localUcastMacs) { final var op = ops(); for (LocalUcastMacs localUcastMac: localUcastMacs) { @@ -88,8 +84,8 @@ public class UcastMacsLocalUpdateCommand private void setLogicalSwitch(final UcastMacsLocal ucastMacsLocal, final LocalUcastMacs inputMac) { if (inputMac.getLogicalSwitchRef() != null) { @SuppressWarnings("unchecked") - InstanceIdentifier lswitchIid = - ((DataObjectIdentifier) inputMac.getLogicalSwitchRef().getValue()).toLegacy(); + DataObjectIdentifier lswitchIid = + (DataObjectIdentifier) inputMac.getLogicalSwitchRef().getValue(); Optional operationalSwitchOptional = getOperationalState().getLogicalSwitches(lswitchIid); if (operationalSwitchOptional.isPresent()) { @@ -110,8 +106,8 @@ public class UcastMacsLocalUpdateCommand if (inputMac.getLocatorRef() != null) { UUID locatorUuid = null; @SuppressWarnings("unchecked") - InstanceIdentifier iid = - ((DataObjectIdentifier) inputMac.getLocatorRef().getValue()).toLegacy(); + DataObjectIdentifier iid = + (DataObjectIdentifier) inputMac.getLocatorRef().getValue(); //try to find locator in operational DS Optional operationalLocatorOptional = getOperationalState().getPhysicalLocatorAugmentation(iid); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsRemoteRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsRemoteRemoveCommand.java index d7d53430d..4111bc924 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsRemoteRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsRemoteRemoveCommand.java @@ -10,7 +10,6 @@ package org.opendaylight.ovsdb.hwvtepsouthbound.transact; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Objects; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepDeviceInfo; @@ -25,7 +24,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacsKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,22 +38,23 @@ public class UcastMacsRemoteRemoveCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> removeds = + Map, List> removeds = extractRemoved(getChanges(),RemoteUcastMacs.class); if (!removeds.isEmpty()) { - for (Entry, List> removed: - removeds.entrySet()) { + for (var removed : removeds.entrySet()) { onConfigUpdate(transaction, removed.getKey(), removed.getValue()); } } } public void onConfigUpdate(final TransactionBuilder transaction, - final InstanceIdentifier nodeIid, + final DataObjectIdentifier nodeIid, final List macs) { for (RemoteUcastMacs mac : macs) { - InstanceIdentifier macKey = nodeIid.augmentation(HwvtepGlobalAugmentation.class) - .child(RemoteUcastMacs.class, mac.key()); + var macKey = nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteUcastMacs.class, mac.key()) + .build(); getDeviceInfo().clearConfigData(RemoteUcastMacs.class, macKey); onConfigUpdate(transaction, nodeIid, mac, macKey); } @@ -63,32 +62,33 @@ public class UcastMacsRemoteRemoveCommand @Override public void onConfigUpdate(final TransactionBuilder transaction, - final InstanceIdentifier nodeIid, + final DataObjectIdentifier nodeIid, final RemoteUcastMacs remoteMcastMac, - final InstanceIdentifier macKey, + final DataObjectIdentifier macKey, final Object... extraData) { processDependencies(EmptyDependencyGetter.INSTANCE, transaction, nodeIid, macKey, remoteMcastMac); } @Override public void doDeviceTransaction(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, + final DataObjectIdentifier instanceIdentifier, final RemoteUcastMacs mac, - final InstanceIdentifier macKey, + final DataObjectIdentifier macKey, final Object... extraData) { removeUcastMacRemote(transaction, instanceIdentifier, List.of(mac)); } private void removeUcastMacRemote(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, + final DataObjectIdentifier instanceIdentifier, final List macList) { - String nodeId = instanceIdentifier.firstKeyOf(Node.class).getNodeId().getValue(); + String nodeId = instanceIdentifier.getFirstKeyOf(Node.class).getNodeId().getValue(); final var op = ops(); for (RemoteUcastMacs mac: macList) { - final InstanceIdentifier macIid = - instanceIdentifier.augmentation(HwvtepGlobalAugmentation.class) - .child(RemoteUcastMacs.class, mac.key()); + final var macIid = instanceIdentifier.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteUcastMacs.class, mac.key()) + .build(); HwvtepDeviceInfo.DeviceData deviceData = getDeviceOpData(RemoteUcastMacs.class, macIid); UcastMacsRemote ucastMacsRemote = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), UcastMacsRemote.class, null); @@ -142,9 +142,9 @@ public class UcastMacsRemoteRemoveCommand public void onSuccess(final TransactionBuilder tx) { for (MdsalUpdate mdsalUpdate : updates) { RemoteUcastMacs mac = (RemoteUcastMacs) mdsalUpdate.getNewData(); - InstanceIdentifier macIid = mdsalUpdate.getKey(); + DataObjectIdentifier macIid = mdsalUpdate.getKey(); getDeviceInfo().removeRemoteUcast( - ((DataObjectIdentifier) mac.getLogicalSwitchRef().getValue()).toLegacy(), macIid); + ((DataObjectIdentifier) mac.getLogicalSwitchRef().getValue()), macIid); } getDeviceInfo().onOperDataAvailable(); } @@ -155,7 +155,7 @@ public class UcastMacsRemoteRemoveCommand } @Override - protected String getKeyStr(final InstanceIdentifier iid) { - return getLsKeyStr(iid.firstKeyOf(RemoteUcastMacs.class).getLogicalSwitchRef().getValue()); + protected String getKeyStr(final DataObjectIdentifier iid) { + return getLsKeyStr(iid.getFirstKeyOf(RemoteUcastMacs.class).getLogicalSwitchRef().getValue()); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsRemoteUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsRemoteUpdateCommand.java index f4ccf48fb..0d6a4d592 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsRemoteUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UcastMacsRemoteUpdateCommand.java @@ -10,7 +10,6 @@ package org.opendaylight.ovsdb.hwvtepsouthbound.transact; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Objects; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepDeviceInfo; @@ -26,7 +25,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,26 +40,26 @@ public class UcastMacsRemoteUpdateCommand @Override public void execute(final TransactionBuilder transaction) { - Map, List> updateds = + Map, List> updateds = extractUpdated(getChanges(),RemoteUcastMacs.class); if (!updateds.isEmpty()) { - for (Entry, List> updated: - updateds.entrySet()) { + for (var updated : updateds.entrySet()) { updateUcastMacsRemote(transaction, updated.getKey(), updated.getValue()); } } } private void updateUcastMacsRemote(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, + final DataObjectIdentifier instanceIdentifier, final List remoteUcastMacs) { if (remoteUcastMacs == null) { return; } for (RemoteUcastMacs remoteUcastMac : remoteUcastMacs) { - InstanceIdentifier macIid = - instanceIdentifier.augmentation(HwvtepGlobalAugmentation.class) - .child(RemoteUcastMacs.class, remoteUcastMac.key()); + var macIid = instanceIdentifier.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteUcastMacs.class, remoteUcastMac.key()) + .build(); getDeviceInfo().updateConfigData(RemoteUcastMacs.class, macIid, remoteUcastMac); onConfigUpdate(transaction, instanceIdentifier, remoteUcastMac, null); } @@ -69,20 +67,21 @@ public class UcastMacsRemoteUpdateCommand @Override public void onConfigUpdate(final TransactionBuilder transaction, - final InstanceIdentifier nodeIid, + final DataObjectIdentifier nodeIid, final RemoteUcastMacs remoteUcastMacs, - final InstanceIdentifier macKey, + final DataObjectIdentifier macKey, final Object... extraData) { - InstanceIdentifier macIid = nodeIid.augmentation(HwvtepGlobalAugmentation.class) - .child(RemoteUcastMacs.class, remoteUcastMacs.key()); - processDependencies(UCAST_MAC_DATA_VALIDATOR, transaction, nodeIid, macIid, remoteUcastMacs); + processDependencies(UCAST_MAC_DATA_VALIDATOR, transaction, nodeIid, nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteUcastMacs.class, remoteUcastMacs.key()) + .build(), remoteUcastMacs); } @Override public void doDeviceTransaction(final TransactionBuilder transaction, - final InstanceIdentifier instanceIdentifier, + final DataObjectIdentifier instanceIdentifier, final RemoteUcastMacs remoteUcastMac, - final InstanceIdentifier macKey, + final DataObjectIdentifier macKey, final Object... extraData) { LOG.debug("DoDeviceTransaction remoteUcastMacs, mac address: {}", remoteUcastMac.getMacEntryKey().getValue()); updateConfigData(RemoteUcastMacs.class, macKey, remoteUcastMac); @@ -135,8 +134,8 @@ public class UcastMacsRemoteUpdateCommand final RemoteUcastMacs inputMac) { if (inputMac.getLogicalSwitchRef() != null) { @SuppressWarnings("unchecked") - InstanceIdentifier lswitchIid = - ((DataObjectIdentifier) inputMac.getLogicalSwitchRef().getValue()).toLegacy(); + DataObjectIdentifier lswitchIid = + (DataObjectIdentifier) inputMac.getLogicalSwitchRef().getValue(); UUID logicalSwitchUUID = TransactUtils.getLogicalSwitchUUID(transaction, getOperationalState(), lswitchIid); if (logicalSwitchUUID != null) { ucastMacsRemote.setLogicalSwitch(TransactUtils.getLogicalSwitchUUID(transaction, getOperationalState(), @@ -150,8 +149,8 @@ public class UcastMacsRemoteUpdateCommand //get UUID by locatorRef if (inputMac.getLocatorRef() != null) { @SuppressWarnings("unchecked") - InstanceIdentifier iid = - ((DataObjectIdentifier) inputMac.getLocatorRef().getValue()).toLegacy(); + DataObjectIdentifier iid = + (DataObjectIdentifier) inputMac.getLocatorRef().getValue(); UUID locatorUuid = TransactUtils.createPhysicalLocator(transaction, getOperationalState(), iid); ucastMacsRemote.setLocator(locatorUuid); return locatorUuid; @@ -179,19 +178,19 @@ public class UcastMacsRemoteUpdateCommand static class UcastMacUnMetDependencyGetter extends UnMetDependencyGetter { @Override - public List> getLogicalSwitchDependencies(final RemoteUcastMacs data) { + public List> getLogicalSwitchDependencies(final RemoteUcastMacs data) { if (data == null) { return List.of(); } - return List.of(((DataObjectIdentifier) data.getLogicalSwitchRef().getValue()).toLegacy()); + return List.of((DataObjectIdentifier) data.getLogicalSwitchRef().getValue()); } @Override - public List> getTerminationPointDependencies(final RemoteUcastMacs data) { + public List> getTerminationPointDependencies(final RemoteUcastMacs data) { if (data == null) { return List.of(); } - return List.of(((DataObjectIdentifier) data.getLocatorRef().getValue()).toLegacy()); + return List.of((DataObjectIdentifier) data.getLocatorRef().getValue()); } } @@ -203,16 +202,16 @@ public class UcastMacsRemoteUpdateCommand @Override public void onSuccess(final TransactionBuilder tx) { - for (MdsalUpdate mdsalUpdate : updates) { + for (var mdsalUpdate : updates) { RemoteUcastMacs mac = (RemoteUcastMacs) mdsalUpdate.getNewData(); - InstanceIdentifier macIid = mdsalUpdate.getKey(); + var macIid = mdsalUpdate.getKey(); getDeviceInfo().updateRemoteUcast( - ((DataObjectIdentifier) mac.getLogicalSwitchRef().getValue()).toLegacy(), macIid, mac); + (DataObjectIdentifier) mac.getLogicalSwitchRef().getValue(), macIid, mac); } } @Override - protected String getKeyStr(final InstanceIdentifier iid) { - return getLsKeyStr(iid.firstKeyOf(RemoteUcastMacs.class).getLogicalSwitchRef().getValue()); + protected String getKeyStr(final DataObjectIdentifier iid) { + return getLsKeyStr(iid.getFirstKeyOf(RemoteUcastMacs.class).getLogicalSwitchRef().getValue()); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetter.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetter.java index 4c646b073..e35844314 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetter.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetter.java @@ -20,8 +20,8 @@ import org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepSouthboundUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yangtools.binding.DataObject; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** * Utility class to retrieve the unmet dependencies (config/operational) of the given object. @@ -39,7 +39,7 @@ public abstract class UnMetDependencyGetter> { * @param data The data object * @return The depenencies */ - public Map>, List> getInTransitDependencies( + public Map>, List> getInTransitDependencies( HwvtepOperationalState opState, T data) { return inTransitDependencyGetter.retrieveUnMetDependencies(opState, opState.getDeviceInfo(), data); } @@ -52,25 +52,25 @@ public abstract class UnMetDependencyGetter> { * @param data The data object * @return the depenencies */ - public Map>, List> getUnMetConfigDependencies( + public Map>, List> getUnMetConfigDependencies( HwvtepOperationalState opState, T data) { return configDependencyGetter.retrieveUnMetDependencies(opState, opState.getDeviceInfo(), data); } abstract class DependencyGetter { - Map>, List> retrieveUnMetDependencies( + Map>, List> retrieveUnMetDependencies( HwvtepOperationalState opState, HwvtepDeviceInfo deviceInfo, T data) { - Map>, List> result = new HashMap<>(); - Map>, List>> allKeys = new HashMap<>(); + Map>, List> result = new HashMap<>(); + Map>, List>> allKeys = new HashMap<>(); allKeys.put(LogicalSwitches.class, getLogicalSwitchDependencies(data)); allKeys.put(TerminationPoint.class, getTerminationPointDependencies(data)); - for (Entry>, List>> entry : allKeys.entrySet()) { + for (Entry>, List>> entry : allKeys.entrySet()) { Class> cls = entry.getKey(); - List> keysToCheck = entry.getValue(); - for (InstanceIdentifier key : keysToCheck) { + List> keysToCheck = entry.getValue(); + for (DataObjectIdentifier key : keysToCheck) { if (!isDependencyMet(opState, deviceInfo, cls, key)) { result = addToResultMap(result, cls, key); } @@ -79,9 +79,9 @@ public abstract class UnMetDependencyGetter> { return result; } - Map>, List> addToResultMap( - Map>, List> result, - Class> cls, InstanceIdentifier key) { + Map>, List> addToResultMap( + Map>, List> result, + Class> cls, DataObjectIdentifier key) { if (null == result) { result = new HashMap<>(); } @@ -93,19 +93,20 @@ public abstract class UnMetDependencyGetter> { } abstract boolean isDependencyMet(HwvtepOperationalState opState, HwvtepDeviceInfo deviceInfo, - Class> cls, InstanceIdentifier key); + Class> cls, DataObjectIdentifier key); } class ConfigDependencyGetter extends DependencyGetter { @Override boolean isDependencyMet(HwvtepOperationalState opState, HwvtepDeviceInfo deviceInfo, - Class> cls, InstanceIdentifier key) { + Class> cls, + DataObjectIdentifier key) { return deviceInfo.isConfigDataAvailable(cls, key) || isConfigDataAvailable(opState, cls, key); } boolean isConfigDataAvailable(HwvtepOperationalState opState, Class> cls, - InstanceIdentifier key) { + DataObjectIdentifier key) { DataBroker db = opState.getConnectionInstance().getDataBroker(); Optional data = HwvtepSouthboundUtil.readNode(db, LogicalDatastoreType.CONFIGURATION, key); if (data.isPresent()) { @@ -119,12 +120,12 @@ public abstract class UnMetDependencyGetter> { class InTransitDependencyGetter extends DependencyGetter { @Override boolean isDependencyMet(HwvtepOperationalState opState, HwvtepDeviceInfo deviceInfo, - Class> cls, InstanceIdentifier key) { + Class> cls, DataObjectIdentifier key) { return opState.isKeyPartOfCurrentTx(cls, key) || !deviceInfo.isKeyInTransit(cls, key); } } - public abstract List> getLogicalSwitchDependencies(T data); + public abstract List> getLogicalSwitchDependencies(T data); - public abstract List> getTerminationPointDependencies(T data); + public abstract List> getTerminationPointDependencies(T data); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/AbstractTransactionCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/AbstractTransactionCommand.java index e80c9aac7..356c853ff 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/AbstractTransactionCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/AbstractTransactionCommand.java @@ -20,19 +20,19 @@ import org.opendaylight.ovsdb.lib.schema.DatabaseSchema; import org.opendaylight.ovsdb.utils.mdsal.utils.TransactionType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.ConnectionInfo; import org.opendaylight.yangtools.binding.DataObject; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class AbstractTransactionCommand implements TransactionCommand { - private static final Logger LOG = LoggerFactory.getLogger(AbstractTransactionCommand.class); + private final TableUpdates updates; private final DatabaseSchema dbSchema; protected final HwvtepConnectionInstance key; - protected Set>, InstanceIdentifier>> addedKeys = new HashSet<>(); - protected Set>, InstanceIdentifier>> deletedKeys = new HashSet<>(); + protected Set>, DataObjectIdentifier>> addedKeys = new HashSet<>(); + protected Set>, DataObjectIdentifier>> deletedKeys = new HashSet<>(); protected HwvtepDeviceInfo deviceInfo; @@ -69,20 +69,20 @@ public abstract class AbstractTransactionCommand implement deviceInfo.addToDeviceUpdate(transactionType, element); } - public void clearDeviceOpUUID(Class> cls, InstanceIdentifier iid, UUID uuid) { + public void clearDeviceOpUUID(Class> cls, DataObjectIdentifier iid, UUID uuid) { deviceInfo.clearDeviceOperUUID(cls, iid, uuid); } - public void addToDeleteTx(ReadWriteTransaction tx, Class> cls, InstanceIdentifier iid, + public void addToDeleteTx(ReadWriteTransaction tx, Class> cls, DataObjectIdentifier iid, UUID uuid) { if (deviceInfo.isAvailableInOperDs(cls, iid)) { - tx.delete(LogicalDatastoreType.OPERATIONAL, iid.toIdentifier()); + tx.delete(LogicalDatastoreType.OPERATIONAL, iid); } deletedKeys.add(Pair.of(cls, iid)); clearDeviceOpUUID(cls, iid, uuid); } - public void addToUpdateTx(Class> cls, InstanceIdentifier iid, UUID uuid, + public void addToUpdateTx(Class> cls, DataObjectIdentifier iid, UUID uuid, Object southboundData) { addedKeys.add(Pair.of(cls, iid)); deviceInfo.updateDeviceOperData(cls, iid, uuid, southboundData); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/GlobalUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/GlobalUpdateCommand.java index 05737239e..f2e9b4198 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/GlobalUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/GlobalUpdateCommand.java @@ -5,7 +5,6 @@ * 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.ovsdb.hwvtepsouthbound.transactions.md; import java.util.Map; @@ -27,8 +26,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,7 +43,7 @@ public final class GlobalUpdateCommand extends AbstractTransactionCommand { @Override public void execute(ReadWriteTransaction transaction) { for (Global hwvtepGlobal : updatedHwvtepRows.values()) { - final InstanceIdentifier nodePath = getInstanceIdentifier(hwvtepGlobal); + final var nodePath = getInstanceIdentifier(hwvtepGlobal); LOG.trace("Processing hardware_vtep update for nodePath: {}", nodePath); HwvtepGlobalAugmentationBuilder hwvtepGlobalBuilder = new HwvtepGlobalAugmentationBuilder(); @@ -62,15 +60,15 @@ public final class GlobalUpdateCommand extends AbstractTransactionCommand { nodeBuilder.setNodeId(getNodeId(hwvtepGlobal)); HwvtepGlobalAugmentation hwvtepGlobalAugmentation = hwvtepGlobalBuilder.build(); nodeBuilder.addAugmentation(hwvtepGlobalAugmentation); - transaction.merge(LogicalDatastoreType.OPERATIONAL, nodePath.toIdentifier(), nodeBuilder.build()); + transaction.merge(LogicalDatastoreType.OPERATIONAL, nodePath, nodeBuilder.build()); getOvsdbConnectionInstance().setHwvtepGlobalAugmentation(hwvtepGlobalAugmentation); addToDeviceUpdate(TransactionType.ADD, hwvtepGlobal); LOG.info("DEVICE - {} {}", TransactionType.ADD, hwvtepGlobal); } } - private InstanceIdentifier getInstanceIdentifier(Global hwvtep) { - InstanceIdentifier iid = getOvsdbConnectionInstance().getInstanceIdentifier(); + private DataObjectIdentifier getInstanceIdentifier(Global hwvtep) { + var iid = getOvsdbConnectionInstance().getInstanceIdentifier(); if (iid == null) { LOG.warn("InstanceIdentifier was null when it shouldn't be"); /* This can be case for switch initiated connection */ @@ -81,7 +79,6 @@ public final class GlobalUpdateCommand extends AbstractTransactionCommand { } private NodeId getNodeId(Global hwvtep) { - NodeKey nodeKey = getInstanceIdentifier(hwvtep).firstKeyOf(Node.class); - return nodeKey.getNodeId(); + return getInstanceIdentifier(hwvtep).getFirstKeyOf(Node.class).getNodeId(); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepGlobalRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepGlobalRemoveCommand.java index 59bc859f0..5cb4757d5 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepGlobalRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepGlobalRemoveCommand.java @@ -5,7 +5,6 @@ * 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.ovsdb.hwvtepsouthbound.transactions.md; import com.google.common.util.concurrent.FluentFuture; @@ -24,7 +23,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.SwitchesKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,14 +30,14 @@ public class HwvtepGlobalRemoveCommand extends AbstractTransactionCommand { private static final Logger LOG = LoggerFactory.getLogger(HwvtepGlobalRemoveCommand.class); private static final long ONE_CONNECTED_MANAGER = 1; private static final long ONE_ACTIVE_CONNECTION_IN_PASSIVE_MODE = 1; - private final InstanceIdentifier nodeInstanceIdentifier; + private final DataObjectIdentifier nodeInstanceIdentifier; public HwvtepGlobalRemoveCommand(HwvtepConnectionInstance key, TableUpdates updates, DatabaseSchema dbSchema) { super(key, updates, dbSchema); this.nodeInstanceIdentifier = key.getInstanceIdentifier(); } - public HwvtepGlobalRemoveCommand(InstanceIdentifier nodeInstanceIdentifier) { + public HwvtepGlobalRemoveCommand(DataObjectIdentifier nodeInstanceIdentifier) { super(null, null, null); this.nodeInstanceIdentifier = nodeInstanceIdentifier; } @@ -47,7 +45,7 @@ public class HwvtepGlobalRemoveCommand extends AbstractTransactionCommand { @Override public void execute(ReadWriteTransaction transaction) { FluentFuture> hwvtepGlobalFuture = transaction.read( - LogicalDatastoreType.OPERATIONAL, nodeInstanceIdentifier.toIdentifier()); + LogicalDatastoreType.OPERATIONAL, nodeInstanceIdentifier); try { Optional hwvtepGlobalOptional = hwvtepGlobalFuture.get(); if (hwvtepGlobalOptional.isPresent()) { @@ -68,7 +66,7 @@ public class HwvtepGlobalRemoveCommand extends AbstractTransactionCommand { } else { LOG.warn("{} had no HwvtepGlobalAugmentation", hwvtepNode.getNodeId().getValue()); } - transaction.delete(LogicalDatastoreType.OPERATIONAL, nodeInstanceIdentifier.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, nodeInstanceIdentifier); } else { LOG.debug("Other southbound plugin instances in cluster are connected to the device," + " not deleting OvsdbNode form data store."); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalRouterRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalRouterRemoveCommand.java index f9791ed74..0e159e4a4 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalRouterRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalRouterRemoveCommand.java @@ -20,7 +20,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepNodeName; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalRouters; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalRoutersKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,10 +39,11 @@ public class HwvtepLogicalRouterRemoveCommand extends AbstractTransactionCommand for (LogicalRouter router : deletedLRRows) { HwvtepNodeName routerNode = new HwvtepNodeName(router.getName()); LOG.debug("Clearing device operational data for logical router {}", routerNode); - InstanceIdentifier routerIid = getOvsdbConnectionInstance().getInstanceIdentifier() + var routerIid = getOvsdbConnectionInstance().getInstanceIdentifier().toBuilder() .augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalRouters.class, new LogicalRoutersKey(routerNode)); - transaction.delete(LogicalDatastoreType.OPERATIONAL, routerIid.toIdentifier()); + .child(LogicalRouters.class, new LogicalRoutersKey(routerNode)) + .build(); + transaction.delete(LogicalDatastoreType.OPERATIONAL, routerIid); getOvsdbConnectionInstance().getDeviceInfo().clearDeviceOperData(LogicalRouters.class, routerIid); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalRouterUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalRouterUpdateCommand.java index 600a8e9c8..53923bb0f 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalRouterUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalRouterUpdateCommand.java @@ -5,7 +5,6 @@ * 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.ovsdb.hwvtepsouthbound.transactions.md; import java.util.ArrayList; @@ -39,7 +38,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalRouters; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalRoutersBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalRoutersKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.logical.router.attributes.AclBindings; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.logical.router.attributes.AclBindingsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.logical.router.attributes.AclBindingsKey; @@ -50,7 +48,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -75,14 +72,15 @@ public final class HwvtepLogicalRouterUpdateCommand extends AbstractTransactionC } private void updateLogicalRouter(ReadWriteTransaction transaction, final LogicalRouter router) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); Optional connection = HwvtepSouthboundUtil.readNode(transaction, connectionIId); if (connection.isPresent()) { Node connectionNode = buildConnectionNode(router); - transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId.toIdentifier(), connectionNode); - InstanceIdentifier routerIid = getOvsdbConnectionInstance().getInstanceIdentifier() + transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode); + var routerIid = getOvsdbConnectionInstance().getInstanceIdentifier().toBuilder() .augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalRouters.class, new LogicalRoutersKey(new HwvtepNodeName(router.getName()))); + .child(LogicalRouters.class, new LogicalRoutersKey(new HwvtepNodeName(router.getName()))) + .build(); getOvsdbConnectionInstance().getDeviceInfo().updateDeviceOperData(LogicalRouters.class, routerIid, router.getUuid(), router); } @@ -137,9 +135,8 @@ public final class HwvtepLogicalRouterUpdateCommand extends AbstractTransactionC UUID aclUUID = entry.getValue(); ACL acl = (ACL)getOvsdbConnectionInstance().getDeviceInfo().getDeviceOperData(Acls.class, aclUUID); if (acl != null) { - InstanceIdentifier aclIid = - HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), acl); - aclBindingBuiler.setAclRef(new HwvtepAclRef(aclIid.toIdentifier())); + var aclIid = HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), acl); + aclBindingBuiler.setAclRef(new HwvtepAclRef(aclIid)); aclBindingBuiler.setRouterInterface(new IpPrefix(new Ipv4Prefix(entry.getKey()))); bindings.add(aclBindingBuiler.build()); } @@ -163,9 +160,9 @@ public final class HwvtepLogicalRouterUpdateCommand extends AbstractTransactionC LogicalSwitch logicalSwitch = getOvsdbConnectionInstance().getDeviceInfo().getLogicalSwitch(lsUUID); if (logicalSwitch != null) { switchBindingBuiler.setDestinationAddress(new IpPrefix(new Ipv4Prefix(entry.getKey()))); - InstanceIdentifier switchIid = + var switchIid = HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), logicalSwitch); - switchBindingBuiler.setLogicalSwitchRef(new HwvtepLogicalSwitchRef(switchIid.toIdentifier())); + switchBindingBuiler.setLogicalSwitchRef(new HwvtepLogicalSwitchRef(switchIid)); bindings.add(switchBindingBuiler.build()); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalSwitchRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalSwitchRemoveCommand.java index edfe7fc21..37b0874f5 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalSwitchRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalSwitchRemoveCommand.java @@ -5,7 +5,6 @@ * 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.ovsdb.hwvtepsouthbound.transactions.md; import java.util.Collection; @@ -20,10 +19,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepNodeName; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitchesKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class HwvtepLogicalSwitchRemoveCommand extends AbstractTransactionCommand { - public HwvtepLogicalSwitchRemoveCommand(HwvtepConnectionInstance key, TableUpdates updates, DatabaseSchema dbSchema) { super(key, updates, dbSchema); @@ -34,13 +31,13 @@ public class HwvtepLogicalSwitchRemoveCommand extends AbstractTransactionCommand Collection deletedLSRows = TyperUtils.extractRowsRemoved(LogicalSwitch.class, getUpdates(), getDbSchema()).values(); for (LogicalSwitch logicalSwitch : deletedLSRows) { - InstanceIdentifier switchIid = getOvsdbConnectionInstance().getInstanceIdentifier() + var switchIid = getOvsdbConnectionInstance().getInstanceIdentifier().toBuilder() .augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitch.getName()))); + .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitch.getName()))) + .build(); // TODO Delete any references addToDeleteTx(transaction, LogicalSwitches.class, switchIid, logicalSwitch.getUuid()); addToDeviceUpdate(TransactionType.DELETE, logicalSwitch); } } - } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalSwitchUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalSwitchUpdateCommand.java index 18bbb4471..6d5a3817c 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalSwitchUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepLogicalSwitchUpdateCommand.java @@ -32,7 +32,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,14 +54,15 @@ public final class HwvtepLogicalSwitchUpdateCommand extends AbstractTransactionC } private void updateLogicalSwitch(ReadWriteTransaction transaction, LogicalSwitch logicalSwitch) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); Optional connection = HwvtepSouthboundUtil.readNode(transaction, connectionIId); if (connection.isPresent()) { Node connectionNode = buildConnectionNode(logicalSwitch); - transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId.toIdentifier(), connectionNode); - InstanceIdentifier switchIid = getOvsdbConnectionInstance().getInstanceIdentifier() - .augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitch.getName()))); + transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode); + var switchIid = getOvsdbConnectionInstance().getInstanceIdentifier().toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitch.getName()))) + .build(); addToUpdateTx(LogicalSwitches.class, switchIid, logicalSwitch.getUuid(), logicalSwitch); addToDeviceUpdate(TransactionType.ADD, logicalSwitch); // TODO: Delete entries that are no longer needed diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMacEntriesRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMacEntriesRemoveCommand.java index d4c465108..c60105b74 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMacEntriesRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMacEntriesRemoveCommand.java @@ -30,25 +30,21 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalMcastMacsKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalUcastMacs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalUcastMacsKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacsKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacsKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HwvtepMacEntriesRemoveCommand extends AbstractTransactionCommand { - private static final Logger LOG = LoggerFactory.getLogger(HwvtepMacEntriesRemoveCommand.class); public HwvtepMacEntriesRemoveCommand(HwvtepConnectionInstance key, TableUpdates updates, DatabaseSchema dbSchema) { super(key, updates, dbSchema); } - @Override public void execute(ReadWriteTransaction transaction) { removeUcastMacsLocal(transaction); @@ -66,10 +62,12 @@ public class HwvtepMacEntriesRemoveCommand extends AbstractTransactionCommand { LOG.info("DEVICE - {} LocalUcastMacs for Node {} - {}", TransactionType.DELETE, getOvsdbConnectionInstance().getInstanceIdentifier().firstKeyOf(Node.class) .getNodeId().getValue(), lum.getMac()); - InstanceIdentifier lumId = getOvsdbConnectionInstance().getInstanceIdentifier() - .augmentation(HwvtepGlobalAugmentation.class).child(LocalUcastMacs.class, - new LocalUcastMacsKey(getLogicalSwitchRef(lum.getLogicalSwitchColumn().getData()), - getMacAddress(lum.getMac()))); + var lumId = getOvsdbConnectionInstance().getInstanceIdentifier().toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LocalUcastMacs.class, + new LocalUcastMacsKey(getLogicalSwitchRef(lum.getLogicalSwitchColumn().getData()), + getMacAddress(lum.getMac()))) + .build(); addToDeleteTx(transaction, LocalUcastMacs.class, lumId, lum.getUuid()); } else { LOG.debug("Failed to delete UcastMacLocal entry {}", lum.getUuid()); @@ -83,10 +81,12 @@ public class HwvtepMacEntriesRemoveCommand extends AbstractTransactionCommand { for (UcastMacsRemote rum : deletedUMRRows) { if (rum.getMac() != null && rum.getLogicalSwitchColumn() != null && rum.getLogicalSwitchColumn().getData() != null) { - InstanceIdentifier rumId = getOvsdbConnectionInstance().getInstanceIdentifier() - .augmentation(HwvtepGlobalAugmentation.class).child(RemoteUcastMacs.class, - new RemoteUcastMacsKey(getLogicalSwitchRef(rum.getLogicalSwitchColumn().getData()), - getMacAddress(rum.getMac()))); + var rumId = getOvsdbConnectionInstance().getInstanceIdentifier().toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteUcastMacs.class, + new RemoteUcastMacsKey(getLogicalSwitchRef(rum.getLogicalSwitchColumn().getData()), + getMacAddress(rum.getMac()))) + .build(); addToDeleteTx(transaction, RemoteUcastMacs.class, rumId, rum.getUuid()); } else { LOG.debug("Failed to delete UcastMacRemote entry {}", rum.getUuid()); @@ -100,11 +100,12 @@ public class HwvtepMacEntriesRemoveCommand extends AbstractTransactionCommand { for (McastMacsLocal lmm : deletedLMMRows) { if (lmm.getMac() != null && lmm.getLogicalSwitchColumn() != null && lmm.getLogicalSwitchColumn().getData() != null) { - InstanceIdentifier lumId = getOvsdbConnectionInstance().getInstanceIdentifier() + var lumId = getOvsdbConnectionInstance().getInstanceIdentifier().toBuilder() .augmentation(HwvtepGlobalAugmentation.class) .child(LocalMcastMacs.class, - new LocalMcastMacsKey(getLogicalSwitchRef(lmm.getLogicalSwitchColumn().getData()), - getMacAddress(lmm.getMac()))); + new LocalMcastMacsKey(getLogicalSwitchRef(lmm.getLogicalSwitchColumn().getData()), + getMacAddress(lmm.getMac()))) + .build(); addToDeleteTx(transaction, LocalMcastMacs.class, lumId, lmm.getUuid()); } else { LOG.debug("Failed to delete McastMacLocal entry {}", lmm.getUuid()); @@ -118,11 +119,12 @@ public class HwvtepMacEntriesRemoveCommand extends AbstractTransactionCommand { for (McastMacsRemote rmm : deletedMMRRows) { if (rmm.getMac() != null && rmm.getLogicalSwitchColumn() != null && rmm.getLogicalSwitchColumn().getData() != null) { - InstanceIdentifier lumId = getOvsdbConnectionInstance().getInstanceIdentifier() + var lumId = getOvsdbConnectionInstance().getInstanceIdentifier().toBuilder() .augmentation(HwvtepGlobalAugmentation.class) .child(RemoteMcastMacs.class, - new RemoteMcastMacsKey(getLogicalSwitchRef(rmm.getLogicalSwitchColumn().getData()), - getMacAddress(rmm.getMac()))); + new RemoteMcastMacsKey(getLogicalSwitchRef(rmm.getLogicalSwitchColumn().getData()), + getMacAddress(rmm.getMac()))) + .build(); addToDeleteTx(transaction, RemoteMcastMacs.class, lumId, rmm.getUuid()); getOvsdbConnectionInstance().getDeviceInfo().clearDeviceOperData(RemoteMcastMacs.class, lumId); } else { @@ -134,9 +136,8 @@ public class HwvtepMacEntriesRemoveCommand extends AbstractTransactionCommand { private HwvtepLogicalSwitchRef getLogicalSwitchRef(UUID switchUUID) { LogicalSwitch logicalSwitch = getOvsdbConnectionInstance().getDeviceInfo().getLogicalSwitch(switchUUID); if (logicalSwitch != null) { - InstanceIdentifier switchIid = - HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), logicalSwitch); - return new HwvtepLogicalSwitchRef(switchIid.toIdentifier()); + return new HwvtepLogicalSwitchRef(HwvtepSouthboundMapper.createInstanceIdentifier( + getOvsdbConnectionInstance(), logicalSwitch)); } LOG.debug("Failed to get LogicalSwitch {}", switchUUID); LOG.trace("Available LogicalSwitches: {}", diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepManagerRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepManagerRemoveCommand.java index e0928a428..a22091f4d 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepManagerRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepManagerRemoveCommand.java @@ -20,7 +20,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types. import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.Managers; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.ManagersKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,11 +35,12 @@ public class HwvtepManagerRemoveCommand extends AbstractTransactionCommand { Collection deletedManagerRows = TyperUtils.extractRowsRemoved(Manager.class, getUpdates(),getDbSchema()).values(); for (Manager manager : deletedManagerRows) { - InstanceIdentifier managerIid = getOvsdbConnectionInstance().getInstanceIdentifier() - .augmentation(HwvtepGlobalAugmentation.class) - .child(Managers.class, new ManagersKey(new Uri(manager.getTargetColumn().getData()))); + var managerIid = getOvsdbConnectionInstance().getInstanceIdentifier().toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(Managers.class, new ManagersKey(new Uri(manager.getTargetColumn().getData()))) + .build(); // TODO Delete any references - transaction.delete(LogicalDatastoreType.OPERATIONAL, managerIid.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, managerIid); addToDeviceUpdate(TransactionType.DELETE, manager); LOG.info("DEVICE - {} {}", TransactionType.DELETE, manager); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepManagerUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepManagerUpdateCommand.java index 9b28155ca..d17454bb6 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepManagerUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepManagerUpdateCommand.java @@ -30,7 +30,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -54,12 +53,12 @@ public final class HwvtepManagerUpdateCommand extends AbstractTransactionCommand } private void updateManager(ReadWriteTransaction transaction, Manager manager) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); Optional connection = HwvtepSouthboundUtil.readNode(transaction, connectionIId); if (connection.isPresent()) { LOG.debug("Connection {} is present", connection.orElseThrow()); Node connectionNode = buildConnectionNode(manager); - transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId.toIdentifier(), connectionNode); + transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode); addToDeviceUpdate(TransactionType.ADD, manager); LOG.info("DEVICE - {} {}", TransactionType.ADD, manager); // TODO: Delete entries that are no longer needed diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMcastMacsLocalUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMcastMacsLocalUpdateCommand.java index 9f29b2016..eed38980b 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMcastMacsLocalUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMcastMacsLocalUpdateCommand.java @@ -32,16 +32,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalLocatorRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalMcastMacs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalMcastMacsBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSet; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSetBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public final class HwvtepMcastMacsLocalUpdateCommand extends AbstractTransactionCommand { - private final Map updatedMMacsLocalRows; private final Map updatedPLocSetRows; private final Map updatedPLocRows; @@ -62,22 +57,24 @@ public final class HwvtepMcastMacsLocalUpdateCommand extends AbstractTransaction } private void updateData(ReadWriteTransaction transaction, McastMacsLocal macLocal) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); // Ensure the node exists - transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId.toIdentifier(), + transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, new NodeBuilder().setNodeId(getOvsdbConnectionInstance().getNodeId()).build()); final LocalMcastMacs mac = buildLocalMcastMacs(macLocal); - final InstanceIdentifier macIid = connectionIId.augmentation(HwvtepGlobalAugmentation.class) - .child(LocalMcastMacs.class, mac.key()); + final var macIid = connectionIId.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LocalMcastMacs.class, mac.key()) + .build(); // Merge update, relying on automatic lifecycle... - transaction.merge(LogicalDatastoreType.OPERATIONAL, macIid.toIdentifier(), mac); + transaction.merge(LogicalDatastoreType.OPERATIONAL, macIid, mac); if (mac.getLocatorSet() == null) { // ... but delete locator set if it is empty // FIXME: can we use .put() of instead of merge/delete? - transaction.delete(LogicalDatastoreType.OPERATIONAL, macIid.child(LocatorSet.class).toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, macIid.toBuilder().child(LocatorSet.class).build()); } } @@ -101,9 +98,9 @@ public final class HwvtepMcastMacsLocalUpdateCommand extends AbstractTransaction UUID lsUUID = macLocal.getLogicalSwitchColumn().getData(); LogicalSwitch logicalSwitch = getOvsdbConnectionInstance().getDeviceInfo().getLogicalSwitch(lsUUID); if (logicalSwitch != null) { - InstanceIdentifier switchIid = + var switchIid = HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), logicalSwitch); - macLocalBuilder.setLogicalSwitchRef(new HwvtepLogicalSwitchRef(switchIid.toIdentifier())); + macLocalBuilder.setLogicalSwitchRef(new HwvtepLogicalSwitchRef(switchIid)); } } } @@ -127,10 +124,10 @@ public final class HwvtepMcastMacsLocalUpdateCommand extends AbstractTransaction if (locator == null) { locator = getOvsdbConnectionInstance().getDeviceInfo().getPhysicalLocator(locUUID); } - InstanceIdentifier tpIid = HwvtepSouthboundMapper.createInstanceIdentifier( + var tpIid = HwvtepSouthboundMapper.createInstanceIdentifier( getOvsdbConnectionInstance().getInstanceIdentifier(), locator); plsList.add(new LocatorSetBuilder() - .setLocatorRef(new HwvtepPhysicalLocatorRef(tpIid.toIdentifier())).build()); + .setLocatorRef(new HwvtepPhysicalLocatorRef(tpIid)).build()); } macLocalBuilder.setLocatorSet(plsList); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMcastMacsRemoteUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMcastMacsRemoteUpdateCommand.java index 9552596b6..80d1c51dc 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMcastMacsRemoteUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepMcastMacsRemoteUpdateCommand.java @@ -5,7 +5,6 @@ * 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.ovsdb.hwvtepsouthbound.transactions.md; import java.util.ArrayList; @@ -31,15 +30,11 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types. import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepLogicalSwitchRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalLocatorRef; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSet; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSetBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public final class HwvtepMcastMacsRemoteUpdateCommand extends AbstractTransactionCommand { private final Map updatedMMacsRemoteRows; @@ -62,24 +57,26 @@ public final class HwvtepMcastMacsRemoteUpdateCommand extends AbstractTransactio } private void updateData(ReadWriteTransaction transaction, McastMacsRemote macRemote) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); // Ensure the node exists - transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId.toIdentifier(), + transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, new NodeBuilder().setNodeId(getOvsdbConnectionInstance().getNodeId()).build()); // Prepare the update in internal structures final RemoteMcastMacs mac = buildRemoteMcastMacs(macRemote); - final InstanceIdentifier macIid = connectionIId.augmentation(HwvtepGlobalAugmentation.class) - .child(RemoteMcastMacs.class, mac.key()); + final var macIid = connectionIId.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteMcastMacs.class, mac.key()) + .build(); addToUpdateTx(RemoteMcastMacs.class, macIid, macRemote.getUuid(), macRemote); // Merge update, relying on automatic lifecycle... - transaction.merge(LogicalDatastoreType.OPERATIONAL, macIid.toIdentifier(), mac); + transaction.merge(LogicalDatastoreType.OPERATIONAL, macIid, mac); if (mac.getLocatorSet() == null) { // ... but delete locator set if it is empty // FIXME: can we use .put() of instead of merge/delete? - transaction.delete(LogicalDatastoreType.OPERATIONAL, macIid.child(LocatorSet.class).toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, macIid.toBuilder().child(LocatorSet.class).build()); } } @@ -103,9 +100,8 @@ public final class HwvtepMcastMacsRemoteUpdateCommand extends AbstractTransactio UUID lsUUID = macRemote.getLogicalSwitchColumn().getData(); LogicalSwitch logicalSwitch = getOvsdbConnectionInstance().getDeviceInfo().getLogicalSwitch(lsUUID); if (logicalSwitch != null) { - InstanceIdentifier switchIid = - HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), logicalSwitch); - macRemoteBuilder.setLogicalSwitchRef(new HwvtepLogicalSwitchRef(switchIid.toIdentifier())); + macRemoteBuilder.setLogicalSwitchRef(new HwvtepLogicalSwitchRef( + HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), logicalSwitch))); } } } @@ -129,10 +125,10 @@ public final class HwvtepMcastMacsRemoteUpdateCommand extends AbstractTransactio if (locator == null) { locator = getOvsdbConnectionInstance().getDeviceInfo().getPhysicalLocator(locUUID); } - InstanceIdentifier tpIid = HwvtepSouthboundMapper.createInstanceIdentifier( - getOvsdbConnectionInstance().getInstanceIdentifier(), locator); plsList.add(new LocatorSetBuilder() - .setLocatorRef(new HwvtepPhysicalLocatorRef(tpIid.toIdentifier())).build()); + .setLocatorRef(new HwvtepPhysicalLocatorRef(HwvtepSouthboundMapper.createInstanceIdentifier( + getOvsdbConnectionInstance().getInstanceIdentifier(), locator))) + .build()); } macRemoteBuilder.setLocatorSet(plsList); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalLocatorRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalLocatorRemoveCommand.java index 2fd4cff24..8da534ebe 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalLocatorRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalLocatorRemoveCommand.java @@ -5,7 +5,6 @@ * 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.ovsdb.hwvtepsouthbound.transactions.md; import java.util.Collection; @@ -16,12 +15,9 @@ import org.opendaylight.ovsdb.lib.message.TableUpdates; import org.opendaylight.ovsdb.lib.schema.DatabaseSchema; import org.opendaylight.ovsdb.lib.schema.typed.TyperUtils; import org.opendaylight.ovsdb.schema.hardwarevtep.PhysicalLocator; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class HwvtepPhysicalLocatorRemoveCommand extends AbstractTransactionCommand { - public HwvtepPhysicalLocatorRemoveCommand(HwvtepConnectionInstance key, TableUpdates updates, DatabaseSchema dbSchema) { super(key, updates, dbSchema); @@ -32,9 +28,8 @@ public class HwvtepPhysicalLocatorRemoveCommand extends AbstractTransactionComma Collection deletedPLRows = TyperUtils.extractRowsRemoved(PhysicalLocator.class, getUpdates(), getDbSchema()).values(); for (PhysicalLocator locator : deletedPLRows) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); - final InstanceIdentifier nodePath = HwvtepSouthboundMapper - .createInstanceIdentifier(connectionIId, locator); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var nodePath = HwvtepSouthboundMapper.createInstanceIdentifier(connectionIId, locator); addToDeleteTx(transaction, TerminationPoint.class, nodePath, locator.getUuid()); //TODO: Check if any cleanup is required } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalLocatorUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalLocatorUpdateCommand.java index 9aa23d2eb..529f4be49 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalLocatorUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalLocatorUpdateCommand.java @@ -8,7 +8,6 @@ package org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import org.opendaylight.mdsal.binding.api.ReadWriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; @@ -27,7 +26,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public final class HwvtepPhysicalLocatorUpdateCommand extends AbstractTransactionCommand { private final Map updatedPLocRows; @@ -42,7 +40,7 @@ public final class HwvtepPhysicalLocatorUpdateCommand extends AbstractTransactio @Override public void execute(ReadWriteTransaction transaction) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); if (updatedPLocRows.isEmpty()) { return; } @@ -53,16 +51,15 @@ public final class HwvtepPhysicalLocatorUpdateCommand extends AbstractTransactio } private void updateTerminationPoints(ReadWriteTransaction transaction, Node node) { - for (Entry locUpdate : updatedPLocRows.entrySet()) { + for (var locUpdate : updatedPLocRows.entrySet()) { PhysicalLocator locator = locUpdate.getValue(); - InstanceIdentifier nodeIid = HwvtepSouthboundMapper.createInstanceIdentifier(node.getNodeId()); + var nodeIid = HwvtepSouthboundMapper.createInstanceIdentifier(node.getNodeId()); TerminationPointKey tpKey = HwvtepSouthboundMapper.getTerminationPointKey(locator); if (nodeIid != null && tpKey != null) { TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); tpBuilder.withKey(tpKey); tpBuilder.setTpId(tpKey.getTpId()); - final InstanceIdentifier tpPath = - HwvtepSouthboundMapper.createInstanceIdentifier(nodeIid, locator); + final var tpPath = HwvtepSouthboundMapper.createInstanceIdentifier(nodeIid, locator); HwvtepPhysicalLocatorAugmentationBuilder tpAugmentationBuilder = new HwvtepPhysicalLocatorAugmentationBuilder(); tpAugmentationBuilder.setPhysicalLocatorUuid(new Uuid(locator.getUuid().toString())); @@ -70,11 +67,9 @@ public final class HwvtepPhysicalLocatorUpdateCommand extends AbstractTransactio setDstIp(tpAugmentationBuilder, locator); tpBuilder.addAugmentation(tpAugmentationBuilder.build()); if (oldPLocRows.containsKey(locUpdate.getKey())) { - transaction.merge(LogicalDatastoreType.OPERATIONAL, - tpPath.toIdentifier(), tpBuilder.build()); + transaction.merge(LogicalDatastoreType.OPERATIONAL, tpPath, tpBuilder.build()); } else { - transaction.put(LogicalDatastoreType.OPERATIONAL, - tpPath.toIdentifier(), tpBuilder.build()); + transaction.put(LogicalDatastoreType.OPERATIONAL, tpPath, tpBuilder.build()); } addToUpdateTx(TerminationPoint.class, tpPath, locator.getUuid(), locator); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalPortRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalPortRemoveCommand.java index f5ab26ba3..5ae0165e3 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalPortRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalPortRemoveCommand.java @@ -5,7 +5,6 @@ * 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.ovsdb.hwvtepsouthbound.transactions.md; import java.util.Collection; @@ -26,12 +25,10 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HwvtepPhysicalPortRemoveCommand extends AbstractTransactionCommand { - private static final Logger LOG = LoggerFactory.getLogger(HwvtepPhysicalPortRemoveCommand.class); public HwvtepPhysicalPortRemoveCommand(HwvtepConnectionInstance key, TableUpdates updates, @@ -63,10 +60,10 @@ public class HwvtepPhysicalPortRemoveCommand extends AbstractTransactionCommand LOG.warn("PhysicalSwitch not found for port {}", port); } else { String portName = port.getName(); - final InstanceIdentifier nodePath = - HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), - updatedPSwitchData).child(TerminationPoint.class, - new TerminationPointKey(new TpId(portName))); + final var nodePath = HwvtepSouthboundMapper.createInstanceIdentifier( + getOvsdbConnectionInstance(), updatedPSwitchData).toBuilder() + .child(TerminationPoint.class, new TerminationPointKey(new TpId(portName))) + .build(); addToDeleteTx(transaction, VlanBindings.class, nodePath, port.getUuid()); addToDeviceUpdate(TransactionType.DELETE, new PortEvent(port, nodePath.firstKeyOf(Node.class).getNodeId())); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalPortUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalPortUpdateCommand.java index e4794dc21..76bf0caeb 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalPortUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalPortUpdateCommand.java @@ -42,7 +42,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepNodeName; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalPortAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalPortAugmentationBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.Switches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.SwitchesKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.port.attributes.PortFaultStatus; @@ -60,7 +59,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -83,7 +81,7 @@ public final class HwvtepPhysicalPortUpdateCommand extends AbstractTransactionCo skipReconciliationPorts = new HashSet<>(); mdsalUtils = new MdsalUtils(key.getDataBroker()); for (Entry portUpdateEntry : updatedPPRows.entrySet()) { - Optional> switchIid = getTerminationPointSwitch(portUpdateEntry.getKey()); + var switchIid = getTerminationPointSwitch(portUpdateEntry.getKey()); if (switchIid.isPresent()) { if (getDeviceInfo().getDeviceOperData(Node.class, switchIid.orElseThrow()) == null) { //This is the first update from switch do not have to do reconciliation of this port @@ -92,12 +90,11 @@ public final class HwvtepPhysicalPortUpdateCommand extends AbstractTransactionCo } } } - } @Override public void execute(final ReadWriteTransaction transaction) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); if (updatedPPRows.isEmpty()) { return; } @@ -113,7 +110,7 @@ public final class HwvtepPhysicalPortUpdateCommand extends AbstractTransactionCo for (Entry portUpdateEntry : updatedPPRows.entrySet()) { PhysicalPort portUpdate = portUpdateEntry.getValue(); String portName = portUpdate.getNameColumn().getData(); - Optional> switchIid = getTerminationPointSwitch(portUpdateEntry.getKey()); + var switchIid = getTerminationPointSwitch(portUpdateEntry.getKey()); if (!switchIid.isPresent()) { switchIid = getFromDeviceOperCache(portUpdate.getUuid()); if (!switchIid.isPresent()) { @@ -127,19 +124,18 @@ public final class HwvtepPhysicalPortUpdateCommand extends AbstractTransactionCo TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); tpBuilder.withKey(tpKey); tpBuilder.setTpId(tpKey.getTpId()); - final InstanceIdentifier tpPath = - getInstanceIdentifier(switchIid.orElseThrow(), portUpdate); + final var tpPath = getInstanceIdentifier(switchIid.orElseThrow(), portUpdate); HwvtepPhysicalPortAugmentationBuilder tpAugmentationBuilder = new HwvtepPhysicalPortAugmentationBuilder(); buildTerminationPoint(tpAugmentationBuilder, portUpdate); setPortFaultStatus(tpAugmentationBuilder, portUpdate); tpBuilder.addAugmentation(tpAugmentationBuilder.build()); if (oldPPRows.containsKey(portUpdateEntry.getKey())) { - transaction.merge(LogicalDatastoreType.OPERATIONAL, tpPath.toIdentifier(), tpBuilder.build()); + transaction.merge(LogicalDatastoreType.OPERATIONAL, tpPath, tpBuilder.build()); } else { - transaction.put(LogicalDatastoreType.OPERATIONAL, tpPath.toIdentifier(), tpBuilder.build()); + transaction.put(LogicalDatastoreType.OPERATIONAL, tpPath, tpBuilder.build()); } - NodeId psNodeId = tpPath.firstKeyOf(Node.class).getNodeId(); + NodeId psNodeId = tpPath.getFirstKeyOf(Node.class).getNodeId(); if (getDeviceInfo().getDeviceOperData(TerminationPoint.class, tpPath) == null) { addToDeviceUpdate(TransactionType.ADD, new PortEvent(portUpdate, psNodeId)); } else { @@ -150,15 +146,14 @@ public final class HwvtepPhysicalPortUpdateCommand extends AbstractTransactionCo // Update with Deleted VlanBindings if (oldPPRows.get(portUpdateEntry.getKey()) != null && oldPPRows.get(portUpdateEntry.getKey()).getVlanBindingsColumn() != null) { - List> vlanBindingsList = new ArrayList<>(); + List> vlanBindingsList = new ArrayList<>(); Map oldVb = oldPPRows.get(portUpdateEntry.getKey()).getVlanBindingsColumn().getData(); Map updatedVb = portUpdateEntry.getValue().getVlanBindingsColumn().getData(); for (Map.Entry oldVbEntry : oldVb.entrySet()) { Long key = oldVbEntry.getKey(); if (!updatedVb.containsKey(key)) { VlanBindings vlanBindings = createVlanBinding(key, oldVbEntry.getValue()); - InstanceIdentifier vbIid = getInstanceIdentifier(tpPath, vlanBindings); - vlanBindingsList.add(vbIid); + vlanBindingsList.add(getInstanceIdentifier(tpPath, vlanBindings)); } deleteEntries(transaction, vlanBindingsList); } @@ -172,7 +167,7 @@ public final class HwvtepPhysicalPortUpdateCommand extends AbstractTransactionCo } private void reconcileToPort(final PhysicalPort portUpdate, - final InstanceIdentifier tpPath) { + final DataObjectIdentifier tpPath) { if (skipReconciliationPorts.contains(portUpdate.getUuid())) { //case of port added along with switch add //switch reconciliation will take care of this port along with other ports @@ -195,7 +190,7 @@ public final class HwvtepPhysicalPortUpdateCommand extends AbstractTransactionCo getDeviceInfo().updateDeviceOperData(VlanBindings.class, tpPath, portUpdate.getUuid(), portUpdate); getDeviceInfo().scheduleTransaction(transactionBuilder -> { - InstanceIdentifier psIid = tpPath.firstIdentifierOf(Node.class); + DataObjectIdentifier psIid = tpPath.trimTo(Node.class); HwvtepOperationalState operState = new HwvtepOperationalState(getOvsdbConnectionInstance()); PhysicalPortUpdateCommand portUpdateCommand = new PhysicalPortUpdateCommand(operState, List.of()); TerminationPoint cfgPoint = (TerminationPoint) data.getData(); @@ -206,20 +201,22 @@ public final class HwvtepPhysicalPortUpdateCommand extends AbstractTransactionCo } private static void deleteEntries(final ReadWriteTransaction transaction, - final List> entryIids) { - for (InstanceIdentifier entryIid : entryIids) { - transaction.delete(LogicalDatastoreType.OPERATIONAL, entryIid.toIdentifier()); + final List> entryIids) { + for (DataObjectIdentifier entryIid : entryIids) { + transaction.delete(LogicalDatastoreType.OPERATIONAL, entryIid); } } - private InstanceIdentifier getInstanceIdentifier(final InstanceIdentifier tpPath, - final VlanBindings vlanBindings) { + private DataObjectIdentifier getInstanceIdentifier( + final DataObjectIdentifier tpPath, final VlanBindings vlanBindings) { return HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), tpPath, vlanBindings); } - private static InstanceIdentifier getInstanceIdentifier(final InstanceIdentifier switchIid, - final PhysicalPort port) { - return switchIid.child(TerminationPoint.class, new TerminationPointKey(new TpId(port.getName()))); + private static DataObjectIdentifier getInstanceIdentifier( + final DataObjectIdentifier switchIid, final PhysicalPort port) { + return switchIid.toBuilder() + .child(TerminationPoint.class, new TerminationPointKey(new TpId(port.getName()))) + .build(); } private void buildTerminationPoint(final HwvtepPhysicalPortAugmentationBuilder tpAugmentationBuilder, @@ -271,9 +268,8 @@ public final class HwvtepPhysicalPortUpdateCommand extends AbstractTransactionCo private HwvtepLogicalSwitchRef getLogicalSwitchRef(final UUID switchUUID) { LogicalSwitch logicalSwitch = getOvsdbConnectionInstance().getDeviceInfo().getLogicalSwitch(switchUUID); if (logicalSwitch != null) { - InstanceIdentifier switchIid = - HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), logicalSwitch); - return new HwvtepLogicalSwitchRef(switchIid.toIdentifier()); + return new HwvtepLogicalSwitchRef( + HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), logicalSwitch)); } LOG.debug("Failed to get LogicalSwitch {}", switchUUID); LOG.trace("Available LogicalSwitches: {}", @@ -281,7 +277,7 @@ public final class HwvtepPhysicalPortUpdateCommand extends AbstractTransactionCo return null; } - private Optional> getTerminationPointSwitch(final UUID portUUID) { + private Optional> getTerminationPointSwitch(final UUID portUUID) { for (PhysicalSwitch updatedPhysicalSwitch : switchUpdatedRows.values()) { if (updatedPhysicalSwitch.getPortsColumn().getData().contains(portUUID)) { return Optional.of(HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), @@ -291,20 +287,19 @@ public final class HwvtepPhysicalPortUpdateCommand extends AbstractTransactionCo return Optional.empty(); } - private static Optional> getTerminationPointSwitch(final ReadWriteTransaction transaction, - final Node node, final String tpName) { + private static Optional> getTerminationPointSwitch( + final ReadWriteTransaction transaction, final Node node, final String tpName) { HwvtepGlobalAugmentation hwvtepNode = node.augmentation(HwvtepGlobalAugmentation.class); Map switchNodes = hwvtepNode.getSwitches(); if (switchNodes != null && !switchNodes.isEmpty()) { for (Switches managedNodeEntry : switchNodes.values()) { @SuppressWarnings("unchecked") Node switchNode = HwvtepSouthboundUtil.readNode(transaction, - ((DataObjectIdentifier) managedNodeEntry.getSwitchRef().getValue()).toLegacy()).orElseThrow(); + (DataObjectIdentifier) managedNodeEntry.getSwitchRef().getValue()).orElseThrow(); TerminationPointKey tpKey = new TerminationPointKey(new TpId(tpName)); TerminationPoint terminationPoint = switchNode.nonnullTerminationPoint().get(tpKey); if (terminationPoint != null) { - return Optional.of( - ((DataObjectIdentifier) managedNodeEntry.getSwitchRef().getValue()).toLegacy()); + return Optional.of((DataObjectIdentifier) managedNodeEntry.getSwitchRef().getValue()); } } } else { @@ -324,32 +319,31 @@ public final class HwvtepPhysicalPortUpdateCommand extends AbstractTransactionCo } } - private List> getPortFaultStatusToRemove( - final InstanceIdentifier tpPath, final PhysicalPort port) { + private List> getPortFaultStatusToRemove( + final DataObjectIdentifier tpPath, final PhysicalPort port) { requireNonNull(tpPath); requireNonNull(port); - List> result = new ArrayList<>(); + List> result = new ArrayList<>(); PhysicalPort oldPort = oldPPRows.get(port.getUuid()); if (oldPort != null && oldPort.getPortFaultStatusColumn() != null) { for (String portFltStat : oldPort.getPortFaultStatusColumn().getData()) { if (port.getPortFaultStatusColumn() == null || !port.getPortFaultStatusColumn().getData().contains(portFltStat)) { - InstanceIdentifier iid = tpPath.augmentation(HwvtepPhysicalPortAugmentation.class) - .child(PortFaultStatus.class, new PortFaultStatusKey(portFltStat)); - result.add(iid); + result.add(tpPath.toBuilder() + .augmentation(HwvtepPhysicalPortAugmentation.class) + .child(PortFaultStatus.class, new PortFaultStatusKey(portFltStat)) + .build()); } } } return result; } - private Optional> getFromDeviceOperCache(final UUID uuid) { - - InstanceIdentifier terminationPointIid = - getOvsdbConnectionInstance() - .getDeviceInfo().getDeviceOperKey(TerminationPoint.class, uuid); + private Optional> getFromDeviceOperCache(final UUID uuid) { + var terminationPointIid = getOvsdbConnectionInstance().getDeviceInfo() + .getDeviceOperKey(TerminationPoint.class, uuid); if (terminationPointIid != null) { - return Optional.of(terminationPointIid.firstIdentifierOf(Node.class)); + return Optional.of(terminationPointIid.trimTo(Node.class)); } return Optional.empty(); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalSwitchRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalSwitchRemoveCommand.java index b8668f658..5b00b3197 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalSwitchRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalSwitchRemoveCommand.java @@ -23,12 +23,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.Switches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.SwitchesKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HwvtepPhysicalSwitchRemoveCommand extends AbstractTransactionCommand { - private static final Logger LOG = LoggerFactory.getLogger(HwvtepPhysicalSwitchRemoveCommand.class); public HwvtepPhysicalSwitchRemoveCommand(HwvtepConnectionInstance key, TableUpdates updates, @@ -41,14 +39,14 @@ public class HwvtepPhysicalSwitchRemoveCommand extends AbstractTransactionComman Collection deletedPSRows = TyperUtils.extractRowsRemoved(PhysicalSwitch.class, getUpdates(), getDbSchema()).values(); for (PhysicalSwitch phySwitch : deletedPSRows) { - InstanceIdentifier nodeIid = HwvtepSouthboundMapper.createInstanceIdentifier( - getOvsdbConnectionInstance(), phySwitch); - InstanceIdentifier switchIid = getOvsdbConnectionInstance().getInstanceIdentifier() + var nodeIid = HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), phySwitch); + var switchIid = getOvsdbConnectionInstance().getInstanceIdentifier().toBuilder() .augmentation(HwvtepGlobalAugmentation.class) - .child(Switches.class, new SwitchesKey(new HwvtepPhysicalSwitchRef(nodeIid.toIdentifier()))); + .child(Switches.class, new SwitchesKey(new HwvtepPhysicalSwitchRef(nodeIid))) + .build(); // TODO handle removal of reference to managed switch from model - transaction.delete(LogicalDatastoreType.OPERATIONAL, nodeIid.toIdentifier()); - transaction.delete(LogicalDatastoreType.OPERATIONAL, switchIid.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, nodeIid); + transaction.delete(LogicalDatastoreType.OPERATIONAL, switchIid); getDeviceInfo().clearDeviceOperData(Node.class, switchIid); addToDeviceUpdate(TransactionType.DELETE, phySwitch); LOG.info("DEVICE - {} {}", TransactionType.DELETE, phySwitch); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalSwitchUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalSwitchUpdateCommand.java index 7c98b39e9..cbc2c9a94 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalSwitchUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepPhysicalSwitchUpdateCommand.java @@ -51,10 +51,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.binding.DataObject; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -85,7 +84,7 @@ public final class HwvtepPhysicalSwitchUpdateCommand extends AbstractTransaction } private void updatePhysicalSwitch(ReadWriteTransaction transaction, UUID uuid, PhysicalSwitch phySwitch) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); //TODO remove this read Optional connection = HwvtepSouthboundUtil.readNode(transaction, connectionIId); if (connection.isPresent()) { @@ -93,12 +92,12 @@ public final class HwvtepPhysicalSwitchUpdateCommand extends AbstractTransaction // Update the connection node to let it know it manages this // Physical Switch Node connectionNode = buildConnectionNode(phySwitch); - transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId.toIdentifier(), connectionNode); + transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode); // Update the Physical Switch with whatever data we are getting - InstanceIdentifier psIid = getInstanceIdentifier(phySwitch); + var psIid = getInstanceIdentifier(phySwitch); Node psNode = buildPhysicalSwitchNode(connection.orElseThrow(), phySwitch); - transaction.merge(LogicalDatastoreType.OPERATIONAL, psIid.toIdentifier(), psNode); + transaction.merge(LogicalDatastoreType.OPERATIONAL, psIid, psNode); addToDeviceUpdate(TransactionType.ADD, phySwitch); LOG.info("DEVICE - {} {}", TransactionType.ADD, phySwitch); @@ -115,11 +114,12 @@ public final class HwvtepPhysicalSwitchUpdateCommand extends AbstractTransaction } } - private static InstanceIdentifier getTunnelIpIid(final String tunnelIp, - final InstanceIdentifier psIid) { - IpAddress ip = TransactUtils.parseIpAddress(tunnelIp); - TunnelIps tunnelIps = new TunnelIpsBuilder().withKey(new TunnelIpsKey(ip)).setTunnelIpsKey(ip).build(); - return psIid.augmentation(PhysicalSwitchAugmentation.class).child(TunnelIps.class, tunnelIps.key()); + private static DataObjectIdentifier getTunnelIpIid(final String tunnelIp, + final DataObjectIdentifier psIid) { + return psIid.toBuilder() + .augmentation(PhysicalSwitchAugmentation.class) + .child(TunnelIps.class, new TunnelIpsKey(TransactUtils.parseIpAddress(tunnelIp))) + .build(); } private void updateTunnelIps(@NonNull final PhysicalSwitch newPSwitch, @Nullable final PhysicalSwitch oldPSwitch, @@ -132,17 +132,16 @@ public final class HwvtepPhysicalSwitchUpdateCommand extends AbstractTransaction Set addedTunnelIps = Sets.difference(newTunelIps, oldTunnelIps); Set removedTunnelIps = Sets.difference(oldTunnelIps, newTunelIps); - InstanceIdentifier psIid = getInstanceIdentifier(newPSwitch); + var psIid = getInstanceIdentifier(newPSwitch); for (String tunnelIp : removedTunnelIps) { - InstanceIdentifier tunnelIpsInstanceIdentifier = getTunnelIpIid(tunnelIp, psIid); - transaction.delete(LogicalDatastoreType.OPERATIONAL, tunnelIpsInstanceIdentifier.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, getTunnelIpIid(tunnelIp, psIid)); } for (String tunnelIp : addedTunnelIps) { IpAddress ip = TransactUtils.parseIpAddress(tunnelIp); - InstanceIdentifier tunnelIpsInstanceIdentifier = getTunnelIpIid(tunnelIp, psIid); + var tunnelIpsInstanceIdentifier = getTunnelIpIid(tunnelIp, psIid); TunnelIps tunnelIps = new TunnelIpsBuilder().withKey(new TunnelIpsKey(ip)).setTunnelIpsKey(ip).build(); transaction.mergeParentStructurePut(LogicalDatastoreType.OPERATIONAL, - tunnelIpsInstanceIdentifier.toIdentifier(), tunnelIps); + tunnelIpsInstanceIdentifier, tunnelIps); } } @@ -175,8 +174,7 @@ public final class HwvtepPhysicalSwitchUpdateCommand extends AbstractTransaction } private void setManagedBy(PhysicalSwitchAugmentationBuilder psAugmentationBuilder) { - InstanceIdentifier connectionNodePath = getOvsdbConnectionInstance().getInstanceIdentifier(); - psAugmentationBuilder.setManagedBy(new HwvtepGlobalRef(connectionNodePath.toIdentifier())); + psAugmentationBuilder.setManagedBy(new HwvtepGlobalRef(getOvsdbConnectionInstance().getInstanceIdentifier())); } private static void setPhysicalSwitchId(PhysicalSwitchAugmentationBuilder psAugmentationBuilder, @@ -207,49 +205,46 @@ public final class HwvtepPhysicalSwitchUpdateCommand extends AbstractTransaction NodeBuilder connectionNode = new NodeBuilder(); connectionNode.setNodeId(getOvsdbConnectionInstance().getNodeId()); - InstanceIdentifier switchIid = - HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), phySwitch); - Switches physicalSwitch = new SwitchesBuilder() - .setSwitchRef(new HwvtepPhysicalSwitchRef(switchIid.toIdentifier())) - .build(); + var switchIid = HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), phySwitch); + Switches physicalSwitch = new SwitchesBuilder().setSwitchRef(new HwvtepPhysicalSwitchRef(switchIid)).build(); connectionNode.addAugmentation(new HwvtepGlobalAugmentationBuilder() - .setSwitches(Map.of(physicalSwitch.key(), physicalSwitch)) + .setSwitches(BindingMap.of(physicalSwitch)) .build()); LOG.debug("Update node with physicalswitch ref {}", physicalSwitch); return connectionNode.build(); } - private InstanceIdentifier getInstanceIdentifier(PhysicalSwitch phySwitch) { + private DataObjectIdentifier getInstanceIdentifier(PhysicalSwitch phySwitch) { return HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), phySwitch); } private NodeId getNodeId(PhysicalSwitch phySwitch) { - NodeKey nodeKey = getInstanceIdentifier(phySwitch).firstKeyOf(Node.class); - return nodeKey.getNodeId(); + return getInstanceIdentifier(phySwitch).getFirstKeyOf(Node.class).getNodeId(); } private static void deleteEntries(ReadWriteTransaction transaction, - List> entryIids) { - for (InstanceIdentifier entryIid : entryIids) { - transaction.delete(LogicalDatastoreType.OPERATIONAL, entryIid.toIdentifier()); + List> entryIids) { + for (DataObjectIdentifier entryIid : entryIids) { + transaction.delete(LogicalDatastoreType.OPERATIONAL, entryIid); } } - private List> getSwitchFaultStatusToRemove(InstanceIdentifier psIid, + private List> getSwitchFaultStatusToRemove(DataObjectIdentifier psIid, PhysicalSwitch phySwitch) { requireNonNull(psIid); requireNonNull(phySwitch); - List> result = new ArrayList<>(); + List> result = new ArrayList<>(); PhysicalSwitch oldSwitch = oldPSRows.get(phySwitch.getUuid()); if (oldSwitch != null && oldSwitch.getSwitchFaultStatusColumn() != null) { for (String switchFltStat : oldSwitch.getSwitchFaultStatusColumn().getData()) { if (phySwitch.getSwitchFaultStatusColumn() == null || !phySwitch.getSwitchFaultStatusColumn().getData().contains(switchFltStat)) { - InstanceIdentifier iid = psIid.augmentation(PhysicalSwitchAugmentation.class) - .child(SwitchFaultStatus.class, new SwitchFaultStatusKey(switchFltStat)); - result.add(iid); + result.add(psIid.toBuilder() + .augmentation(PhysicalSwitchAugmentation.class) + .child(SwitchFaultStatus.class, new SwitchFaultStatusKey(switchFltStat)) + .build()); } } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepTunnelRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepTunnelRemoveCommand.java index cab04d88c..504754300 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepTunnelRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepTunnelRemoveCommand.java @@ -5,7 +5,6 @@ * 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.ovsdb.hwvtepsouthbound.transactions.md; import java.util.Collection; @@ -21,9 +20,7 @@ import org.opendaylight.ovsdb.schema.hardwarevtep.PhysicalLocator; import org.opendaylight.ovsdb.schema.hardwarevtep.PhysicalSwitch; import org.opendaylight.ovsdb.schema.hardwarevtep.Tunnel; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical._switch.attributes.Tunnels; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,9 +43,9 @@ public final class HwvtepTunnelRemoveCommand extends AbstractTransactionCommand public void execute(ReadWriteTransaction transaction) { for (Tunnel tunnel : deletedTunnelRows) { try { - InstanceIdentifier tunnelIid = getInstanceIdentifier(getOvsdbConnectionInstance(), tunnel); + var tunnelIid = getInstanceIdentifier(getOvsdbConnectionInstance(), tunnel); if (tunnelIid != null) { - transaction.delete(LogicalDatastoreType.OPERATIONAL, tunnelIid.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, tunnelIid); LOG.trace("Deleting tunnel {}", tunnelIid); } getOvsdbConnectionInstance().getDeviceInfo().removePhysicalSwitchForTunnel(tunnel.getUuid()); @@ -58,25 +55,23 @@ public final class HwvtepTunnelRemoveCommand extends AbstractTransactionCommand } } - private InstanceIdentifier getInstanceIdentifier(HwvtepConnectionInstance client, Tunnel tunnel) { - InstanceIdentifier result = null; - + private DataObjectIdentifier getInstanceIdentifier(HwvtepConnectionInstance client, Tunnel tunnel) { PhysicalSwitch phySwitch = client.getDeviceInfo().getPhysicalSwitchForTunnel(tunnel.getUuid()); if (phySwitch == null) { //PhysicalSwitch has already been removed, nothing to do here return null; } - InstanceIdentifier psIid = HwvtepSouthboundMapper.createInstanceIdentifier(client, phySwitch); + var psIid = HwvtepSouthboundMapper.createInstanceIdentifier(client, phySwitch); PhysicalLocator plLocal = getPhysicalLocatorFromUUID(tunnel.getLocalColumn().getData()); PhysicalLocator plRemote = getPhysicalLocatorFromUUID(tunnel.getRemoteColumn().getData()); if (plLocal != null && plRemote != null) { - InstanceIdentifier localTpPath = HwvtepSouthboundMapper.createInstanceIdentifier( + var localTpPath = HwvtepSouthboundMapper.createInstanceIdentifier( client.getInstanceIdentifier(), plLocal); - InstanceIdentifier remoteTpPath = HwvtepSouthboundMapper.createInstanceIdentifier( + var remoteTpPath = HwvtepSouthboundMapper.createInstanceIdentifier( client.getInstanceIdentifier(), plRemote); - result = HwvtepSouthboundMapper.createInstanceIdentifier(psIid, localTpPath, remoteTpPath); + return HwvtepSouthboundMapper.createInstanceIdentifier(psIid, localTpPath, remoteTpPath); } - return result; + return null; } private PhysicalLocator getPhysicalLocatorFromUUID(UUID uuid) { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepTunnelUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepTunnelUpdateCommand.java index e42bb0c31..1ee3f2253 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepTunnelUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepTunnelUpdateCommand.java @@ -33,8 +33,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.tunnel.attributes.BfdStatusBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -69,25 +69,24 @@ public final class HwvtepTunnelUpdateCommand extends AbstractTransactionCommand private void updateTunnel(ReadWriteTransaction transaction, Tunnel tunnel) { final UUID localData = requireNonNull(tunnel.getLocalColumn().getData()); final UUID remoteData = requireNonNull(tunnel.getRemoteColumn().getData()); - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); //TODO remove these reads Optional connection = HwvtepSouthboundUtil.readNode(transaction, connectionIId); PhysicalSwitch phySwitch = getOvsdbConnectionInstance().getDeviceInfo().getPhysicalSwitchForTunnel(tunnel.getUuid()); - InstanceIdentifier tunnelIid = null; + DataObjectIdentifier tunnelIid = null; if (phySwitch != null) { - InstanceIdentifier psIid = - HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), phySwitch); + var psIid = HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), phySwitch); tunnelIid = getInstanceIdentifier(psIid, tunnel); } if (connection.isPresent() && tunnelIid != null) { TunnelsBuilder builder = new TunnelsBuilder(); builder.setLocalLocatorRef(new HwvtepPhysicalLocatorRef(getPhysicalLocatorRefFromUUID( - getOvsdbConnectionInstance().getInstanceIdentifier().toLegacy(), localData).toIdentifier())); + getOvsdbConnectionInstance().getInstanceIdentifier(), localData))); builder.setRemoteLocatorRef(new HwvtepPhysicalLocatorRef(getPhysicalLocatorRefFromUUID( - getOvsdbConnectionInstance().getInstanceIdentifier().toLegacy(), remoteData).toIdentifier())); + getOvsdbConnectionInstance().getInstanceIdentifier(), remoteData))); builder.setTunnelUuid(new Uuid(tunnel.getUuid().toString())); setBfdLocalConfigs(builder, tunnel); setBfdRemoteConfigs(builder, tunnel); @@ -95,7 +94,7 @@ public final class HwvtepTunnelUpdateCommand extends AbstractTransactionCommand setBfdStatus(builder, tunnel); Tunnels updatedTunnel = builder.build(); LOG.trace("Built with the intent to store tunnel data {}", updatedTunnel); - transaction.merge(LogicalDatastoreType.OPERATIONAL, tunnelIid.toIdentifier(), updatedTunnel); + transaction.merge(LogicalDatastoreType.OPERATIONAL, tunnelIid, updatedTunnel); // TODO: Deletion of Tunnel BFD config and params } else { LOG.warn("Insuficient information. Unable to update tunnel {}", tunnel.getUuid()); @@ -155,21 +154,18 @@ public final class HwvtepTunnelUpdateCommand extends AbstractTransactionCommand } } - private InstanceIdentifier getInstanceIdentifier(InstanceIdentifier psIid, Tunnel tunnel) { - InstanceIdentifier result = null; - InstanceIdentifier localTpPath = - getPhysicalLocatorRefFromUUID(getOvsdbConnectionInstance().getInstanceIdentifier(), + private DataObjectIdentifier getInstanceIdentifier(DataObjectIdentifier psIid, Tunnel tunnel) { + var localTpPath = getPhysicalLocatorRefFromUUID(getOvsdbConnectionInstance().getInstanceIdentifier(), tunnel.getLocalColumn().getData()); - InstanceIdentifier remoteTpPath = - getPhysicalLocatorRefFromUUID(getOvsdbConnectionInstance().getInstanceIdentifier(), + var remoteTpPath = getPhysicalLocatorRefFromUUID(getOvsdbConnectionInstance().getInstanceIdentifier(), tunnel.getRemoteColumn().getData()); if (remoteTpPath != null && localTpPath != null) { - result = HwvtepSouthboundMapper.createInstanceIdentifier(psIid, localTpPath, remoteTpPath); + return HwvtepSouthboundMapper.createInstanceIdentifier(psIid, localTpPath, remoteTpPath); } - return result; + return null; } - private InstanceIdentifier getPhysicalLocatorRefFromUUID(InstanceIdentifier nodeIid, + private DataObjectIdentifier getPhysicalLocatorRefFromUUID(DataObjectIdentifier nodeIid, UUID uuid) { PhysicalLocator locator = getOvsdbConnectionInstance().getDeviceInfo().getPhysicalLocator(uuid); if (locator == null) { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepUcastMacsLocalUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepUcastMacsLocalUpdateCommand.java index aa37691c4..13ed9715c 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepUcastMacsLocalUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepUcastMacsLocalUpdateCommand.java @@ -30,12 +30,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalLocatorRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalUcastMacs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LocalUcastMacsBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -60,11 +57,11 @@ public final class HwvtepUcastMacsLocalUpdateCommand extends AbstractTransaction } private void updateData(ReadWriteTransaction transaction, Collection ucml) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); LOG.info("DEVICE - {} LocalUcastMacs for Node {} - {}", TransactionType.ADD, - connectionIId.firstKeyOf(Node.class).getNodeId().getValue(), ucml); + connectionIId.getFirstKeyOf(Node.class).getNodeId().getValue(), ucml); Node connectionNode = buildConnectionNode(ucml); - transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId.toIdentifier(), connectionNode); + transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode); } private Node buildConnectionNode(final Collection ucml) { @@ -91,24 +88,26 @@ public final class HwvtepUcastMacsLocalUpdateCommand extends AbstractTransaction .getDeviceInfo().getPhysicalLocator(plocUUID); } if (physicalLocator != null) { - InstanceIdentifier nodeIid = getOvsdbConnectionInstance().getInstanceIdentifier(); - InstanceIdentifier plIid = + var nodeIid = getOvsdbConnectionInstance().getInstanceIdentifier(); + var plIid = HwvtepSouthboundMapper.createInstanceIdentifier(nodeIid, physicalLocator); - ucmlBuilder.setLocatorRef(new HwvtepPhysicalLocatorRef(plIid.toIdentifier())); + ucmlBuilder.setLocatorRef(new HwvtepPhysicalLocatorRef(plIid)); } } if (ucml.getLogicalSwitchColumn() != null && ucml.getLogicalSwitchColumn().getData() != null) { UUID lsUUID = ucml.getLogicalSwitchColumn().getData(); LogicalSwitch logicalSwitch = getOvsdbConnectionInstance().getDeviceInfo().getLogicalSwitch(lsUUID); if (logicalSwitch != null) { - InstanceIdentifier switchIid = + var switchIid = HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), logicalSwitch); - ucmlBuilder.setLogicalSwitchRef(new HwvtepLogicalSwitchRef(switchIid.toIdentifier())); + ucmlBuilder.setLogicalSwitchRef(new HwvtepLogicalSwitchRef(switchIid)); } } LocalUcastMacs ucastMacsLocal = ucmlBuilder.build(); - InstanceIdentifier iid = key.getInstanceIdentifier().augmentation(HwvtepGlobalAugmentation.class) - .child(LocalUcastMacs.class, ucastMacsLocal.key()); + var iid = key.getInstanceIdentifier().toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LocalUcastMacs.class, ucastMacsLocal.key()) + .build(); addToUpdateTx(LocalUcastMacs.class, iid, ucml.getUuid(), ucastMacsLocal); return ucastMacsLocal; } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepUcastMacsRemoteUpdateCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepUcastMacsRemoteUpdateCommand.java index b33b9a9fe..fba794c21 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepUcastMacsRemoteUpdateCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/HwvtepUcastMacsRemoteUpdateCommand.java @@ -27,14 +27,12 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentationBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepLogicalSwitchRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalLocatorRef; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacsBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public final class HwvtepUcastMacsRemoteUpdateCommand extends AbstractTransactionCommand { @@ -56,9 +54,8 @@ public final class HwvtepUcastMacsRemoteUpdateCommand extends AbstractTransactio } private void updateUcastMacsRemote(ReadWriteTransaction transaction, Collection ucastMacsRemote) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); - Node connectionNode = buildConnectionNode(ucastMacsRemote); - transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId.toIdentifier(), connectionNode); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, buildConnectionNode(ucastMacsRemote)); } private Node buildConnectionNode(final Collection macRemotes) { @@ -85,10 +82,9 @@ public final class HwvtepUcastMacsRemoteUpdateCommand extends AbstractTransactio physicalLocator = getOvsdbConnectionInstance().getDeviceInfo().getPhysicalLocator(locUUID); } if (physicalLocator != null) { - InstanceIdentifier nodeIid = getOvsdbConnectionInstance().getInstanceIdentifier(); - InstanceIdentifier plIid = HwvtepSouthboundMapper.createInstanceIdentifier(nodeIid, - physicalLocator); - rumBuilder.setLocatorRef(new HwvtepPhysicalLocatorRef(plIid.toIdentifier())); + var nodeIid = getOvsdbConnectionInstance().getInstanceIdentifier(); + var plIid = HwvtepSouthboundMapper.createInstanceIdentifier(nodeIid, physicalLocator); + rumBuilder.setLocatorRef(new HwvtepPhysicalLocatorRef(plIid)); } } if (macRemote.getLogicalSwitchColumn() != null @@ -96,19 +92,21 @@ public final class HwvtepUcastMacsRemoteUpdateCommand extends AbstractTransactio UUID lsUUID = macRemote.getLogicalSwitchColumn().getData(); final LogicalSwitch logicalSwitch = getOvsdbConnectionInstance().getDeviceInfo().getLogicalSwitch(lsUUID); if (logicalSwitch != null) { - InstanceIdentifier switchIid = + var switchIid = HwvtepSouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), logicalSwitch); - rumBuilder.setLogicalSwitchRef(new HwvtepLogicalSwitchRef(switchIid.toIdentifier())); + rumBuilder.setLogicalSwitchRef(new HwvtepLogicalSwitchRef(switchIid)); } } RemoteUcastMacs remoteUcastMacs = rumBuilder.build(); - InstanceIdentifier macIid = getMacIid(remoteUcastMacs); + var macIid = getMacIid(remoteUcastMacs); addToUpdateTx(RemoteUcastMacs.class, macIid, macRemote.getUuid(), macRemote); return remoteUcastMacs; } - private InstanceIdentifier getMacIid(final RemoteUcastMacs remoteUcastMacs) { - return getOvsdbConnectionInstance().getInstanceIdentifier() - .augmentation(HwvtepGlobalAugmentation.class).child(RemoteUcastMacs.class, remoteUcastMacs.key()); + private DataObjectIdentifier getMacIid(final RemoteUcastMacs remoteUcastMacs) { + return getOvsdbConnectionInstance().getInstanceIdentifier().toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteUcastMacs.class, remoteUcastMacs.key()) + .build(); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/DataChangeListenerTestBase.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/DataChangeListenerTestBase.java index e3c83cebe..3a4170800 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/DataChangeListenerTestBase.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/DataChangeListenerTestBase.java @@ -67,7 +67,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yangtools.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -89,9 +89,9 @@ public class DataChangeListenerTestBase extends AbstractDataBrokerTest { ArgumentCaptor transactCaptor; String nodeUuid; - protected InstanceIdentifier nodeIid; - InstanceIdentifier ls0Iid; - InstanceIdentifier ls1Iid; + protected DataObjectIdentifier nodeIid; + DataObjectIdentifier ls0Iid; + DataObjectIdentifier ls1Iid; Operations mockOp; @@ -100,10 +100,14 @@ public class DataChangeListenerTestBase extends AbstractDataBrokerTest { entityOwnershipService = mock(EntityOwnershipService.class); nodeUuid = java.util.UUID.randomUUID().toString(); nodeIid = createInstanceIdentifier(nodeUuid); - ls0Iid = nodeIid.augmentation(HwvtepGlobalAugmentation.class).child(LogicalSwitches.class, - new LogicalSwitchesKey(new HwvtepNodeName("ls0"))); - ls1Iid = nodeIid.augmentation(HwvtepGlobalAugmentation.class).child(LogicalSwitches.class, - new LogicalSwitchesKey(new HwvtepNodeName("ls1"))); + ls0Iid = nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName("ls0"))) + .build(); + ls1Iid = nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName("ls1"))) + .build(); loadSchema(); mockOp = mock(Operations.class); @@ -131,7 +135,7 @@ public class DataChangeListenerTestBase extends AbstractDataBrokerTest { any(HwvtepPhysicalSwitchAttributes.class)); doReturn(connectionInstance).when(hwvtepConnectionManager).getConnectionInstance(any(Node.class)); doReturn(connectionInstance).when(hwvtepConnectionManager).getConnectionInstanceFromNodeIid( - any(InstanceIdentifier.class)); + any(DataObjectIdentifier.class)); mockOperations(); @@ -195,13 +199,13 @@ public class DataChangeListenerTestBase extends AbstractDataBrokerTest { void addNode(final LogicalDatastoreType logicalDatastoreType) throws Exception { NodeBuilder nodeBuilder = prepareNode(nodeIid).addAugmentation(new HwvtepGlobalAugmentationBuilder().build()); WriteTransaction transaction = getDataBroker().newWriteOnlyTransaction(); - transaction.mergeParentStructurePut(logicalDatastoreType, nodeIid.toIdentifier(), nodeBuilder.build()); + transaction.mergeParentStructurePut(logicalDatastoreType, nodeIid, nodeBuilder.build()); transaction.commit(); } void deleteNode(final LogicalDatastoreType logicalDatastoreType) { ReadWriteTransaction tx = getDataBroker().newReadWriteTransaction(); - tx.delete(logicalDatastoreType, nodeIid.toIdentifier()); + tx.delete(logicalDatastoreType, nodeIid); tx.commit(); } @@ -225,10 +229,10 @@ public class DataChangeListenerTestBase extends AbstractDataBrokerTest { return mergeNode(logicalDatastoreType, nodeIid, nodeBuilder); } - void deleteData(final LogicalDatastoreType datastoreType, final InstanceIdentifier... iids) { + void deleteData(final LogicalDatastoreType datastoreType, final DataObjectIdentifier... iids) { WriteTransaction transaction = getDataBroker().newWriteOnlyTransaction(); - for (InstanceIdentifier id : iids) { - transaction.delete(datastoreType, id.toIdentifier()); + for (DataObjectIdentifier id : iids) { + transaction.delete(datastoreType, id); } transaction.commit(); } @@ -238,9 +242,10 @@ public class DataChangeListenerTestBase extends AbstractDataBrokerTest { ReadWriteTransaction tx = getDataBroker().newReadWriteTransaction(); if (LogicalSwitches.class == dataObject) { for (LogicalSwitchesKey key : TestBuilders.logicalSwitches(data).keySet()) { - tx.delete(logicalDatastoreType, - nodeIid.augmentation(HwvtepGlobalAugmentation.class).child(LogicalSwitches.class, key) - .toIdentifier()); + tx.delete(logicalDatastoreType, nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, key) + .build()); } } if (TerminationPoint.class == dataObject) { @@ -250,41 +255,40 @@ public class DataChangeListenerTestBase extends AbstractDataBrokerTest { } if (RemoteUcastMacs.class == dataObject) { for (RemoteUcastMacsKey key : TestBuilders.remoteUcastMacs(nodeIid, data).keySet()) { - tx.delete(logicalDatastoreType, - nodeIid.augmentation(HwvtepGlobalAugmentation.class).child(RemoteUcastMacs.class, key) - .toIdentifier()); + tx.delete(logicalDatastoreType, nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteUcastMacs.class, key) + .build()); } } if (RemoteMcastMacs.class == dataObject) { for (RemoteMcastMacsKey key : TestBuilders.remoteMcastMacs(nodeIid, data).keySet()) { - tx.delete(logicalDatastoreType, - nodeIid.augmentation(HwvtepGlobalAugmentation.class).child(RemoteMcastMacs.class, key) - .toIdentifier()); + tx.delete(logicalDatastoreType, nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteMcastMacs.class, key) + .build()); } } tx.commit(); } - NodeBuilder prepareNode(final InstanceIdentifier iid) { - return new NodeBuilder().setNodeId(iid.firstKeyOf(Node.class).getNodeId()); + NodeBuilder prepareNode(final DataObjectIdentifier iid) { + return new NodeBuilder().setNodeId(iid.getFirstKeyOf(Node.class).getNodeId()); } - Node mergeNode(final LogicalDatastoreType datastoreType, final InstanceIdentifier id, + Node mergeNode(final LogicalDatastoreType datastoreType, final DataObjectIdentifier id, final NodeBuilder nodeBuilder) { Node node = nodeBuilder.build(); WriteTransaction transaction = getDataBroker().newWriteOnlyTransaction(); - transaction.mergeParentStructureMerge(datastoreType, id.toIdentifier(), node); + transaction.mergeParentStructureMerge(datastoreType, id, node); transaction.commit(); return node; } - public InstanceIdentifier createInstanceIdentifier(final String nodeIdString) { - NodeId nodeId = new NodeId(new Uri(nodeIdString)); - NodeKey nodeKey = new NodeKey(nodeId); - TopologyKey topoKey = new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID); - return InstanceIdentifier.builder(NetworkTopology.class) - .child(Topology.class, topoKey) - .child(Node.class, nodeKey) + public DataObjectIdentifier.WithKey createInstanceIdentifier(final String nodeIdString) { + return DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) + .child(Node.class, new NodeKey(new NodeId(new Uri(nodeIdString)))) .build(); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDataChangeListenerTest.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDataChangeListenerTest.java index 84ecedf66..06b31ad9a 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDataChangeListenerTest.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDataChangeListenerTest.java @@ -38,7 +38,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSet; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yangtools.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -243,15 +242,16 @@ public class HwvtepDataChangeListenerTest extends DataChangeListenerTestBase { resetOperations(); final MacAddress macAddr = new MacAddress("FF:FF:FF:FF:FF:FF"); - final InstanceIdentifier augIid = - nodeIid.augmentation(HwvtepGlobalAugmentation.class); - deleteData(LogicalDatastoreType.CONFIGURATION, - augIid.child(RemoteMcastMacs.class, + final var augIid = nodeIid.toBuilder().augmentation(HwvtepGlobalAugmentation.class).build(); + deleteData(LogicalDatastoreType.CONFIGURATION, augIid.toBuilder() + .child(RemoteMcastMacs.class, new RemoteMcastMacsKey(TestBuilders.buildLogicalSwitchesRef(nodeIid, "ls0"), macAddr)) - .child(LocatorSet.class), - augIid.child(RemoteMcastMacs.class, + .child(LocatorSet.class) + .build(), augIid.toBuilder() + .child(RemoteMcastMacs.class, new RemoteMcastMacsKey(TestBuilders.buildLogicalSwitchesRef(nodeIid, "ls1"), macAddr)) - .child(LocatorSet.class)); + .child(LocatorSet.class) + .build()); verify(mockOp, times(2)).delete(ArgumentMatchers.any()); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalDataChangeListener.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalDataChangeListener.java index 4611090fb..a496b842c 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalDataChangeListener.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalDataChangeListener.java @@ -11,7 +11,6 @@ import java.util.List; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.DataObjectModification; import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; -import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.notation.UUID; @@ -26,23 +25,25 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yangtools.binding.ChildOf; import org.opendaylight.yangtools.binding.DataObject; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; +import org.opendaylight.yangtools.binding.DataObjectReference; import org.opendaylight.yangtools.binding.EntryObject; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class HwvtepOperationalDataChangeListener implements DataTreeChangeListener, AutoCloseable { private final Registration registration; private final HwvtepConnectionManager hcm; - private final DataBroker db; private final HwvtepConnectionInstance connectionInstance; HwvtepOperationalDataChangeListener(DataBroker db, HwvtepConnectionManager hcm, HwvtepConnectionInstance connectionInstance) { - this.db = db; this.hcm = hcm; this.connectionInstance = connectionInstance; - DataTreeIdentifier treeId = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, getWildcardPath()); - registration = db.registerTreeChangeListener(treeId, this); + registration = db.registerTreeChangeListener(LogicalDatastoreType.OPERATIONAL, + DataObjectReference.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) + .child(Node.class) + .build(), this); } @Override @@ -55,7 +56,7 @@ public class HwvtepOperationalDataChangeListener implements DataTreeChangeListen @Override public void onDataTreeChanged(List> changes) { for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().path(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); for (DataObjectModification child : mod.modifiedChildren()) { updateDeviceOpData(key, child); @@ -70,9 +71,9 @@ public class HwvtepOperationalDataChangeListener implements DataTreeChangeListen } } - private void updateDeviceOpData(InstanceIdentifier key, DataObjectModification mod) { + private void updateDeviceOpData(DataObjectIdentifier key, DataObjectModification mod) { Class> childClass = (Class>) mod.dataType(); - InstanceIdentifier instanceIdentifier = getKey(key, mod, mod.dataAfter()); + var instanceIdentifier = getKey(key, mod, mod.dataAfter()); switch (mod.modificationType()) { case WRITE: connectionInstance.getDeviceInfo().updateDeviceOperData(childClass, instanceIdentifier, @@ -88,37 +89,39 @@ public class HwvtepOperationalDataChangeListener implements DataTreeChangeListen } } - private static InstanceIdentifier getKey(InstanceIdentifier key, + private static DataObjectIdentifier getKey(DataObjectIdentifier key, DataObjectModification child, DataObject data) { Class childClass = child.dataType(); - InstanceIdentifier instanceIdentifier = null; if (LogicalSwitches.class == childClass) { LogicalSwitches ls = (LogicalSwitches)data; - instanceIdentifier = key.augmentation(HwvtepGlobalAugmentation.class).child(LogicalSwitches.class, - ls.key()); + return key.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, ls.key()) + .build(); } else if (org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology .topology.node.TerminationPoint.class == childClass) { TerminationPoint tp = (TerminationPoint)data; - instanceIdentifier = key.child(TerminationPoint.class, tp.key()); + return key.toBuilder() + .child(TerminationPoint.class, tp.key()) + .build(); } else if (RemoteUcastMacs.class == childClass) { RemoteUcastMacs mac = (RemoteUcastMacs)data; - instanceIdentifier = key.augmentation(HwvtepGlobalAugmentation.class).child(RemoteUcastMacs.class, - mac.key()); - } else if (RemoteMcastMacs.class == childClass) { + return key.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteUcastMacs.class, mac.key()) + .build(); + } else if (RemoteMcastMacs.class == childClass) { RemoteMcastMacs mac = (RemoteMcastMacs)data; - instanceIdentifier = key.augmentation(HwvtepGlobalAugmentation.class).child(RemoteMcastMacs.class, - mac.key()); + return key.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteMcastMacs.class, mac.key()) + .build(); + } else { + return null; } - return instanceIdentifier; } Class> getClass(Class cls) { return (Class>) cls; } - - private static InstanceIdentifier getWildcardPath() { - return InstanceIdentifier.create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) - .child(Node.class); - } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalStateTest.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalStateTest.java index cb49f6950..a7e9ec915 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalStateTest.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalStateTest.java @@ -5,7 +5,6 @@ * 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.ovsdb.hwvtepsouthbound; import static org.junit.Assert.assertEquals; @@ -22,7 +21,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepNodeName; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitchesKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @RunWith(MockitoJUnitRunner.Silent.class) public class HwvtepOperationalStateTest extends DataChangeListenerTestBase { @@ -31,8 +29,10 @@ public class HwvtepOperationalStateTest extends DataChangeListenerTestBase { @Test public void testUpdateCurrentTxData() throws Exception { - InstanceIdentifier lsIid = nodeIid.augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName("ls0"))); + var lsIid = nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName("ls0"))) + .build(); HwvtepOperationalState opState = new HwvtepOperationalState(connectionInstance); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/TestBuilders.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/TestBuilders.java index ff7f9135b..4e20973b3 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/TestBuilders.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/TestBuilders.java @@ -36,8 +36,8 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public final class TestBuilders { @@ -50,35 +50,36 @@ public final class TestBuilders { return Arrays.stream(data).map(TestBuilders::buildLogicalSwitch).collect(BindingMap.toOrderedMap()); } - public static Map remoteMcastMacs(InstanceIdentifier iid, + public static Map remoteMcastMacs(DataObjectIdentifier iid, String[]... data) { return Arrays.stream(data) .map(row -> TestBuilders.buildRemoteMcastMacs(iid, row[0], row[1], Arrays.copyOfRange(row, 2, row.length))) .collect(BindingMap.toOrderedMap()); } - public static Map remoteUcastMacs(InstanceIdentifier iid, + public static Map remoteUcastMacs(DataObjectIdentifier iid, String[]... data) { return Arrays.stream(data) .map(row -> TestBuilders.buildRemoteUcastMacs(iid, row[0], row[1], row[2], row[3])) .collect(BindingMap.toOrderedMap()); } - public static Map globalTerminationPoints(InstanceIdentifier nodeIid, + public static Map globalTerminationPoints(DataObjectIdentifier nodeIid, String[]... data) { return Arrays.stream(data) .map(row -> TestBuilders.buildTerminationPoint(nodeIid, row[0])) .collect(BindingMap.toOrderedMap()); } - public static HwvtepLogicalSwitchRef buildLogicalSwitchesRef(InstanceIdentifier nodeIid, + public static HwvtepLogicalSwitchRef buildLogicalSwitchesRef(DataObjectIdentifier nodeIid, String logicalSwitchName) { - InstanceIdentifier switchIid = nodeIid.augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitchName))); - return new HwvtepLogicalSwitchRef(switchIid.toIdentifier()); + return new HwvtepLogicalSwitchRef(nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName(logicalSwitchName))) + .build()); } - public static RemoteUcastMacs buildRemoteUcastMacs(InstanceIdentifier nodeIid, String vmMac, + public static RemoteUcastMacs buildRemoteUcastMacs(DataObjectIdentifier nodeIid, String vmMac, String vmip, String tepIp, String logicalSwitchName) { RemoteUcastMacsBuilder ucmlBuilder = new RemoteUcastMacsBuilder(); ucmlBuilder.setIpaddr(TransactUtils.parseIpAddress(vmip)); @@ -89,7 +90,7 @@ public final class TestBuilders { return ucmlBuilder.build(); } - public static TerminationPoint buildTerminationPoint(InstanceIdentifier nodeIid, String ip) { + public static TerminationPoint buildTerminationPoint(DataObjectIdentifier nodeIid, String ip) { TerminationPointKey tpKey = new TerminationPointKey(new TpId("vxlan_over_ipv4:" + ip)); TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); if (nodeIid != null) { @@ -116,7 +117,7 @@ public final class TestBuilders { return logicalSwitchesBuilder.build(); } - public static RemoteMcastMacs buildRemoteMcastMacs(InstanceIdentifier iid, String mac, + public static RemoteMcastMacs buildRemoteMcastMacs(DataObjectIdentifier iid, String mac, String logicalSwitchName, String[] tepIps) { RemoteMcastMacsBuilder macLocalBuilder = new RemoteMcastMacsBuilder(); @@ -136,18 +137,17 @@ public final class TestBuilders { return macLocalBuilder.build(); } - public static HwvtepPhysicalLocatorRef buildLocatorRef(InstanceIdentifier nodeIid,String tepIp) { - InstanceIdentifier tepId = buildTpId(nodeIid, tepIp); - return new HwvtepPhysicalLocatorRef(tepId.toIdentifier()); + public static HwvtepPhysicalLocatorRef buildLocatorRef(DataObjectIdentifier nodeIid,String tepIp) { + return new HwvtepPhysicalLocatorRef(buildTpId(nodeIid, tepIp)); } public static Uuid getUUid(String key) { return new Uuid(UUID.nameUUIDFromBytes(key.getBytes()).toString()); } - public static InstanceIdentifier buildTpId(InstanceIdentifier nodeIid,String tepIp) { - String tpKeyStr = VXLAN_OVER_IPV4 + ':' + tepIp; - TerminationPointKey tpKey = new TerminationPointKey(new TpId(tpKeyStr)); - return nodeIid.child(TerminationPoint.class, tpKey); + public static DataObjectIdentifier buildTpId(DataObjectIdentifier nodeIid,String tepIp) { + return nodeIid.toBuilder() + .child(TerminationPoint.class, new TerminationPointKey(new TpId(VXLAN_OVER_IPV4 + ':' + tepIp))) + .build(); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependencyQueueTest.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependencyQueueTest.java index 806dac17d..ed444cf65 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependencyQueueTest.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependencyQueueTest.java @@ -27,8 +27,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacsKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @RunWith(MockitoJUnitRunner.Silent.class) public class DependencyQueueTest extends DataChangeListenerTestBase { @@ -41,19 +41,21 @@ public class DependencyQueueTest extends DataChangeListenerTestBase { UnMetDependencyGetter mcastMacDataValidator; HwvtepOperationalState opState; RemoteMcastMacs mac; - InstanceIdentifier macIid; - InstanceIdentifier lsIid; - Map>, List> unMetDependencies; + DataObjectIdentifier macIid; + DataObjectIdentifier lsIid; + Map>, List> unMetDependencies; void setupForTest() throws Exception { mcastMacDataValidator = McastMacsRemoteUpdateCommand.MCAST_MAC_DATA_VALIDATOR; opState = new HwvtepOperationalState(connectionInstance); mac = TestBuilders.buildRemoteMcastMacs(nodeIid,"FF:FF:FF:FF:FF:FF", "ls0", new String[]{"192.168.122.20", "192.168.122.30"}); - lsIid = nodeIid.augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName("ls0"))); - macIid = nodeIid.augmentation(HwvtepGlobalAugmentation.class) - .child(RemoteMcastMacs.class, new RemoteMcastMacsKey(mac.key())); + lsIid = nodeIid.toBuilder().augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName("ls0"))) + .build(); + macIid = nodeIid.toBuilder().augmentation(HwvtepGlobalAugmentation.class) + .child(RemoteMcastMacs.class, new RemoteMcastMacsKey(mac.key())) + .build(); } @Test diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetterTest.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetterTest.java index 0ea695f79..65774e31f 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetterTest.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetterTest.java @@ -24,8 +24,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitchesKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacs; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @RunWith(MockitoJUnitRunner.Silent.class) public class UnMetDependencyGetterTest extends DataChangeListenerTestBase { @@ -33,16 +33,18 @@ public class UnMetDependencyGetterTest extends DataChangeListenerTestBase { UnMetDependencyGetter mcastMacDataValidator; HwvtepOperationalState opState; RemoteMcastMacs mac; - InstanceIdentifier lsIid; - Map>, List> unMetDependencies; + DataObjectIdentifier lsIid; + Map>, List> unMetDependencies; void setupForTest() { mcastMacDataValidator = McastMacsRemoteUpdateCommand.MCAST_MAC_DATA_VALIDATOR; opState = new HwvtepOperationalState(connectionInstance); mac = TestBuilders.buildRemoteMcastMacs(nodeIid, "FF:FF:FF:FF:FF:FF", "ls0", new String[] {"192.168.122.20", "192.168.122.30"}); - lsIid = nodeIid.augmentation(HwvtepGlobalAugmentation.class) - .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName("ls0"))); + lsIid = nodeIid.toBuilder() + .augmentation(HwvtepGlobalAugmentation.class) + .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName("ls0"))) + .build(); } @Test diff --git a/hwvtepsouthbound/hwvtepsouthbound-it/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/it/HwvtepSouthboundIT.java b/hwvtepsouthbound/hwvtepsouthbound-it/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/it/HwvtepSouthboundIT.java index bd8fe856a..0cafbde70 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-it/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/it/HwvtepSouthboundIT.java +++ b/hwvtepsouthbound/hwvtepsouthbound-it/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/it/HwvtepSouthboundIT.java @@ -36,7 +36,6 @@ import org.opendaylight.controller.mdsal.it.base.AbstractMdsalTestBase; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.DataObjectModification; import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; -import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepSouthboundConstants; @@ -64,7 +63,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; import org.ops4j.pax.exam.Configuration; import org.ops4j.pax.exam.Option; @@ -117,9 +116,9 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { private static final class NotifyingDataChangeListener implements DataTreeChangeListener { private final LogicalDatastoreType type; - private final Set> createdNodes = new HashSet<>(); - private final Set> removedNodes = new HashSet<>(); - private final Set> updatedNodes = new HashSet<>(); + private final Set> createdNodes = new HashSet<>(); + private final Set> removedNodes = new HashSet<>(); + private final Set> updatedNodes = new HashSet<>(); private NotifyingDataChangeListener(LogicalDatastoreType type) { this.type = type; @@ -128,7 +127,7 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { @Override public void onDataTreeChanged(List> changes) { for (DataTreeModification change : changes) { - final InstanceIdentifier key = change.getRootPath().path(); + final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); switch (mod.modificationType()) { case DELETE: @@ -151,15 +150,15 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { } } - public boolean isCreated(InstanceIdentifier iid) { + public boolean isCreated(DataObjectIdentifier iid) { return createdNodes.remove(iid); } - public boolean isRemoved(InstanceIdentifier iid) { + public boolean isRemoved(DataObjectIdentifier iid) { return removedNodes.remove(iid); } - public boolean isUpdated(InstanceIdentifier iid) { + public boolean isUpdated(DataObjectIdentifier iid) { return updatedNodes.remove(iid); } } @@ -275,10 +274,9 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { mdsalUtils = new MdsalUtils(dataBroker); assertTrue("Did not find " + HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID.getValue(), getHwvtepTopology()); final ConnectionInfo connectionInfo = getConnectionInfo(addressStr, portNumber); - final InstanceIdentifier iid = HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo); - final DataTreeIdentifier treeId = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, iid); + final DataObjectIdentifier iid = HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo); - dataBroker.registerTreeChangeListener(treeId, OPERATIONAL_LISTENER); + dataBroker.registerTreeChangeListener(LogicalDatastoreType.OPERATIONAL, iid, OPERATIONAL_LISTENER); hwvtepNode = connectHwvtepNode(connectionInfo); // Let's count the test methods (we need to use this instead of @AfterClass on teardown() since the latter is @@ -307,8 +305,9 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { LOG.info("getHwvtepTopology: looking for {}...", HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID.getValue()); Boolean found = false; final TopologyId topologyId = HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID; - InstanceIdentifier path = - InstanceIdentifier.create(NetworkTopology.class).child(Topology.class, new TopologyKey(topologyId)); + var path = DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(topologyId)) + .build(); for (int i = 0; i < 60; i++) { Boolean topology = mdsalUtils.exists(LogicalDatastoreType.OPERATIONAL, path); if (topology) { @@ -329,7 +328,7 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { } private static Node connectHwvtepNode(ConnectionInfo connectionInfo) throws InterruptedException { - final InstanceIdentifier iid = HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo); + final var iid = HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo); Assert.assertTrue(mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, iid, HwvtepSouthboundUtils.createNode(connectionInfo))); waitForOperationalCreation(iid); @@ -340,7 +339,7 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { } private static void disconnectHwvtepNode(final ConnectionInfo connectionInfo) throws InterruptedException { - final InstanceIdentifier iid = HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo); + final var iid = HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo); Assert.assertTrue(mdsalUtils.delete(LogicalDatastoreType.CONFIGURATION, iid)); waitForOperationalDeletion(iid); Node node = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, iid); @@ -348,7 +347,7 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { LOG.info("Disconnected from {}", HwvtepSouthboundUtils.connectionInfoToString(connectionInfo)); } - private static void waitForOperationalCreation(InstanceIdentifier iid) throws InterruptedException { + private static void waitForOperationalCreation(DataObjectIdentifier iid) throws InterruptedException { synchronized (OPERATIONAL_LISTENER) { long start = System.currentTimeMillis(); LOG.info("Waiting for OPERATIONAL DataChanged creation on {}", iid); @@ -360,7 +359,7 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { } } - private static void waitForOperationalDeletion(InstanceIdentifier iid) throws InterruptedException { + private static void waitForOperationalDeletion(DataObjectIdentifier iid) throws InterruptedException { synchronized (OPERATIONAL_LISTENER) { long start = System.currentTimeMillis(); LOG.info("Waiting for OPERATIONAL DataChanged deletion on {}", iid); @@ -401,7 +400,7 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { } TestPhysicalSwitch(final ConnectionInfo connectionInfo, final String name, - @Nullable InstanceIdentifier psIid, @Nullable NodeId psNodeId, + @Nullable DataObjectIdentifier psIid, @Nullable NodeId psNodeId, @Nullable final String description, final boolean setManagedBy, @Nullable final Map managementIps, @Nullable final Map tunnelIps, @@ -422,8 +421,8 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { psAugBuilder.setHwvtepNodeDescription(description); } if (setManagedBy) { - InstanceIdentifier nodePath = HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo); - psAugBuilder.setManagedBy(new HwvtepGlobalRef(nodePath.toIdentifier())); + psAugBuilder.setManagedBy(new HwvtepGlobalRef( + HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo))); } psAugBuilder.setManagementIps(managementIps); psAugBuilder.setTunnelIps(tunnelIps); @@ -441,9 +440,8 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { @Override public void close() { - final InstanceIdentifier iid = - HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo, new HwvtepNodeName(psName)); - Assert.assertTrue(mdsalUtils.delete(LogicalDatastoreType.CONFIGURATION, iid)); + Assert.assertTrue(mdsalUtils.delete(LogicalDatastoreType.CONFIGURATION, + HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo, new HwvtepNodeName(psName)))); try { Thread.sleep(OVSDB_UPDATE_TIMEOUT); } catch (InterruptedException e) { @@ -466,21 +464,21 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { @Test public void testNetworkTopology() throws InterruptedException { NetworkTopology networkTopology = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION, - InstanceIdentifier.create(NetworkTopology.class)); + DataObjectIdentifier.builder(NetworkTopology.class).build()); Assert.assertNotNull("NetworkTopology could not be found in " + LogicalDatastoreType.CONFIGURATION, networkTopology); networkTopology = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, - InstanceIdentifier.create(NetworkTopology.class)); + DataObjectIdentifier.builder(NetworkTopology.class).build()); Assert.assertNotNull("NetworkTopology could not be found in " + LogicalDatastoreType.OPERATIONAL, networkTopology); } @Test public void testHwvtepTopology() throws InterruptedException { - InstanceIdentifier path = InstanceIdentifier - .create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)); + var path = DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) + .build(); Topology topology = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION, path); Assert.assertNotNull("Topology could not be found in " + LogicalDatastoreType.CONFIGURATION, @@ -530,8 +528,7 @@ public class HwvtepSouthboundIT extends AbstractMdsalTestBase { private static Node getPhysicalSwitchNode(ConnectionInfo connectionInfo, String psName, LogicalDatastoreType dataStore) { - InstanceIdentifier psIid = - HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo, new HwvtepNodeName(psName)); - return mdsalUtils.read(dataStore, psIid); + return mdsalUtils.read(dataStore, + HwvtepSouthboundUtils.createInstanceIdentifier(connectionInfo, new HwvtepNodeName(psName))); } } diff --git a/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/ColumnType.java b/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/ColumnType.java index a379a1740..30159bee9 100644 --- a/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/ColumnType.java +++ b/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/ColumnType.java @@ -52,8 +52,7 @@ public abstract class ColumnType { } } //todo move to speicfic typed exception - throw new TyperException(String.format("could not find the right column type %s", - JsonUtils.prettyString(json))); + throw new TyperException("could not find the right column type " + JsonUtils.prettyString(json)); } public BaseType getBaseType() { diff --git a/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/DatabaseSchemaImpl.java b/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/DatabaseSchemaImpl.java index 8fea7e848..2da997cf1 100644 --- a/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/DatabaseSchemaImpl.java +++ b/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/DatabaseSchemaImpl.java @@ -88,7 +88,7 @@ public class DatabaseSchemaImpl implements DatabaseSchema { try { declaredConstructor = clazz.getDeclaredConstructor(TableSchema.class); } catch (NoSuchMethodException e) { - String message = String.format("Class %s does not have public constructor that accepts TableSchema object", + String message = "Class %s does not have public constructor that accepts TableSchema object".formatted( clazz); throw new IllegalArgumentException(message, e); } @@ -96,8 +96,8 @@ public class DatabaseSchemaImpl implements DatabaseSchema { try { return invokable.invoke(null, table); } catch (InvocationTargetException | IllegalAccessException e) { - String message = String.format("Not able to create instance of class %s using public constructor " - + "that accepts TableSchema object", clazz); + String message = "Not able to create instance of class %s using public constructor " + + "that accepts TableSchema object".formatted(clazz); throw new IllegalArgumentException(message, e); } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/InstanceIdentifierCodec.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/InstanceIdentifierCodec.java index 6d6b9d69d..ff5ab66f3 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/InstanceIdentifierCodec.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/InstanceIdentifierCodec.java @@ -9,8 +9,8 @@ package org.opendaylight.ovsdb.southbound; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.opendaylight.mdsal.dom.api.DOMSchemaService; +import org.opendaylight.yangtools.binding.DataObjectReference; import org.opendaylight.yangtools.binding.data.codec.api.BindingNormalizedNodeSerializer; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -65,25 +65,24 @@ public class InstanceIdentifierCodec extends AbstractStringInstanceIdentifierCod this.dataSchemaContextTree = DataSchemaContextTree.from(schemaContext); } - public String serialize(final InstanceIdentifier iid) { + public String serialize(final DataObjectReference iid) { YangInstanceIdentifier normalizedIid = bindingNormalizedNodeSerializer.toYangInstanceIdentifier(iid); return serialize(normalizedIid); } - public YangInstanceIdentifier getYangInstanceIdentifier(final InstanceIdentifier iid) { + public YangInstanceIdentifier getYangInstanceIdentifier(final DataObjectReference iid) { return bindingNormalizedNodeSerializer.toYangInstanceIdentifier(iid); } - public InstanceIdentifier bindingDeserializer(final String iidString) throws DeserializationException { + public DataObjectReference bindingDeserializer(final String iidString) throws DeserializationException { return bindingDeserializer(deserialize(iidString)); } - public InstanceIdentifier bindingDeserializer(final YangInstanceIdentifier yangIID) { - final var ref = bindingNormalizedNodeSerializer.fromYangInstanceIdentifier(yangIID); - return ref != null ? ref.toLegacy() : null; + public DataObjectReference bindingDeserializer(final YangInstanceIdentifier yangIID) { + return bindingNormalizedNodeSerializer.fromYangInstanceIdentifier(yangIID); } - public InstanceIdentifier bindingDeserializerOrNull(final String iidString) { + public DataObjectReference bindingDeserializerOrNull(final String iidString) { try { return bindingDeserializer(iidString); } catch (DeserializationException e) { diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionInstance.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionInstance.java index 46b5df2b2..942984467 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionInstance.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionInstance.java @@ -64,8 +64,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -86,16 +86,16 @@ public class OvsdbConnectionInstance { private final TransactionInvoker txInvoker; private Map transactInvokers = null; private MonitorCallBack callback = null; - private InstanceIdentifier instanceIdentifier; + private DataObjectIdentifier instanceIdentifier; private volatile boolean hasDeviceOwnership = false; private Entity connectedEntity; private Registration deviceOwnershipCandidateRegistration; private OvsdbNodeAugmentation initialCreateData = null; - private final Map> ports = new ConcurrentHashMap<>(); - private final Map> portInterfaces = new ConcurrentHashMap<>(); + private final Map> ports = new ConcurrentHashMap<>(); + private final Map> portInterfaces = new ConcurrentHashMap<>(); OvsdbConnectionInstance(final ConnectionInfo connectionInfo, final OvsdbClient client, final Operations ops, - final TransactionInvoker txInvoker, final InstanceIdentifier iid) { + final TransactionInvoker txInvoker, final DataObjectIdentifier iid) { this.connectionInfo = connectionInfo; this.client = client; this.ops = ops; @@ -103,7 +103,7 @@ public class OvsdbConnectionInstance { instanceIdentifier = iid; } - public void updatePort(final UUID uuid, final InstanceIdentifier iid) { + public void updatePort(final UUID uuid, final DataObjectIdentifier iid) { ports.put(uuid, iid); } @@ -111,11 +111,11 @@ public class OvsdbConnectionInstance { ports.remove(uuid); } - public InstanceIdentifier getPort(final UUID uuid) { + public DataObjectIdentifier getPort(final UUID uuid) { return ports.get(uuid); } - public void updatePortInterface(final String name, final InstanceIdentifier iid) { + public void updatePortInterface(final String name, final DataObjectIdentifier iid) { portInterfaces.put(name, iid); } @@ -123,7 +123,7 @@ public class OvsdbConnectionInstance { portInterfaces.remove(name); } - public InstanceIdentifier getPortInterface(final String name) { + public DataObjectIdentifier getPortInterface(final String name) { return portInterfaces.get(name); } @@ -240,7 +240,7 @@ public class OvsdbConnectionInstance { Map externalIds = initialCreateData.getOpenvswitchExternalIds(); - stampInstanceIdentifier(transaction, instanceIdentifier.firstIdentifierOf(Node.class), + stampInstanceIdentifier(transaction, instanceIdentifier.trimTo(Node.class), instanceIdentifierCodec); ovs.setExternalIds( @@ -264,7 +264,7 @@ public class OvsdbConnectionInstance { } } - private void stampInstanceIdentifier(final TransactionBuilder transaction,final InstanceIdentifier iid, + private void stampInstanceIdentifier(final TransactionBuilder transaction,final DataObjectIdentifier iid, final InstanceIdentifierCodec instanceIdentifierCodec) { OpenVSwitch ovs = transaction.getTypedRowWrapper(OpenVSwitch.class); ovs.setExternalIds(Collections.emptyMap()); @@ -365,7 +365,7 @@ public class OvsdbConnectionInstance { connectionInfo = key; } - public InstanceIdentifier getInstanceIdentifier() { + public DataObjectIdentifier getInstanceIdentifier() { return instanceIdentifier; } @@ -377,7 +377,7 @@ public class OvsdbConnectionInstance { return getNodeKey().getNodeId(); } - public void setInstanceIdentifier(final InstanceIdentifier iid) { + public void setInstanceIdentifier(final DataObjectIdentifier iid) { instanceIdentifier = iid; } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManager.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManager.java index bc9d5ab67..839daab77 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManager.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManager.java @@ -71,9 +71,9 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos private final ConcurrentMap clients = new ConcurrentHashMap<>(); private final ConcurrentMap alreadyProcessedClients = new ConcurrentHashMap<>(); - private final ConcurrentMap> instanceIdentifiers = + private final ConcurrentMap> instanceIdentifiers = new ConcurrentHashMap<>(); - private final ConcurrentMap, OvsdbConnectionInstance> nodeIdVsConnectionInstance = + private final ConcurrentMap, OvsdbConnectionInstance> nodeIdVsConnectionInstance = new ConcurrentHashMap<>(); private final ConcurrentMap entityConnectionMap = new ConcurrentHashMap<>(); private final DataBroker db; @@ -213,7 +213,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos private void deleteOperNodeAndReleaseOwnership(final OvsdbConnectionInstance ovsdbConnectionInstance) { ovsdbConnectionInstance.setHasDeviceOwnership(false); - final InstanceIdentifier nodeIid = ovsdbConnectionInstance.getInstanceIdentifier(); + final var nodeIid = ovsdbConnectionInstance.getInstanceIdentifier(); //remove the node from oper only if it has ownership txInvoker.invoke(new OvsdbNodeRemoveCommand(ovsdbConnectionInstance, null, null) { @@ -234,7 +234,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos }); } - public OvsdbClient connect(final InstanceIdentifier iid, + public OvsdbClient connect(final DataObjectIdentifier iid, final OvsdbNodeAugmentation ovsdbNode) throws UnknownHostException, ConnectException { LOG.info("Connecting to {}", SouthboundUtil.connectionInfoToString(ovsdbNode.getConnectionInfo())); @@ -247,7 +247,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos // For connections from the controller to the ovs instance, the library doesn't call // this method for us if (client != null) { - putInstanceIdentifier(ovsdbNode.getConnectionInfo(), iid.firstIdentifierOf(Node.class)); + putInstanceIdentifier(ovsdbNode.getConnectionInfo(), iid.trimTo(Node.class)); OvsdbConnectionInstance ovsdbConnectionInstance = connectedButCallBacksNotRegistered(client); ovsdbConnectionInstance.setOvsdbNodeAugmentation(ovsdbNode); @@ -313,7 +313,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos } @VisibleForTesting - void putInstanceIdentifier(final ConnectionInfo key, final InstanceIdentifier iid) { + void putInstanceIdentifier(final ConnectionInfo key, final DataObjectIdentifier iid) { ConnectionInfo connectionInfo = SouthboundMapper.suppressLocalIpPort(key); instanceIdentifiers.put(connectionInfo, iid); } @@ -323,7 +323,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos instanceIdentifiers.remove(connectionInfo); } - public InstanceIdentifier getInstanceIdentifier(final ConnectionInfo key) { + public DataObjectIdentifier getInstanceIdentifier(final ConnectionInfo key) { ConnectionInfo connectionInfo = SouthboundMapper.suppressLocalIpPort(key); return instanceIdentifiers.get(connectionInfo); } @@ -356,14 +356,13 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos } } - public OvsdbConnectionInstance getConnectionInstance(final InstanceIdentifier nodePath) { + public OvsdbConnectionInstance getConnectionInstance(final DataObjectIdentifier nodePath) { if (nodeIdVsConnectionInstance.get(nodePath) != null) { return nodeIdVsConnectionInstance.get(nodePath); } try { ReadTransaction transaction = db.newReadOnlyTransaction(); - FluentFuture> nodeFuture = transaction.read( - LogicalDatastoreType.OPERATIONAL, nodePath.toIdentifier()); + FluentFuture> nodeFuture = transaction.read(LogicalDatastoreType.OPERATIONAL, nodePath); transaction.close(); Optional optional = nodeFuture.get(); if (optional.isPresent()) { @@ -402,13 +401,13 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos return ovsdbConnectionInstance.getHasDeviceOwnership(); } - public void reconcileConnection(final InstanceIdentifier iid, final OvsdbNodeAugmentation ovsdbNode) { + public void reconcileConnection(final DataObjectIdentifier iid, final OvsdbNodeAugmentation ovsdbNode) { retryConnection(iid, ovsdbNode, ConnectionReconciliationTriggers.ON_CONTROLLER_INITIATED_CONNECTION_FAILURE); } - public void stopConnectionReconciliationIfActive(final InstanceIdentifier iid, + public void stopConnectionReconciliationIfActive(final DataObjectIdentifier iid, final OvsdbNodeAugmentation ovsdbNode) { final ReconciliationTask task = new ConnectionReconciliationTask( reconciliationManager, @@ -418,7 +417,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos reconciliationManager.dequeue(task); } - public void stopBridgeConfigReconciliationIfActive(final InstanceIdentifier iid) { + public void stopBridgeConfigReconciliationIfActive(final DataObjectIdentifier iid) { final ReconciliationTask task = new BridgeConfigReconciliationTask(reconciliationManager, this, iid, null, instanceIdentifierCodec); reconciliationManager.dequeue(task); @@ -497,7 +496,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos // not clear manager entry, which OvsdbNodeRemoveCommand look for before cleanup. @SuppressWarnings("unchecked") - final InstanceIdentifier nodeIid = (InstanceIdentifier) entity.getIdentifier(); + final var nodeIid = ((InstanceIdentifier) entity.getIdentifier()).toIdentifier(); txInvoker.invoke(transaction -> { Optional ovsdbNodeOpt = SouthboundUtil.readNode(transaction, nodeIid); @@ -515,7 +514,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos LOG.debug("{} had no managed nodes", ovsdbNode.getNodeId().getValue()); } } - transaction.delete(LogicalDatastoreType.OPERATIONAL, nodeIid.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, nodeIid); } }); @@ -552,7 +551,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos } private Entity getEntityFromConnectionInstance(@NonNull final OvsdbConnectionInstance ovsdbConnectionInstance) { - InstanceIdentifier iid = ovsdbConnectionInstance.getInstanceIdentifier(); + var iid = ovsdbConnectionInstance.getInstanceIdentifier(); if (iid == null) { /* Switch initiated connection won't have iid, till it gets OpenVSwitch * table update but update callback is always registered after ownership @@ -564,7 +563,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos + "connection {}",iid,ovsdbConnectionInstance.getConnectionInfo()); ovsdbConnectionInstance.setInstanceIdentifier(iid); } - Entity deviceEntity = new Entity(ENTITY_TYPE, iid); + Entity deviceEntity = new Entity(ENTITY_TYPE, iid.toLegacy()); LOG.debug("Ovsdb Entity {} created for device connection {}", deviceEntity, ovsdbConnectionInstance.getConnectionInfo()); return deviceEntity; @@ -583,7 +582,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos disconnected(ovsdbConnectionInstance.getOvsdbClient()); //TODO do cleanup for old connection or stale check } - nodeIdVsConnectionInstance.put((InstanceIdentifier) candidateEntity.getIdentifier(), + nodeIdVsConnectionInstance.put((DataObjectIdentifier) candidateEntity.getIdentifier().toIdentifier(), ovsdbConnectionInstance); entityConnectionMap.put(candidateEntity, ovsdbConnectionInstance); ovsdbConnectionInstance.setConnectedEntity(candidateEntity); @@ -613,7 +612,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos entityConnectionMap.remove(ovsdbConnectionInstance.getConnectedEntity(), ovsdbConnectionInstance); } - private void retryConnection(final InstanceIdentifier iid, final OvsdbNodeAugmentation ovsdbNode, + private void retryConnection(final DataObjectIdentifier iid, final OvsdbNodeAugmentation ovsdbNode, final ConnectionReconciliationTriggers trigger) { final ReconciliationTask task = new ConnectionReconciliationTask( reconciliationManager, @@ -631,7 +630,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos case ON_DISCONNECT: { FluentFuture readNodeFuture; try (ReadTransaction tx = db.newReadOnlyTransaction()) { - readNodeFuture = tx.exists(LogicalDatastoreType.CONFIGURATION, iid.toIdentifier()); + readNodeFuture = tx.exists(LogicalDatastoreType.CONFIGURATION, iid); } readNodeFuture.addCallback(new FutureCallback() { @Override @@ -643,7 +642,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos } else { LOG.debug("Connection {} was switch initiated, no reconciliation is required", - iid.firstKeyOf(Node.class).getNodeId()); + iid.getFirstKeyOf(Node.class).getNodeId()); } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbDataTreeChangeListener.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbDataTreeChangeListener.java index a71faea4c..9e4b8e10d 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbDataTreeChangeListener.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbDataTreeChangeListener.java @@ -19,7 +19,6 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.DataObjectModification; import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; -import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.OvsdbClient; @@ -34,8 +33,8 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObjectIdentifier; +import org.opendaylight.yangtools.binding.DataObjectReference; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -70,12 +69,11 @@ public final class OvsdbDataTreeChangeListener implements DataTreeChangeListener this.cm = cm; this.db = db; this.instanceIdentifierCodec = instanceIdentifierCodec; - InstanceIdentifier path = InstanceIdentifier - .create(NetworkTopology.class) + registration = db.registerTreeChangeListener(LogicalDatastoreType.CONFIGURATION, + DataObjectReference.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class); - DataTreeIdentifier dataTreeIdentifier = DataTreeIdentifier.of(LogicalDatastoreType.CONFIGURATION, path); - registration = db.registerTreeChangeListener(dataTreeIdentifier, this); + .child(Node.class) + .build(), this); LOG.info("OVSDB topology listener has been registered."); } @@ -115,13 +113,13 @@ public final class OvsdbDataTreeChangeListener implements DataTreeChangeListener if (ovsdbNode != null) { ConnectionInfo key = ovsdbNode.getConnectionInfo(); if (key != null) { - InstanceIdentifier iid = cm.getInstanceIdentifier(key); + var iid = cm.getInstanceIdentifier(key); if (iid != null) { LOG.warn("Connection to device {} already exists. Plugin does not allow multiple " + "connections to same device, hence dropping the request {}", key, ovsdbNode); } else { try { - cm.connect(change.getRootPath().path(), ovsdbNode); + cm.connect(change.path(), ovsdbNode); LOG.info("OVSDB node has been connected: {}",ovsdbNode); } catch (UnknownHostException | ConnectException e) { LOG.warn("Failed to connect to ovsdbNode", e); @@ -143,12 +141,12 @@ public final class OvsdbDataTreeChangeListener implements DataTreeChangeListener OvsdbNodeAugmentation ovsdbNode = ovsdbNodeModification.dataBefore(); if (ovsdbNode != null) { ConnectionInfo key = ovsdbNode.getConnectionInfo(); - InstanceIdentifier iid = cm.getInstanceIdentifier(key); + var iid = cm.getInstanceIdentifier(key); try { cm.disconnect(ovsdbNode); LOG.info("OVSDB node has been disconnected:{}", ovsdbNode); if (iid != null) { - cm.stopConnectionReconciliationIfActive(iid.firstIdentifierOf(Node.class), ovsdbNode); + cm.stopConnectionReconciliationIfActive(iid.trimTo(Node.class), ovsdbNode); } } catch (UnknownHostException e) { LOG.warn("Failed to disconnect ovsdbNode", e); @@ -167,14 +165,13 @@ public final class OvsdbDataTreeChangeListener implements DataTreeChangeListener if (connectionInfoDOM.modificationType() == DataObjectModification.ModificationType.DELETE) { ConnectionInfo key = connectionInfoDOM.dataBefore(); if (key != null) { - InstanceIdentifier iid = cm.getInstanceIdentifier(key); + var iid = cm.getInstanceIdentifier(key); try { OvsdbNodeAugmentation ovsdbNode = ovsdbNodeModification.dataBefore(); cm.disconnect(ovsdbNode); LOG.warn("OVSDB node {} has been disconnected, because connection-info related to " + "the node is removed by user, but node still exist.", ovsdbNode); - cm.stopConnectionReconciliationIfActive(iid.firstIdentifierOf(Node.class), - ovsdbNode); + cm.stopConnectionReconciliationIfActive(iid.trimTo(Node.class), ovsdbNode); } catch (UnknownHostException e) { LOG.warn("Failed to disconnect ovsdbNode", e); } @@ -205,7 +202,7 @@ public final class OvsdbDataTreeChangeListener implements DataTreeChangeListener if (dataBefore != null) { try { cm.disconnect(dataBefore); - cm.connect(change.getRootPath().path(), dataAfter); + cm.connect(change.path(), dataAfter); } catch (UnknownHostException | ConnectException e) { LOG.warn("Error disconnecting from or connecting to ovsdbNode", e); } @@ -253,15 +250,14 @@ public final class OvsdbDataTreeChangeListener implements DataTreeChangeListener if (bridgeAugmentation != null) { OvsdbNodeRef managedBy = bridgeAugmentation.getManagedBy(); if (managedBy != null) { - client = cm.getConnectionInstance( - ((DataObjectIdentifier) managedBy.getValue()).toLegacy()); + client = cm.getConnectionInstance(((DataObjectIdentifier) managedBy.getValue())); } } } if (client == null) { //Try getting from change root identifier - client = cm.getConnectionInstance(change.getRootPath().path()); + client = cm.getConnectionInstance(change.path()); } } else { LOG.warn("Following change don't have after/before data {}", change); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbOperGlobalListener.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbOperGlobalListener.java index eccab3371..d6a6d54d8 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbOperGlobalListener.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbOperGlobalListener.java @@ -16,7 +16,6 @@ import java.util.concurrent.TimeUnit; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.DataObjectModification; import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; -import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.ovsdb.southbound.transactions.md.TransactionInvoker; @@ -25,13 +24,14 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; +import org.opendaylight.yangtools.binding.DataObjectReference; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public final class OvsdbOperGlobalListener implements DataTreeChangeListener, AutoCloseable { - public static final ConcurrentMap, Node> OPER_NODE_CACHE = new ConcurrentHashMap<>(); + public static final ConcurrentMap, Node> OPER_NODE_CACHE = new ConcurrentHashMap<>(); private static final Logger LOG = LoggerFactory.getLogger(OvsdbOperGlobalListener.class); @@ -50,11 +50,11 @@ public final class OvsdbOperGlobalListener implements DataTreeChangeListener> changes) { changes.forEach(change -> { try { - final var key = change.getRootPath().path(); + final var key = change.path(); final var mod = change.getRootNode(); final var addNode = getCreated(mod); if (addNode != null) { @@ -88,8 +88,7 @@ public final class OvsdbOperGlobalListener implements DataTreeChangeListener tx.put(LogicalDatastoreType.OPERATIONAL, key.toIdentifier(), removedNode)); + txInvoker.invoke(tx -> tx.put(LogicalDatastoreType.OPERATIONAL, key, removedNode)); } } @@ -105,9 +104,9 @@ public final class OvsdbOperGlobalListener implements DataTreeChangeListener, ScheduledFuture> TIMEOUT_FTS = new ConcurrentHashMap<>(); + private static final Map, ScheduledFuture> TIMEOUT_FTS = new ConcurrentHashMap<>(); - public static void runAfterTimeoutIfNodeNotCreated(final InstanceIdentifier iid, final Runnable job) { + public static void runAfterTimeoutIfNodeNotCreated(final DataObjectIdentifier iid, final Runnable job) { ScheduledFuture ft = TIMEOUT_FTS.get(iid); if (ft != null) { ft.cancel(false); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundMapper.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundMapper.java index 61db14c9a..f94703528 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundMapper.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundMapper.java @@ -26,6 +26,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.ovsdb.lib.OvsdbClient; import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException; import org.opendaylight.ovsdb.lib.notation.UUID; @@ -96,7 +97,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier.WithKey; import org.opendaylight.yangtools.yang.common.Uint16; import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; @@ -165,48 +166,43 @@ public final class SouthboundMapper { return new IpAddress(ipv6); } - public static InstanceIdentifier createTopologyInstanceIdentifier() { - return InstanceIdentifier.create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)); + public static @NonNull WithKey createTopologyInstanceIdentifier() { + return DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) + .build(); } - public static InstanceIdentifier createInstanceIdentifier(final NodeId nodeId) { - return createTopologyInstanceIdentifier().child(Node.class, new NodeKey(nodeId)); + public static @NonNull WithKey createInstanceIdentifier(final NodeId nodeId) { + return createTopologyInstanceIdentifier().toBuilder().child(Node.class, new NodeKey(nodeId)).build(); } @SuppressWarnings("unchecked") public static DataObjectIdentifier createInstanceIdentifier( final InstanceIdentifierCodec instanceIdentifierCodec, final OvsdbConnectionInstance client, final Bridge bridge) { - InstanceIdentifier iid; if (bridge.getExternalIdsColumn() != null && bridge.getExternalIdsColumn().getData() != null && bridge.getExternalIdsColumn().getData().containsKey(SouthboundConstants.IID_EXTERNAL_ID_KEY)) { String iidString = bridge.getExternalIdsColumn().getData().get(SouthboundConstants.IID_EXTERNAL_ID_KEY); - iid = (InstanceIdentifier) instanceIdentifierCodec.bindingDeserializerOrNull(iidString); - } else { - iid = createInstanceIdentifier(client, bridge.getName()); + return (DataObjectIdentifier) instanceIdentifierCodec.bindingDeserializerOrNull(iidString); } - return iid.toIdentifier(); + return createInstanceIdentifier(client, bridge.getName()); } @SuppressWarnings("unchecked") - public static InstanceIdentifier createInstanceIdentifier( + public static DataObjectIdentifier createInstanceIdentifier( final InstanceIdentifierCodec instanceIdentifierCodec, final OvsdbConnectionInstance client, final Controller controller, final String bridgeName) { - InstanceIdentifier iid; if (controller.getExternalIdsColumn() != null && controller.getExternalIdsColumn().getData() != null && controller.getExternalIdsColumn().getData().containsKey(SouthboundConstants.IID_EXTERNAL_ID_KEY)) { String iidString = controller.getExternalIdsColumn().getData().get(SouthboundConstants.IID_EXTERNAL_ID_KEY); - iid = (InstanceIdentifier) instanceIdentifierCodec.bindingDeserializerOrNull(iidString); - } else { - iid = createInstanceIdentifier(client, bridgeName); + return (DataObjectIdentifier) instanceIdentifierCodec.bindingDeserializerOrNull(iidString); } - return iid; + return createInstanceIdentifier(client, bridgeName); } - public static InstanceIdentifier createInstanceIdentifier( + public static DataObjectIdentifier createInstanceIdentifier( final OvsdbConnectionInstance client, final String bridgeName) { String nodeString = client.getNodeKey().getNodeId().getValue() + "/bridge/" + bridgeName; @@ -215,9 +211,8 @@ public final class SouthboundMapper { } - public static NodeId createManagedNodeId(final InstanceIdentifier iid) { - NodeKey nodeKey = iid.firstKeyOf(Node.class); - return nodeKey.getNodeId(); + public static NodeId createManagedNodeId(final DataObjectIdentifier iid) { + return iid.getFirstKeyOf(Node.class).getNodeId(); } public static InetAddress createInetAddress(final IpAddress ip) throws UnknownHostException { @@ -569,30 +564,30 @@ public final class SouthboundMapper { } - public static InstanceIdentifier getInstanceIdentifier(final InstanceIdentifierCodec instanceIdentifierCodec, - final OpenVSwitch ovs) { + public static DataObjectIdentifier getInstanceIdentifier( + final InstanceIdentifierCodec instanceIdentifierCodec, final OpenVSwitch ovs) { if (ovs.getExternalIdsColumn() != null && ovs.getExternalIdsColumn().getData() != null && ovs.getExternalIdsColumn().getData().containsKey(SouthboundConstants.IID_EXTERNAL_ID_KEY)) { String iidString = ovs.getExternalIdsColumn().getData().get(SouthboundConstants.IID_EXTERNAL_ID_KEY); - return (InstanceIdentifier) instanceIdentifierCodec.bindingDeserializerOrNull(iidString); + return (DataObjectIdentifier) + instanceIdentifierCodec.bindingDeserializerOrNull(iidString).toIdentifier(); } else { String nodeString = SouthboundConstants.OVSDB_URI_PREFIX + "://" + SouthboundConstants.UUID + "/" + ovs.getUuid().toString(); NodeId nodeId = new NodeId(new Uri(nodeString)); NodeKey nodeKey = new NodeKey(nodeId); - return InstanceIdentifier.builder(NetworkTopology.class) + return DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class,new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class,nodeKey) .build(); } } - public static Map, DataObject> extractTerminationPointConfigurationChanges( + public static Map, DataObject> extractTerminationPointConfigurationChanges( final Node bridgeNode) { - Map, DataObject> changes = new HashMap<>(); - final InstanceIdentifier bridgeNodeIid = - SouthboundMapper.createInstanceIdentifier(bridgeNode.getNodeId()); + Map, DataObject> changes = new HashMap<>(); + final var bridgeNodeIid = SouthboundMapper.createInstanceIdentifier(bridgeNode.getNodeId()); changes.put(bridgeNodeIid, bridgeNode); Map terminationPoints = bridgeNode.getTerminationPoint(); @@ -601,12 +596,10 @@ public final class SouthboundMapper { OvsdbTerminationPointAugmentation ovsdbTerminationPointAugmentation = tp.augmentation(OvsdbTerminationPointAugmentation.class); if (ovsdbTerminationPointAugmentation != null) { - final InstanceIdentifier tpIid = - bridgeNodeIid - .child(TerminationPoint.class, new TerminationPointKey(tp.getTpId())) - .builder() - .augmentation(OvsdbTerminationPointAugmentation.class) - .build(); + final var tpIid = bridgeNodeIid.toBuilder() + .child(TerminationPoint.class, new TerminationPointKey(tp.getTpId())) + .augmentation(OvsdbTerminationPointAugmentation.class) + .build(); changes.put(tpIid, ovsdbTerminationPointAugmentation); } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundUtil.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundUtil.java index 2b0737fdc..55c2dd73f 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundUtil.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundUtil.java @@ -33,7 +33,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -94,14 +93,14 @@ public final class SouthboundUtil { } public static Optional readNode(ReadWriteTransaction transaction, - InstanceIdentifier connectionIid) { + DataObjectIdentifier connectionIid) { Optional node; try { Node cachedNode = OvsdbOperGlobalListener.OPER_NODE_CACHE.get(connectionIid); if (cachedNode != null) { node = Optional.of((D)cachedNode); } else { - node = transaction.read(LogicalDatastoreType.OPERATIONAL, connectionIid.toIdentifier()).get(); + node = transaction.read(LogicalDatastoreType.OPERATIONAL, connectionIid).get(); } } catch (InterruptedException | ExecutionException e) { LOG.warn("Read Operational/DS for Node failed! {}", connectionIid, e); @@ -111,14 +110,14 @@ public final class SouthboundUtil { } public static Optional readNode(ReadTransaction transaction, - InstanceIdentifier connectionIid) { + DataObjectIdentifier connectionIid) { Optional node; try { Node cachedNode = OvsdbOperGlobalListener.OPER_NODE_CACHE.get(connectionIid); if (cachedNode != null) { node = Optional.of((D)cachedNode); } else { - node = transaction.read(LogicalDatastoreType.OPERATIONAL, connectionIid.toIdentifier()).get(); + node = transaction.read(LogicalDatastoreType.OPERATIONAL, connectionIid).get(); } } catch (InterruptedException | ExecutionException e) { LOG.warn("Read Operational/DS for Node failed! {}", connectionIid, e); @@ -202,12 +201,12 @@ public final class SouthboundUtil { } @SuppressWarnings("checkstyle:IllegalCatch") - public static String getOvsdbNodeId(InstanceIdentifier nodeIid) { + public static String getOvsdbNodeId(DataObjectIdentifier nodeIid) { String nodeId = ""; if (nodeIid != null) { try { nodeId = nodeIid.toString(); - nodeId = nodeIid.firstKeyOf(Node.class).getNodeId().getValue(); + nodeId = nodeIid.getFirstKeyOf(Node.class).getNodeId().getValue(); } catch (Exception exp) { LOG.debug("Exception in getting the value from {} ", nodeIid); } @@ -215,7 +214,7 @@ public final class SouthboundUtil { return nodeId; } - public static String getBridgeNameFromOvsdbNodeId(InstanceIdentifier nodeIid) { + public static String getBridgeNameFromOvsdbNodeId(DataObjectIdentifier nodeIid) { String nodeId = getOvsdbNodeId(nodeIid); if (nodeId != null && !nodeId.isEmpty() && nodeId.contains("bridge") && nodeId.lastIndexOf("bridge") + 7 < nodeId.length()) { diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/AutoAttachRemovedCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/AutoAttachRemovedCommand.java index 5f7fb0722..dbd3bba16 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/AutoAttachRemovedCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/AutoAttachRemovedCommand.java @@ -33,7 +33,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.PropertyIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,10 +60,10 @@ public class AutoAttachRemovedCommand extends AbstractTransactCommand { } private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Map, OvsdbNodeAugmentation> original, - final Map, OvsdbNodeAugmentation> updated) { + final Map, OvsdbNodeAugmentation> original, + final Map, OvsdbNodeAugmentation> updated) { for (var originalEntry : original.entrySet()) { - final InstanceIdentifier ovsdbNodeIid = originalEntry.getKey(); + final DataObjectIdentifier ovsdbNodeIid = originalEntry.getKey(); final OvsdbNodeAugmentation ovsdbNodeAugmentation = originalEntry.getValue(); final OvsdbNodeAugmentation deletedOvsdbNodeAugmentation = updated.get(ovsdbNodeIid); @@ -94,7 +93,7 @@ public class AutoAttachRemovedCommand extends AbstractTransactCommand { } private void deleteAutoAttach(final BridgeOperationalState state, final TransactionBuilder transaction, - final InstanceIdentifier ovsdbNodeIid, final Uuid autoattachUuid) { + final DataObjectIdentifier ovsdbNodeIid, final Uuid autoattachUuid) { LOG.debug("Received request to delete Autoattach entry {}", autoattachUuid); final OvsdbBridgeAugmentation bridgeAugmentation = getBridge(state, ovsdbNodeIid, autoattachUuid); @@ -134,12 +133,12 @@ public class AutoAttachRemovedCommand extends AbstractTransactCommand { } private static OvsdbBridgeAugmentation getBridge(final BridgeOperationalState state, - final InstanceIdentifier key, final Uuid aaUuid) { + final DataObjectIdentifier key, final Uuid aaUuid) { if (aaUuid == null) { return null; } try (ReadTransaction transaction = state.dataBroker().newReadOnlyTransaction()) { - final var nodeOptional = SouthboundUtil.readNode(transaction, key.firstIdentifierOf(Node.class)); + final var nodeOptional = SouthboundUtil.readNode(transaction, key.trimTo(Node.class)); if (nodeOptional.isPresent()) { final var managedNodes = nodeOptional.orElseThrow() .augmentation(OvsdbNodeAugmentation.class).getManagedNodeEntry(); @@ -149,10 +148,11 @@ public class AutoAttachRemovedCommand extends AbstractTransactCommand { case PropertyIdentifier pi -> pi.container(); }; - final var brIid = doi.toLegacy().firstIdentifierOf(Node.class) - .augmentation(OvsdbBridgeAugmentation.class); + final var brIid = doi.trimTo(Node.class).toBuilder() + .augmentation(OvsdbBridgeAugmentation.class) + .build(); final Optional optionalBridge = - transaction.read(LogicalDatastoreType.OPERATIONAL, brIid.toIdentifier()).get(); + transaction.read(LogicalDatastoreType.OPERATIONAL, brIid).get(); OvsdbBridgeAugmentation bridge = optionalBridge.orElseThrow(); if (bridge != null && bridge.getAutoAttach() != null && bridge.getAutoAttach().equals(aaUuid)) { diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/AutoAttachUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/AutoAttachUpdateCommand.java index 937ec43c1..9b7a986de 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/AutoAttachUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/AutoAttachUpdateCommand.java @@ -41,7 +41,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -69,14 +69,14 @@ public class AutoAttachUpdateCommand extends AbstractTransactCommand { private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Map, OvsdbNodeAugmentation> createdOrUpdated) { + final Map, OvsdbNodeAugmentation> createdOrUpdated) { for (var ovsdbNodeEntry : createdOrUpdated.entrySet()) { updateAutoAttach(transaction, state, ovsdbNodeEntry.getKey(), ovsdbNodeEntry.getValue()); } } private void updateAutoAttach(final TransactionBuilder transaction, final BridgeOperationalState state, - final InstanceIdentifier iid, final OvsdbNodeAugmentation ovsdbNode) { + final DataObjectIdentifier iid, final OvsdbNodeAugmentation ovsdbNode) { if (!state.getBridgeNode(iid).isPresent()) { return; @@ -165,14 +165,15 @@ public class AutoAttachUpdateCommand extends AbstractTransactCommand { } private static OvsdbBridgeAugmentation getBridge(final BridgeOperationalState state, - final InstanceIdentifier key, final Uri bridgeUri) { - final InstanceIdentifier bridgeIid = InstanceIdentifier.create(NetworkTopology.class) + final DataObjectIdentifier key, final Uri bridgeUri) { + final var bridgeIid = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class, new NodeKey(new NodeId(bridgeUri))) - .augmentation(OvsdbBridgeAugmentation.class); + .augmentation(OvsdbBridgeAugmentation.class) + .build(); try (ReadTransaction transaction = state.dataBroker().newReadOnlyTransaction()) { - final var bridgeOptional = transaction.read(LogicalDatastoreType.OPERATIONAL, bridgeIid.toIdentifier()) + final var bridgeOptional = transaction.read(LogicalDatastoreType.OPERATIONAL, bridgeIid) .get(); if (bridgeOptional.isPresent()) { return bridgeOptional.orElseThrow(); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeOperationalState.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeOperationalState.java index a7b8fd160..265c7b580 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeOperationalState.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeOperationalState.java @@ -25,7 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,8 +55,8 @@ public class BridgeOperationalState { } @SuppressWarnings("IllegalCatch") - public Optional getBridgeNode(InstanceIdentifier iid) { - InstanceIdentifier nodeIid = iid.firstIdentifierOf(Node.class); + public Optional getBridgeNode(DataObjectIdentifier iid) { + DataObjectIdentifier nodeIid = iid.trimTo(Node.class); try (ReadTransaction transaction = dataBroker.newReadOnlyTransaction()) { return SouthboundUtil.readNode(transaction, nodeIid); } catch (Exception exp) { @@ -65,12 +65,12 @@ public class BridgeOperationalState { } } - public Optional getOvsdbBridgeAugmentation(InstanceIdentifier iid) { + public Optional getOvsdbBridgeAugmentation(DataObjectIdentifier iid) { return getBridgeNode(iid) .flatMap(node -> Optional.ofNullable(node.augmentation(OvsdbBridgeAugmentation.class))); } - public Optional getBridgeTerminationPoint(InstanceIdentifier iid) { + public Optional getBridgeTerminationPoint(DataObjectIdentifier iid) { if (iid != null) { Optional nodeOptional = getBridgeNode(iid); if (nodeOptional.isPresent()) { @@ -89,12 +89,13 @@ public class BridgeOperationalState { return Optional.empty(); } - public Optional getOvsdbTerminationPointAugmentation(InstanceIdentifier iid) { + public Optional getOvsdbTerminationPointAugmentation( + DataObjectIdentifier iid) { return getBridgeTerminationPoint(iid) .flatMap(tp -> Optional.ofNullable(tp.augmentation(OvsdbTerminationPointAugmentation.class))); } - public Optional getControllerEntry(InstanceIdentifier iid) { + public Optional getControllerEntry(DataObjectIdentifier iid) { if (iid != null) { Optional ovsdbBridgeOptional = getOvsdbBridgeAugmentation(iid); if (ovsdbBridgeOptional.isPresent()) { @@ -114,7 +115,7 @@ public class BridgeOperationalState { return Optional.empty(); } - public Optional getProtocolEntry(InstanceIdentifier iid) { + public Optional getProtocolEntry(DataObjectIdentifier iid) { if (iid != null) { Optional ovsdbBridgeOptional = getOvsdbBridgeAugmentation(iid); if (ovsdbBridgeOptional.isPresent()) { diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeRemovedCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeRemovedCommand.java index 415d94f82..20beb79df 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeRemovedCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeRemovedCommand.java @@ -22,7 +22,7 @@ import org.opendaylight.ovsdb.schema.openvswitch.OpenVSwitch; import org.opendaylight.ovsdb.southbound.InstanceIdentifierCodec; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,9 +49,9 @@ public class BridgeRemovedCommand extends AbstractTransactCommand { } private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Set> removed, - final Map, OvsdbBridgeAugmentation> originals) { - for (InstanceIdentifier ovsdbManagedNodeIid: removed) { + final Set> removed, + final Map, OvsdbBridgeAugmentation> originals) { + for (var ovsdbManagedNodeIid : removed) { LOG.debug("Received request to delete ovsdb node : {}", ovsdbManagedNodeIid); OvsdbBridgeAugmentation original = originals.get(ovsdbManagedNodeIid); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeUpdateCommand.java index 4de708787..e4504c8dc 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeUpdateCommand.java @@ -12,7 +12,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import java.util.Set; import org.eclipse.jdt.annotation.NonNull; @@ -35,7 +34,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.BridgeExternalIds; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.BridgeOtherConfigs; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,17 +61,16 @@ public class BridgeUpdateCommand extends AbstractTransactCommand { } private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Map, OvsdbBridgeAugmentation> createdOrUpdated, + final Map, OvsdbBridgeAugmentation> createdOrUpdated, final InstanceIdentifierCodec instanceIdentifierCodec) { - for (Entry, OvsdbBridgeAugmentation> ovsdbManagedNodeEntry : - createdOrUpdated.entrySet()) { + for (var ovsdbManagedNodeEntry : createdOrUpdated.entrySet()) { updateBridge(transaction, state, ovsdbManagedNodeEntry.getKey(), ovsdbManagedNodeEntry.getValue(), instanceIdentifierCodec); } } private void updateBridge(final TransactionBuilder transaction, final BridgeOperationalState state, - final InstanceIdentifier iid, final OvsdbBridgeAugmentation ovsdbManagedNode, + final DataObjectIdentifier iid, final OvsdbBridgeAugmentation ovsdbManagedNode, final InstanceIdentifierCodec instanceIdentifierCodec) { LOG.debug("Received request to create ovsdb bridge name: {} uuid: {}", ovsdbManagedNode.getBridgeName(), @@ -101,8 +99,7 @@ public class BridgeUpdateCommand extends AbstractTransactCommand { transaction.add(op.update(bridge) .where(extraBridge.getNameColumn().getSchema().opEqual(existingBridgeName)) .build()); - stampInstanceIdentifier(transaction, iid.firstIdentifierOf(Node.class), existingBridgeName, - instanceIdentifierCodec); + stampInstanceIdentifier(transaction, iid.trimTo(Node.class), existingBridgeName, instanceIdentifierCodec); } } @@ -130,7 +127,7 @@ public class BridgeUpdateCommand extends AbstractTransactCommand { @SuppressFBWarnings("DCN_NULLPOINTER_EXCEPTION") private static void setOpenDaylightExternalIds(final Bridge bridge, - final InstanceIdentifier iid, final OvsdbBridgeAugmentation ovsdbManagedNode, + final DataObjectIdentifier iid, final OvsdbBridgeAugmentation ovsdbManagedNode, final InstanceIdentifierCodec instanceIdentifierCodec) { // Set the iid external_id Map externalIdMap = new HashMap<>(); @@ -190,7 +187,7 @@ public class BridgeUpdateCommand extends AbstractTransactCommand { } private void stampInstanceIdentifier(final TransactionBuilder transaction, - final InstanceIdentifier iid, final String bridgeName, + final DataObjectIdentifier iid, final String bridgeName, final InstanceIdentifierCodec instanceIdentifierCodec) { Bridge bridge = transaction.getTypedRowWrapper(Bridge.class); bridge.setName(bridgeName); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ControllerRemovedCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ControllerRemovedCommand.java index d01987435..bd2d8af19 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ControllerRemovedCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ControllerRemovedCommand.java @@ -22,7 +22,7 @@ import org.opendaylight.ovsdb.southbound.InstanceIdentifierCodec; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,12 +49,11 @@ public class ControllerRemovedCommand extends AbstractTransactCommand { } private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Set> removedControllers, - final Map, OvsdbBridgeAugmentation> modifiedBridges) { - for (InstanceIdentifier controllerIid : removedControllers) { + final Set> removedControllers, + final Map, OvsdbBridgeAugmentation> modifiedBridges) { + for (var controllerIid : removedControllers) { LOG.debug("Removing Registered...ODL controller : {} ", controllerIid); - InstanceIdentifier bridgeIid = - controllerIid.firstIdentifierOf(OvsdbBridgeAugmentation.class); + var bridgeIid = controllerIid.trimTo(OvsdbBridgeAugmentation.class); OvsdbBridgeAugmentation ovsdbBridge = modifiedBridges.get(bridgeIid); Optional controllerEntryOptional = state.getControllerEntry(controllerIid); if (ovsdbBridge != null && controllerEntryOptional.isPresent()) { diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ControllerUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ControllerUpdateCommand.java index 17bff0ccd..36d6f380a 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ControllerUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ControllerUpdateCommand.java @@ -10,7 +10,6 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import java.util.Collection; import java.util.Collections; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.lib.notation.Mutator; @@ -24,7 +23,7 @@ import org.opendaylight.ovsdb.southbound.SouthboundMapper; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,18 +50,15 @@ public class ControllerUpdateCommand extends AbstractTransactCommand { } private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Map, ControllerEntry> controllers, - final Map, OvsdbBridgeAugmentation> bridges) { + final Map, ControllerEntry> controllers, + final Map, OvsdbBridgeAugmentation> bridges) { LOG.info("Register ODL controllers : {} bridges detail : {}", controllers, bridges); - for (Entry, ControllerEntry> entry: controllers.entrySet()) { - Optional operationalControllerEntryOptional = - state.getControllerEntry(entry.getKey()); + for (var entry: controllers.entrySet()) { + Optional operationalControllerEntryOptional = state.getControllerEntry(entry.getKey()); if (!operationalControllerEntryOptional.isPresent()) { - InstanceIdentifier bridgeIid = - entry.getKey().firstIdentifierOf(OvsdbBridgeAugmentation.class); - Optional bridgeOptional = - state.getOvsdbBridgeAugmentation(bridgeIid); + var bridgeIid = entry.getKey().trimTo(OvsdbBridgeAugmentation.class); + Optional bridgeOptional = state.getOvsdbBridgeAugmentation(bridgeIid); OvsdbBridgeAugmentation ovsdbBridge = bridgeOptional.isPresent() ? bridgeOptional.orElseThrow() : bridges.get(bridgeIid); if (ovsdbBridge != null diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/DataChangeEvent.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/DataChangeEvent.java index f8a0b2d6e..a8fb90aea 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/DataChangeEvent.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/DataChangeEvent.java @@ -10,7 +10,7 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import java.util.Map; import java.util.Set; import org.opendaylight.yangtools.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; public interface DataChangeEvent { /** @@ -20,7 +20,7 @@ public interface DataChangeEvent { * * @return map of paths and newly created objects */ - Map, DataObject> getCreatedData(); + Map, DataObject> getCreatedData(); /** * Returns a map of paths and objects which were updated by this change in the @@ -29,14 +29,14 @@ public interface DataChangeEvent { * * @return map of paths and newly created objects */ - Map, DataObject> getUpdatedData(); + Map, DataObject> getUpdatedData(); /** * Returns an immutable set of removed paths. * * @return set of removed paths */ - Set> getRemovedPaths(); + Set> getRemovedPaths(); /** * Returns an immutable map of updated or removed paths and their original @@ -44,5 +44,5 @@ public interface DataChangeEvent { * * @return map of paths and original state of updated and removed objects. */ - Map, DataObject> getOriginalData(); + Map, DataObject> getOriginalData(); } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/DataChangesManagedByOvsdbNodeEvent.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/DataChangesManagedByOvsdbNodeEvent.java index 8b5347201..ae036b0e2 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/DataChangesManagedByOvsdbNodeEvent.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/DataChangesManagedByOvsdbNodeEvent.java @@ -5,13 +5,11 @@ * 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.ovsdb.southbound.ovsdb.transact; import java.util.HashMap; import java.util.HashSet; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import java.util.Set; import org.opendaylight.mdsal.binding.api.DataBroker; @@ -22,34 +20,32 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class DataChangesManagedByOvsdbNodeEvent implements DataChangeEvent { - private final InstanceIdentifier iid; + private final DataObjectIdentifier iid; private final DataBroker db; private final DataChangeEvent event; - private Map, DataObject> createdData = null; - private Map, DataObject> updatedData = null; - private Map, DataObject> originalData = null; - private Set> removedPaths; + private Map, DataObject> createdData = null; + private Map, DataObject> updatedData = null; + private Map, DataObject> originalData = null; + private Set> removedPaths; - public DataChangesManagedByOvsdbNodeEvent(DataBroker dataBroker, InstanceIdentifier iid, + public DataChangesManagedByOvsdbNodeEvent(DataBroker dataBroker, DataObjectIdentifier iid, DataChangeEvent event) { this.db = dataBroker; this.iid = iid; this.event = event; } - private Map, DataObject> filter(Map, + private Map, DataObject> filter(Map, DataObject> data) { - Map, DataObject> result - = new HashMap<>(); - for (Entry, DataObject> entry: data.entrySet()) { + Map, DataObject> result = new HashMap<>(); + for (var entry: data.entrySet()) { if (isManagedBy(entry.getKey())) { result.put(entry.getKey(),entry.getValue()); } else { - Class type = entry.getKey().getTargetType(); + Class type = entry.getKey().lastStep().type(); if (type.equals(OvsdbNodeAugmentation.class) || type.equals(OvsdbTerminationPointAugmentation.class) || type.equals(Node.class)) { @@ -61,7 +57,7 @@ public class DataChangesManagedByOvsdbNodeEvent implements DataChangeEvent { } @Override - public Map, DataObject> getCreatedData() { + public Map, DataObject> getCreatedData() { if (this.createdData == null) { this.createdData = filter(event.getCreatedData()); } @@ -69,7 +65,7 @@ public class DataChangesManagedByOvsdbNodeEvent implements DataChangeEvent { } @Override - public Map, DataObject> getUpdatedData() { + public Map, DataObject> getUpdatedData() { if (this.updatedData == null) { this.updatedData = filter(event.getUpdatedData()); } @@ -77,10 +73,10 @@ public class DataChangesManagedByOvsdbNodeEvent implements DataChangeEvent { } @Override - public Set> getRemovedPaths() { + public Set> getRemovedPaths() { if (this.removedPaths == null) { this.removedPaths = new HashSet<>(); - for (InstanceIdentifier path: event.getRemovedPaths()) { + for (var path: event.getRemovedPaths()) { if (isManagedBy(path)) { this.removedPaths.add(path); } @@ -89,10 +85,10 @@ public class DataChangesManagedByOvsdbNodeEvent implements DataChangeEvent { return this.removedPaths; } - private boolean isManagedBy(InstanceIdentifier bridgeIid) { + private boolean isManagedBy(DataObjectIdentifier bridgeIid) { // Did we just create the containing node? - InstanceIdentifier managedBy = getManagedByIid(event.getCreatedData() , bridgeIid); + var managedBy = getManagedByIid(event.getCreatedData() , bridgeIid); if (managedBy != null && managedBy.equals(iid)) { return true; } @@ -117,27 +113,27 @@ public class DataChangesManagedByOvsdbNodeEvent implements DataChangeEvent { } - private InstanceIdentifier getManagedByIidFromOperDS(InstanceIdentifier bridgeIid) { + private DataObjectIdentifier getManagedByIidFromOperDS(DataObjectIdentifier bridgeIid) { // Get the InstanceIdentifier of the containing node - InstanceIdentifier nodeEntryIid = bridgeIid.firstIdentifierOf(Node.class); + DataObjectIdentifier nodeEntryIid = bridgeIid.trimTo(Node.class); - Optional bridgeNode = SouthboundUtil.readNode(db.newReadWriteTransaction(),nodeEntryIid); + Optional bridgeNode = SouthboundUtil.readNode(db.newReadWriteTransaction() ,nodeEntryIid); if (bridgeNode.isPresent() && bridgeNode.orElseThrow() instanceof Node node) { OvsdbBridgeAugmentation bridge = node.augmentation(OvsdbBridgeAugmentation.class); if (bridge != null) { final var managedBy = bridge.getManagedBy(); if (managedBy != null && managedBy.getValue() instanceof DataObjectIdentifier doi) { - return doi.toLegacy(); + return doi; } } } return null; } - private InstanceIdentifier getManagedByIid(Map, DataObject> map, - InstanceIdentifier iidToCheck) { + private DataObjectIdentifier getManagedByIid(Map, DataObject> map, + DataObjectIdentifier iidToCheck) { // Get the InstanceIdentifier of the containing node - InstanceIdentifier nodeEntryIid = iidToCheck.firstIdentifierOf(Node.class); + var nodeEntryIid = iidToCheck.trimTo(Node.class); // Look for the Node in the created/updated data DataObject dataObject = null; @@ -151,7 +147,7 @@ public class DataChangesManagedByOvsdbNodeEvent implements DataChangeEvent { if (bridge != null) { final var managedBy = bridge.getManagedBy(); if (managedBy != null && managedBy.getValue() instanceof DataObjectIdentifier doi - && iid.equals(doi.toLegacy())) { + && iid.equals(doi)) { return iid; } } @@ -160,7 +156,7 @@ public class DataChangesManagedByOvsdbNodeEvent implements DataChangeEvent { } @Override - public Map, DataObject> getOriginalData() { + public Map, DataObject> getOriginalData() { if (this.originalData == null) { this.originalData = filter(event.getOriginalData()); } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/OvsdbNodeUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/OvsdbNodeUpdateCommand.java index 10985ce5a..0d94a8f22 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/OvsdbNodeUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/OvsdbNodeUpdateCommand.java @@ -11,7 +11,6 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Collection; import java.util.Collections; import java.util.Map; -import java.util.Map.Entry; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.lib.notation.Mutator; import org.opendaylight.ovsdb.lib.operations.Mutate; @@ -26,7 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.OpenvswitchOtherConfigs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.OpenvswitchOtherConfigsKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -54,10 +53,9 @@ public class OvsdbNodeUpdateCommand extends AbstractTransactCommand { @SuppressFBWarnings("DCN_NULLPOINTER_EXCEPTION") private void execute(final TransactionBuilder transaction, - final Map, OvsdbNodeAugmentation> updated, + final Map, OvsdbNodeAugmentation> updated, final InstanceIdentifierCodec instanceIdentifierCodec) { - for (Entry, OvsdbNodeAugmentation> ovsdbNodeEntry: - updated.entrySet()) { + for (var ovsdbNodeEntry: updated.entrySet()) { OvsdbNodeAugmentation ovsdbNode = ovsdbNodeEntry.getValue(); if (ovsdbNode.getConnectionInfo() != null) { LOG.debug("Received request to update ovsdb node ip: {} port: {}", @@ -70,8 +68,7 @@ public class OvsdbNodeUpdateCommand extends AbstractTransactCommand { // OpenVSwitchPart OpenVSwitch ovs = transaction.getTypedRowWrapper(OpenVSwitch.class); - stampInstanceIdentifier(transaction, ovsdbNodeEntry.getKey().firstIdentifierOf(Node.class), - instanceIdentifierCodec); + stampInstanceIdentifier(transaction, ovsdbNodeEntry.getKey().trimTo(Node.class), instanceIdentifierCodec); try { ovs.setExternalIds(YangUtils.convertYangKeyValueListToMap(ovsdbNode.getOpenvswitchExternalIds(), @@ -101,7 +98,7 @@ public class OvsdbNodeUpdateCommand extends AbstractTransactCommand { } } - private void stampInstanceIdentifier(final TransactionBuilder transaction, final InstanceIdentifier iid, + private void stampInstanceIdentifier(final TransactionBuilder transaction, final DataObjectIdentifier iid, final InstanceIdentifierCodec instanceIdentifierCodec) { OpenVSwitch ovs = transaction.getTypedRowWrapper(OpenVSwitch.class); ovs.setExternalIds(Collections.emptyMap()); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ProtocolRemovedCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ProtocolRemovedCommand.java index 90c6c56d0..511c95779 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ProtocolRemovedCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ProtocolRemovedCommand.java @@ -25,7 +25,7 @@ import org.opendaylight.ovsdb.southbound.SouthboundConstants; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntry; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,11 +52,10 @@ public class ProtocolRemovedCommand extends AbstractTransactCommand { } private void execute(final TransactionBuilder transaction, - final BridgeOperationalState state, final Set> removed, - final Map, OvsdbBridgeAugmentation> updatedBridges) { - for (InstanceIdentifier protocolIid : removed) { - InstanceIdentifier bridgeIid = - protocolIid.firstIdentifierOf(OvsdbBridgeAugmentation.class); + final BridgeOperationalState state, final Set> removed, + final Map, OvsdbBridgeAugmentation> updatedBridges) { + for (var protocolIid : removed) { + var bridgeIid = protocolIid.trimTo(OvsdbBridgeAugmentation.class); OvsdbBridgeAugmentation ovsdbBridge = updatedBridges.get(bridgeIid); Optional protocolEntryOptional = state.getProtocolEntry(protocolIid); if (ovsdbBridge != null diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ProtocolUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ProtocolUpdateCommand.java index b0bf511d7..c704c0513 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ProtocolUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ProtocolUpdateCommand.java @@ -12,7 +12,6 @@ import static org.opendaylight.ovsdb.southbound.SouthboundUtil.schemaMismatchLog import java.util.Collection; import java.util.Collections; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException; @@ -25,7 +24,7 @@ import org.opendaylight.ovsdb.southbound.SouthboundConstants; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntry; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,16 +51,13 @@ public class ProtocolUpdateCommand extends AbstractTransactCommand { } private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Map, ProtocolEntry> protocols, - final Map, OvsdbBridgeAugmentation> bridges) { - for (Entry, ProtocolEntry> entry: protocols.entrySet()) { - Optional operationalProtocolEntryOptional = - state.getProtocolEntry(entry.getKey()); + final Map, ProtocolEntry> protocols, + final Map, OvsdbBridgeAugmentation> bridges) { + for (var entry: protocols.entrySet()) { + Optional operationalProtocolEntryOptional = state.getProtocolEntry(entry.getKey()); if (!operationalProtocolEntryOptional.isPresent()) { - InstanceIdentifier bridgeIid = - entry.getKey().firstIdentifierOf(OvsdbBridgeAugmentation.class); - Optional bridgeOptional = - state.getOvsdbBridgeAugmentation(bridgeIid); + var bridgeIid = entry.getKey().trimTo(OvsdbBridgeAugmentation.class); + Optional bridgeOptional = state.getOvsdbBridgeAugmentation(bridgeIid); OvsdbBridgeAugmentation ovsdbBridge; if (bridgeOptional.isPresent()) { ovsdbBridge = bridgeOptional.orElseThrow(); @@ -92,5 +88,4 @@ public class ProtocolUpdateCommand extends AbstractTransactCommand { } } } - } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QosRemovedCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QosRemovedCommand.java index b4b516317..f0371bcc4 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QosRemovedCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QosRemovedCommand.java @@ -21,7 +21,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.QosEntries; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.QosEntriesKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,10 +50,10 @@ public class QosRemovedCommand extends AbstractTransactCommand { } private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Map, OvsdbNodeAugmentation> originals, - final Map, OvsdbNodeAugmentation> updated) { + final Map, OvsdbNodeAugmentation> originals, + final Map, OvsdbNodeAugmentation> updated) { for (var originalEntry : originals.entrySet()) { - InstanceIdentifier ovsdbNodeIid = originalEntry.getKey(); + var ovsdbNodeIid = originalEntry.getKey(); OvsdbNodeAugmentation original = originalEntry.getValue(); OvsdbNodeAugmentation update = updated.get(ovsdbNodeIid); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QosUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QosUpdateCommand.java index 3eda53bf8..379581d4c 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QosUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QosUpdateCommand.java @@ -13,7 +13,6 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Collection; import java.util.HashMap; import java.util.Map; -import java.util.Map.Entry; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.lib.notation.UUID; import org.opendaylight.ovsdb.lib.operations.Operations; @@ -37,7 +36,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.PropertyIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,11 +63,10 @@ public class QosUpdateCommand extends AbstractTransactCommand { @SuppressFBWarnings("DCN_NULLPOINTER_EXCEPTION") private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Map, QosEntries> createdOrUpdated, + final Map, QosEntries> createdOrUpdated, final InstanceIdentifierCodec instanceIdentifierCodec) { - for (Entry, QosEntries> qosMapEntry: createdOrUpdated.entrySet()) { - InstanceIdentifier iid = - qosMapEntry.getKey().firstIdentifierOf(OvsdbNodeAugmentation.class); + for (var qosMapEntry : createdOrUpdated.entrySet()) { + var iid = qosMapEntry.getKey().trimTo(OvsdbNodeAugmentation.class); final var optBridgeNode = state.getBridgeNode(iid); if (optBridgeNode.isEmpty()) { return; @@ -103,12 +100,11 @@ public class QosUpdateCommand extends AbstractTransactCommand { } catch (NullPointerException e) { LOG.warn("Incomplete Qos external IDs", e); } - externalIdsMap.put(SouthboundConstants.IID_EXTERNAL_ID_KEY, - - instanceIdentifierCodec.serialize( - SouthboundMapper.createInstanceIdentifier(iid.firstKeyOf(Node.class).getNodeId()) + externalIdsMap.put(SouthboundConstants.IID_EXTERNAL_ID_KEY, instanceIdentifierCodec.serialize( + SouthboundMapper.createInstanceIdentifier(iid.getFirstKeyOf(Node.class).getNodeId()).toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(QosEntries.class, new QosEntriesKey(qosEntry.getQosId())))); + .child(QosEntries.class, new QosEntriesKey(qosEntry.getQosId())) + .build())); qos.setExternalIds(externalIdsMap); try { @@ -141,7 +137,7 @@ public class QosUpdateCommand extends AbstractTransactCommand { case PropertyIdentifier pi -> pi.container(); }; - QueuesKey queueKey = doi.toLegacy().firstKeyOf(Queues.class); + QueuesKey queueKey = doi.getFirstKeyOf(Queues.class); Map queues = operNode.getQueues(); if (queues != null) { Queues queue = queues.get(queueKey); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QueueRemovedCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QueueRemovedCommand.java index a6bae1f94..5c29b0be3 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QueueRemovedCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QueueRemovedCommand.java @@ -20,7 +20,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.Queues; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.QueuesKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,11 +47,10 @@ public class QueueRemovedCommand extends AbstractTransactCommand { } private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Map, OvsdbNodeAugmentation> originals, - final Map, OvsdbNodeAugmentation> updated) { - for (Map.Entry, OvsdbNodeAugmentation> originalEntry : originals - .entrySet()) { - InstanceIdentifier ovsdbNodeIid = originalEntry.getKey(); + final Map, OvsdbNodeAugmentation> originals, + final Map, OvsdbNodeAugmentation> updated) { + for (var originalEntry : originals.entrySet()) { + var ovsdbNodeIid = originalEntry.getKey(); OvsdbNodeAugmentation original = originalEntry.getValue(); OvsdbNodeAugmentation update = updated.get(ovsdbNodeIid); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QueueUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QueueUpdateCommand.java index bb06206e9..6b39d2cc9 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QueueUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/QueueUpdateCommand.java @@ -14,7 +14,6 @@ import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.ovsdb.lib.notation.UUID; @@ -32,7 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.queues.QueuesExternalIds; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.queues.QueuesOtherConfig; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -60,11 +59,10 @@ public class QueueUpdateCommand extends AbstractTransactCommand { @SuppressFBWarnings("DCN_NULLPOINTER_EXCEPTION") private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Map, Queues> createdOrUpdated, + final Map, Queues> createdOrUpdated, final InstanceIdentifierCodec instanceIdentifierCodec) { - for (Entry, Queues> queueMapEntry : createdOrUpdated.entrySet()) { - InstanceIdentifier iid = - queueMapEntry.getKey().firstIdentifierOf(OvsdbNodeAugmentation.class); + for (var queueMapEntry : createdOrUpdated.entrySet()) { + var iid = queueMapEntry.getKey().trimTo(OvsdbNodeAugmentation.class); final var optBridgeNode = state.getBridgeNode(iid); if (optBridgeNode.isEmpty()) { return; @@ -91,11 +89,11 @@ public class QueueUpdateCommand extends AbstractTransactCommand { } catch (NullPointerException e) { LOG.warn("Incomplete Queue external IDs", e); } - externalIdsMap.put(SouthboundConstants.IID_EXTERNAL_ID_KEY, - instanceIdentifierCodec.serialize( - SouthboundMapper.createInstanceIdentifier(iid.firstKeyOf(Node.class).getNodeId()) + externalIdsMap.put(SouthboundConstants.IID_EXTERNAL_ID_KEY, instanceIdentifierCodec.serialize( + SouthboundMapper.createInstanceIdentifier(iid.getFirstKeyOf(Node.class).getNodeId()).toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Queues.class, new QueuesKey(queueEntry.getQueueId())))); + .child(Queues.class, new QueuesKey(queueEntry.getQueueId())) + .build())); queue.setExternalIds(externalIdsMap); try { diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointCreateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointCreateCommand.java index 061573e96..335e3174e 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointCreateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointCreateCommand.java @@ -52,7 +52,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Trunks; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; @@ -82,16 +82,15 @@ public class TerminationPointCreateCommand extends AbstractTransactCommand { } private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Map, OvsdbTerminationPointAugmentation> + final Map, OvsdbTerminationPointAugmentation> createdTerminationPoints, - final Map, Node> nodes, final InstanceIdentifierCodec instanceIdentifierCodec) { + final Map, Node> nodes, final InstanceIdentifierCodec instanceIdentifierCodec) { for (var entry : createdTerminationPoints.entrySet()) { OvsdbTerminationPointAugmentation terminationPoint = entry.getValue(); LOG.debug("Received request to create termination point {}", terminationPoint.getName()); - InstanceIdentifier terminationPointIid = entry.getKey(); - Optional terminationPointOptional = - state.getBridgeTerminationPoint(terminationPointIid); + var terminationPointIid = entry.getKey(); + Optional terminationPointOptional = state.getBridgeTerminationPoint(terminationPointIid); if (!terminationPointOptional.isPresent()) { // Configure interface String interfaceUuid = "Interface_" + SouthboundMapper.getRandomUuid(); @@ -112,8 +111,7 @@ public class TerminationPointCreateCommand extends AbstractTransactCommand { terminationPoint.getName(),portUuid); //Configure bridge with the above port details Bridge bridge = transaction.getTypedRowWrapper(Bridge.class); - String bridgeName = SouthboundUtil - .getBridgeNameFromOvsdbNodeId(entry.getKey().firstIdentifierOf(Node.class)); + String bridgeName = SouthboundUtil.getBridgeNameFromOvsdbNodeId(entry.getKey().trimTo(Node.class)); if (bridgeName != null) { LOG.trace("Updating bridge {} for newly added port {}", bridgeName, terminationPoint.getName()); bridge.setName(bridgeName); @@ -126,7 +124,7 @@ public class TerminationPointCreateCommand extends AbstractTransactCommand { .opEqual(bridge.getNameColumn().getData())).build()); } else { LOG.error("Missing BridgeName for Node {} during creation of port {}", - entry.getKey().firstIdentifierOf(Node.class), terminationPoint.getName()); + entry.getKey().trimTo(Node.class), terminationPoint.getName()); } } } @@ -369,7 +367,7 @@ public class TerminationPointCreateCommand extends AbstractTransactCommand { } public static void stampInstanceIdentifier(final Operations op, final TransactionBuilder transaction, - final InstanceIdentifier iid, final String interfaceName, + final DataObjectIdentifier iid, final String interfaceName, final InstanceIdentifierCodec instanceIdentifierCodec) { Port port = transaction.getTypedRowWrapper(Port.class); port.setName(interfaceName); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointDeleteCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointDeleteCommand.java index 3464e55c9..e3f25918c 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointDeleteCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointDeleteCommand.java @@ -23,7 +23,7 @@ import org.opendaylight.ovsdb.southbound.InstanceIdentifierCodec; import org.opendaylight.ovsdb.southbound.SouthboundUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -58,17 +58,17 @@ public class TerminationPointDeleteCommand extends AbstractTransactCommand { } private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Map, + final Map, OvsdbTerminationPointAugmentation> originals, - final Map, Node> originalNodes, - final Set> removedTps) { - for (InstanceIdentifier removedTpIid: removedTps) { + final Map, Node> originalNodes, + final Set> removedTps) { + for (var removedTpIid : removedTps) { LOG.debug("Received request to delete termination point {}", removedTpIid); OvsdbTerminationPointAugmentation original = originals.get(removedTpIid); - String bridgeName = SouthboundUtil.getBridgeNameFromOvsdbNodeId(removedTpIid.firstIdentifierOf(Node.class)); + String bridgeName = SouthboundUtil.getBridgeNameFromOvsdbNodeId(removedTpIid.trimTo(Node.class)); if (bridgeName == null) { LOG.error("Missing Bridge Name for Node {} during deletion of Port {}", - removedTpIid.firstIdentifierOf(Node.class), original.getName()); + removedTpIid.trimTo(Node.class), original.getName()); continue; } LOG.trace("Deleting port {} from bridge {}", original.getName(), bridgeName); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointUpdateCommand.java index 87043b0f7..c1de61cce 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointUpdateCommand.java @@ -18,7 +18,6 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import java.util.Set; import org.opendaylight.mdsal.binding.api.DataTreeModification; @@ -56,7 +55,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.PropertyIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; @@ -87,11 +85,10 @@ public class TerminationPointUpdateCommand extends AbstractTransactCommand { } private void execute(final TransactionBuilder transaction, final BridgeOperationalState state, - final Map, OvsdbTerminationPointAugmentation> + final Map, OvsdbTerminationPointAugmentation> createdOrUpdated, final InstanceIdentifierCodec instanceIdentifierCodec) { - for (Entry, - OvsdbTerminationPointAugmentation> terminationPointEntry : createdOrUpdated.entrySet()) { + for (var terminationPointEntry : createdOrUpdated.entrySet()) { updateTerminationPoint(transaction, state, terminationPointEntry.getKey(), terminationPointEntry.getValue(), instanceIdentifierCodec); } @@ -99,7 +96,7 @@ public class TerminationPointUpdateCommand extends AbstractTransactCommand { @VisibleForTesting public void updateTerminationPoint(final TransactionBuilder transaction, final BridgeOperationalState state, - final InstanceIdentifier iid, + final DataObjectIdentifier iid, final OvsdbTerminationPointAugmentation terminationPoint, final InstanceIdentifierCodec instanceIdentifierCodec) { @@ -117,7 +114,7 @@ public class TerminationPointUpdateCommand extends AbstractTransactCommand { .build()); TerminationPointCreateCommand.stampInstanceIdentifier(op, transaction, - iid.firstIdentifierOf(OvsdbTerminationPointAugmentation.class), terminationPoint.getName(), + iid.trimTo(OvsdbTerminationPointAugmentation.class), terminationPoint.getName(), instanceIdentifierCodec); final String opendaylightIid = instanceIdentifierCodec.serialize(iid); // Update port @@ -178,7 +175,7 @@ public class TerminationPointUpdateCommand extends AbstractTransactCommand { case PropertyIdentifier pi -> pi.container(); }; - Uri qosId = doi.toLegacy().firstKeyOf(QosEntries.class).getQosId(); + Uri qosId = doi.getFirstKeyOf(QosEntries.class).getQosId(); OvsdbNodeAugmentation operNode = getOperNode(state, operBridge); if (operNode != null) { Map entries = operNode.getQosEntries(); @@ -201,7 +198,7 @@ public class TerminationPointUpdateCommand extends AbstractTransactCommand { private static OvsdbNodeAugmentation getOperNode(final BridgeOperationalState state, final OvsdbBridgeAugmentation operBridge) { @SuppressWarnings("unchecked") - final var iidNode = ((DataObjectIdentifier) operBridge.getManagedBy().getValue()).toLegacy(); + final var iidNode = ((DataObjectIdentifier) operBridge.getManagedBy().getValue()); OvsdbNodeAugmentation operNode = null; try (ReadTransaction transaction = state.dataBroker().newReadOnlyTransaction()) { Optional nodeOptional = SouthboundUtil.readNode(transaction, iidNode); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactUtils.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactUtils.java index 478e4ef4b..c605a4a3a 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactUtils.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactUtils.java @@ -18,7 +18,6 @@ import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Queue; import java.util.Set; import java.util.function.Predicate; @@ -42,10 +41,10 @@ import org.opendaylight.ovsdb.southbound.SouthboundMapper; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.ChildOf; import org.opendaylight.yangtools.binding.DataObject; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; import org.opendaylight.yangtools.binding.Key; import org.opendaylight.yangtools.binding.KeyStep; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; // This class needs to be mocked @SuppressWarnings("checkstyle:FinalClass") @@ -85,18 +84,18 @@ public class TransactUtils { && input.dataBefore() != null; } - public static Map,Node> extractNode(final Map, DataObject> changes) { - Map,Node> result - = new HashMap<>(); + public static Map, Node> extractNode( + final Map, DataObject> changes) { + Map,Node> result = new HashMap<>(); if (changes != null) { - for (Entry, DataObject> created : changes.entrySet()) { + for (var created : changes.entrySet()) { if (created.getValue() instanceof Node) { Node value = (Node) created.getValue(); - Class type = created.getKey().getTargetType(); + Class type = created.getKey().lastStep().type(); if (type.equals(Node.class)) { // Actually checked above @SuppressWarnings("unchecked") - InstanceIdentifier iid = (InstanceIdentifier) created.getKey(); + DataObjectIdentifier iid = (DataObjectIdentifier) created.getKey(); result.put(iid, value); } } @@ -105,7 +104,7 @@ public class TransactUtils { return result; } - public static Map,T> extractCreated( + public static Map,T> extractCreated( final DataChangeEvent changes, final Class klazz) { return extract(changes.getCreatedData(),klazz); } @@ -119,12 +118,12 @@ public class TransactUtils { * @param The type of changes to process. * @return The created instances, mapped by instance identifier. */ - public static Map, T> extractCreated( + public static Map, T> extractCreated( final Collection> changes, final Class clazz) { return extractCreatedOrUpdated(changes, clazz, hasNoDataBefore()); } - public static Map,T> extractUpdated( + public static Map,T> extractUpdated( final DataChangeEvent changes, final Class klazz) { return extract(changes.getUpdatedData(),klazz); } @@ -138,7 +137,7 @@ public class TransactUtils { * @param The type of changes to process. * @return The updated instances, mapped by instance identifier. */ - public static Map, T> extractUpdated( + public static Map, T> extractUpdated( final Collection> changes, final Class clazz) { return extractCreatedOrUpdated(changes, clazz, hasDataBeforeAndDataAfter()); } @@ -154,20 +153,20 @@ public class TransactUtils { * @param The type of changes to process. * @return The created or updated instances which satisfy the filter, mapped by instance identifier. */ - public static Map, T> extractCreatedOrUpdated( + public static Map, T> extractCreatedOrUpdated( final Collection> changes, final Class clazz, final Predicate> filter) { - Map, T> result = new HashMap<>(); - for (Map.Entry, DataObjectModification> entry : extractDataObjectModifications(changes, + Map, T> result = new HashMap<>(); + for (var entry : extractDataObjectModifications(changes, clazz, hasDataAfterAndMatchesFilter(filter)).entrySet()) { result.put(entry.getKey(), entry.getValue().dataAfter()); } return result; } - public static Map,T> extractCreatedOrUpdated( - final DataChangeEvent changes,final Class klazz) { - Map,T> result = extractUpdated(changes,klazz); + public static Map,T> extractCreatedOrUpdated( + final DataChangeEvent changes, final Class klazz) { + var result = extractUpdated(changes,klazz); result.putAll(extractCreated(changes,klazz)); return result; } @@ -181,14 +180,14 @@ public class TransactUtils { * @param The type of changes to process. * @return The created or updated instances, mapped by instance identifier. */ - public static Map, T> extractCreatedOrUpdated( + public static Map, T> extractCreatedOrUpdated( final Collection> changes, final Class clazz) { return extractCreatedOrUpdated(changes, clazz, matchesEverything()); } - public static Map, T> extractCreatedOrUpdatedOrRemoved( + public static Map, T> extractCreatedOrUpdatedOrRemoved( final DataChangeEvent changes, final Class klazz) { - Map,T> result = extractCreatedOrUpdated(changes,klazz); + var result = extractCreatedOrUpdated(changes,klazz); result.putAll(extractRemovedObjects(changes, klazz)); return result; } @@ -204,17 +203,17 @@ public class TransactUtils { * @param The type of changes to process. * @return The created, updated or removed instances, mapped by instance identifier. */ - public static Map, T> + public static Map, T> extractCreatedOrUpdatedOrRemoved( final Collection> changes, final Class clazz) { - Map, T> result = extractCreatedOrUpdated(changes, clazz); + var result = extractCreatedOrUpdated(changes, clazz); result.putAll(extractRemovedObjects(changes, clazz)); return result; } - public static Map,T> extractOriginal( + public static Map,T> extractOriginal( final DataChangeEvent changes, final Class klazz) { - return extract(changes.getOriginalData(),klazz); + return extract(changes.getOriginalData(), klazz); } /** @@ -226,25 +225,24 @@ public class TransactUtils { * @param The type of changes to process. * @return The original instances, mapped by instance identifier. */ - public static Map, T> extractOriginal( + public static Map, T> extractOriginal( final Collection> changes, final Class clazz) { - Map, T> result = new HashMap<>(); - for (Map.Entry, DataObjectModification> entry : - extractDataObjectModifications(changes, clazz, hasDataBefore()).entrySet()) { + Map, T> result = new HashMap<>(); + for (var entry : extractDataObjectModifications(changes, clazz, hasDataBefore()).entrySet()) { result.put(entry.getKey(), entry.getValue().dataBefore()); } return result; } - public static Set> extractRemoved( + public static Set> extractRemoved( final DataChangeEvent changes, final Class klazz) { - Set> result = new HashSet<>(); + Set> result = new HashSet<>(); if (changes != null && changes.getRemovedPaths() != null) { - for (InstanceIdentifier iid : changes.getRemovedPaths()) { - if (iid.getTargetType().equals(klazz)) { + for (var iid : changes.getRemovedPaths()) { + if (iid.lastStep().type().equals(klazz)) { // Actually checked above @SuppressWarnings("unchecked") - InstanceIdentifier iidn = (InstanceIdentifier)iid; + DataObjectIdentifier iidn = (DataObjectIdentifier)iid; result.add(iidn); } } @@ -261,7 +259,7 @@ public class TransactUtils { * @param The type of changes to process. * @return The instance identifiers of removed instances. */ - public static Set> extractRemoved( + public static Set> extractRemoved( final Collection> changes, final Class clazz) { return extractDataObjectModifications(changes, clazz, modificationIsDeletion()).keySet(); } @@ -277,15 +275,15 @@ public class TransactUtils { * @param The type of changes to process. * @return The modifications, mapped by instance identifier. */ - private static Map, DataObjectModification> + private static Map, DataObjectModification> extractDataObjectModifications(final Collection> changes, final Class clazz, final Predicate> filter) { List> dataObjectModifications = new ArrayList<>(); - List> paths = new ArrayList<>(); + List> paths = new ArrayList<>(); if (changes != null) { for (DataTreeModification change : changes) { dataObjectModifications.add(change.getRootNode()); - paths.add(change.getRootPath().path()); + paths.add(change.path()); } } return extractDataObjectModifications(dataObjectModifications, paths, clazz, filter); @@ -302,23 +300,23 @@ public class TransactUtils { * @param The type of changes we're interested in. * @return The modifications, mapped by instance identifier. */ - private static Map, DataObjectModification> + private static Map, DataObjectModification> extractDataObjectModifications( final Collection> changes, - final Collection> paths, final Class clazz, + final Collection> paths, final Class clazz, final Predicate> filter) { - Map, DataObjectModification> result = new HashMap<>(); + Map, DataObjectModification> result = new HashMap<>(); Queue> remainingChanges = new LinkedList<>(changes); - Queue> remainingPaths = new LinkedList<>(paths); + Queue> remainingPaths = new LinkedList<>(paths); while (!remainingChanges.isEmpty()) { DataObjectModification change = remainingChanges.remove(); - InstanceIdentifier path = remainingPaths.remove(); + DataObjectIdentifier path = remainingPaths.remove(); // Is the change relevant? if (clazz.isAssignableFrom(change.dataType())) { @SuppressWarnings("unchecked") final DataObjectModification dao = (DataObjectModification) change; if (filter.test(dao)) { - result.put((InstanceIdentifier) path, dao); + result.put((DataObjectIdentifier) path, dao); } } // Add any children to the queue @@ -339,22 +337,21 @@ public class TransactUtils { * @return The extended path. */ private static & ChildOf, K extends Key, T extends DataObject> - InstanceIdentifier extendPath( - final InstanceIdentifier path, - final DataObjectModification child) { + DataObjectIdentifier extendPath(final DataObjectIdentifier path, + final DataObjectModification child) { @SuppressWarnings("unchecked") final Class item = (Class) child.dataType(); if (child.step() instanceof KeyStep keyStep) { - return path.child(item, (K) keyStep.key()); + return path.toBuilder().child(item, (K) keyStep.key()).build(); } - return path.child(item); + return path.toBuilder().child(item).build(); } - public static Map, T> extractRemovedObjects( + public static Map, T> extractRemovedObjects( final DataChangeEvent changes, final Class klazz) { - Set> iids = extractRemoved(changes, klazz); - return Maps.filterKeys(extractOriginal(changes, klazz),Predicates.in(iids)); + var iids = extractRemoved(changes, klazz); + return Maps.filterKeys(extractOriginal(changes, klazz), Predicates.in(iids)); } /** @@ -366,29 +363,29 @@ public class TransactUtils { * @param The type of changes to process. * @return The removed instances, keyed by instance identifier. */ - public static Map, T> extractRemovedObjects( + public static Map, T> extractRemovedObjects( final Collection> changes, final Class clazz) { - Map, T> result = new HashMap<>(); - for (Map.Entry, DataObjectModification> entry : + Map, T> result = new HashMap<>(); + for (var entry : extractDataObjectModifications(changes, clazz, modificationIsDeletionAndHasDataBefore()).entrySet()) { result.put(entry.getKey(), entry.getValue().dataBefore()); } return result; } - public static Map,T> extract( - final Map, DataObject> changes, final Class klazz) { - Map,T> result = new HashMap<>(); + public static Map,T> extract( + final Map, DataObject> changes, final Class klazz) { + Map,T> result = new HashMap<>(); if (changes != null) { - for (Entry, DataObject> created : changes.entrySet()) { + for (var created : changes.entrySet()) { if (klazz.isInstance(created.getValue())) { @SuppressWarnings("unchecked") T value = (T) created.getValue(); - Class type = created.getKey().getTargetType(); + Class type = created.getKey().lastStep().type(); if (type.equals(klazz)) { // Actually checked above @SuppressWarnings("unchecked") - InstanceIdentifier iid = (InstanceIdentifier) created.getKey(); + DataObjectIdentifier iid = (DataObjectIdentifier) created.getKey(); result.put(iid, value); } } @@ -424,7 +421,7 @@ public class TransactUtils { } public static > void stampInstanceIdentifier(final Operations op, - final TransactionBuilder transaction, final InstanceIdentifier iid, final TableSchema tableSchema, + final TransactionBuilder transaction, final DataObjectIdentifier iid, final TableSchema tableSchema, final ColumnSchema> columnSchema, final InstanceIdentifierCodec instanceIdentifierCodec) { transaction.add( @@ -432,7 +429,7 @@ public class TransactUtils { } public static > Mutate stampInstanceIdentifierMutation(final Operations op, - final TransactionBuilder transaction, final InstanceIdentifier iid, final TableSchema tableSchema, + final TransactionBuilder transaction, final DataObjectIdentifier iid, final TableSchema tableSchema, final ColumnSchema> columnSchema, final InstanceIdentifierCodec instanceIdentifierCodec) { Map externalIdsMap = ImmutableMap.of(SouthboundConstants.IID_EXTERNAL_ID_KEY, diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/ReconciliationManager.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/ReconciliationManager.java index 7466b2028..471804a24 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/ReconciliationManager.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/ReconciliationManager.java @@ -26,7 +26,6 @@ import java.util.concurrent.ThreadFactory; import java.util.concurrent.TimeUnit; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; -import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.ovsdb.southbound.InstanceIdentifierCodec; @@ -39,9 +38,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.util.concurrent.SpecialExecutors; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -192,14 +191,9 @@ public class ReconciliationManager implements AutoCloseable { private synchronized void registerBridgeCreatedDataTreeChangeListener() { if (bridgeCreatedDataTreeChangeRegistration == null) { - BridgeCreatedDataTreeChangeListener bridgeCreatedDataTreeChangeListener = - new BridgeCreatedDataTreeChangeListener(); - InstanceIdentifier path = SouthboundMapper.createTopologyInstanceIdentifier() - .child(Node.class); - DataTreeIdentifier dataTreeIdentifier = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, path); - - bridgeCreatedDataTreeChangeRegistration = db.registerTreeChangeListener(dataTreeIdentifier, - bridgeCreatedDataTreeChangeListener); + bridgeCreatedDataTreeChangeRegistration = db.registerTreeChangeListener(LogicalDatastoreType.OPERATIONAL, + SouthboundMapper.createTopologyInstanceIdentifier().toBuilder().child(Node.class).build(), + new BridgeCreatedDataTreeChangeListener()); } } @@ -227,14 +221,11 @@ public class ReconciliationManager implements AutoCloseable { public void onDataTreeChanged(List> changes) { bridgeNodeCache.cleanUp(); if (!bridgeNodeCache.asMap().isEmpty()) { - Map, OvsdbBridgeAugmentation> nodes = - TransactUtils.extractCreated(changes, OvsdbBridgeAugmentation.class); - Map, OvsdbTerminationPointAugmentation> - terminationPointsAug = - TransactUtils.extractCreated(changes, OvsdbTerminationPointAugmentation.class); - for (Map.Entry, OvsdbBridgeAugmentation> entry : - nodes.entrySet()) { - InstanceIdentifier bridgeIid = entry.getKey(); + var nodes = TransactUtils.extractCreated(changes, OvsdbBridgeAugmentation.class); + var terminationPointsAug = TransactUtils.extractCreated(changes, + OvsdbTerminationPointAugmentation.class); + for (var entry : nodes.entrySet()) { + var bridgeIid = entry.getKey(); NodeKey nodeKey = bridgeIid.firstKeyOf(Node.class); try { NodeConnectionMetadata bridgeNodeMetaData = bridgeNodeCache.get(nodeKey); @@ -273,17 +264,16 @@ public class ReconciliationManager implements AutoCloseable { } } - private static Map, OvsdbTerminationPointAugmentation> + private static Map, OvsdbTerminationPointAugmentation> filterTerminationPointsForBridge(NodeKey nodeKey, - Map, OvsdbTerminationPointAugmentation> + Map, OvsdbTerminationPointAugmentation> terminationPoints) { - Map, OvsdbTerminationPointAugmentation> + Map, OvsdbTerminationPointAugmentation> filteredTerminationPoints = new HashMap<>(); - for (Map.Entry, OvsdbTerminationPointAugmentation> entry : - terminationPoints.entrySet()) { - InstanceIdentifier bridgeIid = entry.getKey(); - NodeKey terminationPointNodeKey = bridgeIid.firstKeyOf(Node.class); + for (var entry : terminationPoints.entrySet()) { + var bridgeIid = entry.getKey(); + NodeKey terminationPointNodeKey = bridgeIid.getFirstKeyOf(Node.class); if (terminationPointNodeKey.getNodeId().equals(nodeKey.getNodeId())) { LOG.trace("TP Match found: {} {} ", terminationPointNodeKey.getNodeId(), nodeKey.getNodeId()); filteredTerminationPoints.put(entry.getKey(), entry.getValue()); @@ -304,19 +294,19 @@ public class ReconciliationManager implements AutoCloseable { private static class NodeConnectionMetadata { private final Node node; - private InstanceIdentifier nodeIid; + private DataObjectIdentifier nodeIid; private final OvsdbConnectionManager connectionManager; private final OvsdbConnectionInstance connectionInstance; - private Map, OvsdbTerminationPointAugmentation> + private Map, OvsdbTerminationPointAugmentation> operTerminationPoints; - public Map, OvsdbTerminationPointAugmentation> + public Map, OvsdbTerminationPointAugmentation> getOperTerminationPoints() { return operTerminationPoints; } public void setOperTerminationPoints( - Map, OvsdbTerminationPointAugmentation> + Map, OvsdbTerminationPointAugmentation> operTerminationPoints) { this.operTerminationPoints = operTerminationPoints; } @@ -341,11 +331,11 @@ public class ReconciliationManager implements AutoCloseable { return connectionInstance; } - public void setNodeIid(InstanceIdentifier nodeIid) { + public void setNodeIid(DataObjectIdentifier nodeIid) { this.nodeIid = nodeIid; } - public InstanceIdentifier getNodeIid() { + public DataObjectIdentifier getNodeIid() { return nodeIid; } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/ReconciliationTask.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/ReconciliationTask.java index da097efcb..29ca7cf13 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/ReconciliationTask.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/ReconciliationTask.java @@ -12,7 +12,7 @@ import static java.util.Objects.requireNonNull; import org.opendaylight.ovsdb.southbound.OvsdbConnectionManager; import org.opendaylight.ovsdb.southbound.reconciliation.connection.ConnectionReconciliationTask; import org.opendaylight.yangtools.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; /** * Abstract implementation of a reconciliation task. Each new type of @@ -22,12 +22,12 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public abstract class ReconciliationTask implements Runnable { protected final ReconciliationManager reconciliationManager; protected final OvsdbConnectionManager connectionManager; - protected final InstanceIdentifier nodeIid; + protected final DataObjectIdentifier nodeIid; protected final DataObject configData; protected ReconciliationTask(final ReconciliationManager reconciliationManager, final OvsdbConnectionManager connectionManager, - final InstanceIdentifier nodeIid, final DataObject configData) { + final DataObjectIdentifier nodeIid, final DataObject configData) { this.reconciliationManager = requireNonNull(reconciliationManager, "Reconciliation manager must not be null"); this.connectionManager = requireNonNull(connectionManager, "Connection manager must not be null"); this.nodeIid = requireNonNull(nodeIid, "Node Iid must not be null"); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/BridgeConfigReconciliationTask.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/BridgeConfigReconciliationTask.java index 312b5aaf8..5328cc675 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/BridgeConfigReconciliationTask.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/BridgeConfigReconciliationTask.java @@ -34,17 +34,13 @@ import org.opendaylight.ovsdb.southbound.reconciliation.ReconciliationManager; import org.opendaylight.ovsdb.southbound.reconciliation.ReconciliationTask; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntryKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntry; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntryKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -60,7 +56,7 @@ public class BridgeConfigReconciliationTask extends ReconciliationTask { private final InstanceIdentifierCodec instanceIdentifierCodec; public BridgeConfigReconciliationTask(final ReconciliationManager reconciliationManager, - final OvsdbConnectionManager connectionManager, final InstanceIdentifier nodeIid, + final OvsdbConnectionManager connectionManager, final DataObjectIdentifier nodeIid, final OvsdbConnectionInstance connectionInstance, final InstanceIdentifierCodec instanceIdentifierCodec) { super(reconciliationManager, connectionManager, nodeIid, null); this.connectionInstance = connectionInstance; @@ -69,7 +65,7 @@ public class BridgeConfigReconciliationTask extends ReconciliationTask { @Override public boolean reconcileConfiguration(final OvsdbConnectionManager connectionManagerOfDevice) { - String nodeIdVal = nodeIid.firstKeyOf(Node.class).getNodeId().getValue(); + String nodeIdVal = nodeIid.getFirstKeyOf(Node.class).getNodeId().getValue(); List bridgeReconcileIncludeList = getNodeIdForBridges(nodeIdVal, reconciliationManager.getBridgesReconciliationInclusionList()); List bridgeReconcileExcludeList = getNodeIdForBridges(nodeIdVal, @@ -108,15 +104,13 @@ public class BridgeConfigReconciliationTask extends ReconciliationTask { // case 1, 3 & 4 LOG.trace("Reconciling all bridges with exclusion list {}", bridgeReconcileExcludeList); FluentFuture> readTopologyFuture; - InstanceIdentifier topologyInstanceIdentifier = SouthboundMapper - .createTopologyInstanceIdentifier(); + var topologyInstanceIdentifier = SouthboundMapper.createTopologyInstanceIdentifier(); try (ReadTransaction tx = reconciliationManager.getDb().newReadOnlyTransaction()) { // find all bridges of the specific device in the config data store // TODO: this query is not efficient. It retrieves all the Nodes in the datastore, loop over them and // look for the bridges of specific device. It is mre efficient if MDSAL allows query nodes using // wildcard on node id (ie: ovsdb://uuid//bridge/*) r attributes - readTopologyFuture = tx.read(LogicalDatastoreType.CONFIGURATION, - topologyInstanceIdentifier.toIdentifier()); + readTopologyFuture = tx.read(LogicalDatastoreType.CONFIGURATION, topologyInstanceIdentifier); } readTopologyFuture.addCallback(new FutureCallback<>() { @Override @@ -152,9 +146,8 @@ public class BridgeConfigReconciliationTask extends ReconciliationTask { LOG.trace("Reconcile Bridge from InclusionList {} only", bridgeReconcileIncludeList); for (String bridgeNodeIid : bridgeReconcileIncludeList) { try (ReadTransaction tx = reconciliationManager.getDb().newReadOnlyTransaction()) { - InstanceIdentifier nodeInstanceIdentifier = - SouthboundMapper.createInstanceIdentifier(new NodeId(bridgeNodeIid)); - readNodeFuture = tx.read(LogicalDatastoreType.CONFIGURATION, nodeInstanceIdentifier.toIdentifier()); + readNodeFuture = tx.read(LogicalDatastoreType.CONFIGURATION, + SouthboundMapper.createInstanceIdentifier(new NodeId(bridgeNodeIid))); } readNodeFuture.addCallback(new FutureCallback>() { @Override @@ -178,17 +171,17 @@ public class BridgeConfigReconciliationTask extends ReconciliationTask { } } - final Map, DataObject> brChanges = new HashMap<>(); + final Map, DataObject> brChanges = new HashMap<>(); final List tpChanges = new ArrayList<>(); for (Node node : bridgeNodeList) { - InstanceIdentifier ndIid = (InstanceIdentifier) nodeIid; + var ndIid = (DataObjectIdentifier) nodeIid; OvsdbBridgeAugmentation bridge = node.augmentation(OvsdbBridgeAugmentation.class); if (bridge != null && bridge.getManagedBy() != null - && ((DataObjectIdentifier) bridge.getManagedBy().getValue()).toLegacy().equals(ndIid)) { + && ((DataObjectIdentifier) bridge.getManagedBy().getValue()).equals(ndIid)) { brChanges.putAll(extractBridgeConfigurationChanges(node, bridge)); tpChanges.add(node); } else if (node.key().getNodeId().getValue().startsWith( - nodeIid.firstKeyOf(Node.class).getNodeId().getValue())) { + nodeIid.getFirstKeyOf(Node.class).getNodeId().getValue())) { //&& node.getTerminationPoint() != null && !node.getTerminationPoint().isEmpty()) { // Above check removed to handle delete reconciliation with ManagedBy // param not set in config DS @@ -209,35 +202,31 @@ public class BridgeConfigReconciliationTask extends ReconciliationTask { return true; } - private static Map, DataObject> extractBridgeConfigurationChanges( + private static Map, DataObject> extractBridgeConfigurationChanges( final Node bridgeNode, final OvsdbBridgeAugmentation ovsdbBridge) { - Map, DataObject> changes = new HashMap<>(); - final InstanceIdentifier bridgeNodeIid = - SouthboundMapper.createInstanceIdentifier(bridgeNode.getNodeId()); - final InstanceIdentifier ovsdbBridgeIid = - bridgeNodeIid.builder().augmentation(OvsdbBridgeAugmentation.class).build(); + final var changes = new HashMap, DataObject>(); + final var bridgeNodeIid = SouthboundMapper.createInstanceIdentifier(bridgeNode.getNodeId()); + final var ovsdbBridgeIid = bridgeNodeIid.toBuilder().augmentation(OvsdbBridgeAugmentation.class).build(); changes.put(bridgeNodeIid, bridgeNode); changes.put(ovsdbBridgeIid, ovsdbBridge); - final Map protocols = ovsdbBridge.getProtocolEntry(); + final var protocols = ovsdbBridge.getProtocolEntry(); if (protocols != null) { for (ProtocolEntry protocol : protocols.values()) { if (SouthboundConstants.OVSDB_PROTOCOL_MAP.get(protocol.getProtocol()) != null) { - KeyedInstanceIdentifier protocolIid = - ovsdbBridgeIid.child(ProtocolEntry.class, protocol.key()); - changes.put(protocolIid, protocol); + changes.put(ovsdbBridgeIid.toBuilder().child(ProtocolEntry.class, protocol.key()).build(), + protocol); } else { throw new IllegalArgumentException("Unknown protocol " + protocol.getProtocol()); } } } - final Map controllers = ovsdbBridge.getControllerEntry(); + final var controllers = ovsdbBridge.getControllerEntry(); if (controllers != null) { for (ControllerEntry controller : controllers.values()) { - KeyedInstanceIdentifier controllerIid = - ovsdbBridgeIid.child(ControllerEntry.class, controller.key()); - changes.put(controllerIid, controller); + changes.put(ovsdbBridgeIid.toBuilder().child(ControllerEntry.class, controller.key()).build(), + controller); } } @@ -245,25 +234,25 @@ public class BridgeConfigReconciliationTask extends ReconciliationTask { } @VisibleForTesting - void reconcileBridgeConfigurations(final Map, DataObject> changes) { + void reconcileBridgeConfigurations(final Map, DataObject> changes) { DataChangeEvent changeEvents = new DataChangeEvent() { @Override - public Map, DataObject> getCreatedData() { + public Map, DataObject> getCreatedData() { return changes; } @Override - public Map, DataObject> getUpdatedData() { + public Map, DataObject> getUpdatedData() { return Collections.emptyMap(); } @Override - public Map, DataObject> getOriginalData() { + public Map, DataObject> getOriginalData() { return Collections.emptyMap(); } @Override - public Set> getRemovedPaths() { + public Set> getRemovedPaths() { return Collections.emptySet(); } }; diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/TerminationPointConfigReconciliationTask.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/TerminationPointConfigReconciliationTask.java index 6e6d575c8..3206460b2 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/TerminationPointConfigReconciliationTask.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/TerminationPointConfigReconciliationTask.java @@ -30,7 +30,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.PortExternalIdsKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,13 +48,13 @@ public class TerminationPointConfigReconciliationTask extends ReconciliationTask private final OvsdbConnectionInstance connectionInstance; private final InstanceIdentifierCodec instanceIdentifierCodec; - private final Map, OvsdbTerminationPointAugmentation> + private final Map, OvsdbTerminationPointAugmentation> operTerminationPoints; public TerminationPointConfigReconciliationTask(final ReconciliationManager reconciliationManager, final OvsdbConnectionManager connectionManager, final Node bridgeNode, - final InstanceIdentifier bridgeIid, final OvsdbConnectionInstance connectionInstance, - final Map, OvsdbTerminationPointAugmentation> + final DataObjectIdentifier bridgeIid, final OvsdbConnectionInstance connectionInstance, + final Map, OvsdbTerminationPointAugmentation> operTerminationPoints, final InstanceIdentifierCodec instanceIdentifierCodec) { super(reconciliationManager, connectionManager, bridgeIid, bridgeNode); @@ -65,28 +65,28 @@ public class TerminationPointConfigReconciliationTask extends ReconciliationTask @Override public boolean reconcileConfiguration(final OvsdbConnectionManager connectionManager) { - final Map, DataObject> changes = new HashMap<>(); + final Map, DataObject> changes = new HashMap<>(); final Node configNodeData = (Node) configData; LOG.debug("Reconcile Termination Point Configuration for node {}", configNodeData.getNodeId()); changes.putAll(SouthboundMapper.extractTerminationPointConfigurationChanges(configNodeData)); DataChangeEvent changeEvents = new DataChangeEvent() { @Override - public Map, DataObject> getCreatedData() { + public Map, DataObject> getCreatedData() { return changes; } @Override - public Map, DataObject> getUpdatedData() { + public Map, DataObject> getUpdatedData() { return Collections.emptyMap(); } @Override - public Map, DataObject> getOriginalData() { + public Map, DataObject> getOriginalData() { return Collections.emptyMap(); } @Override - public Set> getRemovedPaths() { + public Set> getRemovedPaths() { return Collections.emptySet(); } }; @@ -102,17 +102,15 @@ public class TerminationPointConfigReconciliationTask extends ReconciliationTask }); } - final Set> removeTerminationPoints = new HashSet<>(); - final Map, DataObject> original = new HashMap<>(); - final InstanceIdentifier bridgeNodeIid = - SouthboundMapper.createInstanceIdentifier(configNodeData.getNodeId()); + final Set> removeTerminationPoints = new HashSet<>(); + final Map, DataObject> original = new HashMap<>(); + final var bridgeNodeIid = SouthboundMapper.createInstanceIdentifier(configNodeData.getNodeId()); original.put(bridgeNodeIid, configNodeData); LOG.trace("Config Topology Termination Points during Reconciliation {} for bridge {}", configTerminationPoints, bridgeNodeIid); LOG.trace("Oper Topology Termination Points during Reconciliation {} for bridge {}", operTerminationPoints, bridgeNodeIid); - for (Map.Entry, OvsdbTerminationPointAugmentation> entry : - operTerminationPoints.entrySet()) { + for (var entry : operTerminationPoints.entrySet()) { OvsdbTerminationPointAugmentation terminationPoint = entry.getValue(); if (configTerminationPoints.contains(terminationPoint.getName())) { LOG.trace("Termination Point {} from Oper Topology also present in config topology During Reconcile", @@ -138,22 +136,22 @@ public class TerminationPointConfigReconciliationTask extends ReconciliationTask DataChangeEvent deleteChangeEvents = new DataChangeEvent() { @Override - public Map, DataObject> getCreatedData() { + public Map, DataObject> getCreatedData() { return Collections.emptyMap(); } @Override - public Map, DataObject> getUpdatedData() { + public Map, DataObject> getUpdatedData() { return original; } @Override - public Map, DataObject> getOriginalData() { + public Map, DataObject> getOriginalData() { return original; } @Override - public Set> getRemovedPaths() { + public Set> getRemovedPaths() { return removeTerminationPoints; } }; diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/connection/ConnectionReconciliationTask.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/connection/ConnectionReconciliationTask.java index d2c364fa7..6a3c54a93 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/connection/ConnectionReconciliationTask.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/connection/ConnectionReconciliationTask.java @@ -16,7 +16,7 @@ import org.opendaylight.ovsdb.southbound.reconciliation.ReconciliationManager; import org.opendaylight.ovsdb.southbound.reconciliation.ReconciliationTask; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,7 +30,7 @@ public class ConnectionReconciliationTask extends ReconciliationTask { private final AtomicInteger connectionAttempt = new AtomicInteger(0); public ConnectionReconciliationTask(final ReconciliationManager reconciliationManager, - final OvsdbConnectionManager connectionManager, final InstanceIdentifier nodeIid, + final OvsdbConnectionManager connectionManager, final DataObjectIdentifier nodeIid, final OvsdbNodeAugmentation configData) { super(reconciliationManager, connectionManager, nodeIid, configData); } @@ -39,7 +39,7 @@ public class ConnectionReconciliationTask extends ReconciliationTask { public boolean reconcileConfiguration(final OvsdbConnectionManager connectionManagerOfDevice) { boolean result = false; connectionAttempt.incrementAndGet(); - InstanceIdentifier ndIid = (InstanceIdentifier) nodeIid; + var ndIid = (DataObjectIdentifier) nodeIid; OvsdbNodeAugmentation ovsdbNode = (OvsdbNodeAugmentation)configData; LOG.info("Retry({}) connection to Ovsdb Node {} ", connectionAttempt.get(), ovsdbNode.getConnectionInfo()); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OpenVSwitchUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OpenVSwitchUpdateCommand.java index 8aed5498d..906876ce2 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OpenVSwitchUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OpenVSwitchUpdateCommand.java @@ -49,6 +49,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; @@ -78,7 +79,7 @@ public class OpenVSwitchUpdateCommand extends AbstractTransactionCommand { for (Entry entry : updatedOpenVSwitchRows.entrySet()) { OpenVSwitch openVSwitch = entry.getValue(); - final InstanceIdentifier nodePath = getInstanceIdentifier(openVSwitch); + final var nodePath = getInstanceIdentifier(openVSwitch); OvsdbNodeAugmentationBuilder ovsdbNodeBuilder = new OvsdbNodeAugmentationBuilder(); @@ -91,7 +92,7 @@ public class OpenVSwitchUpdateCommand extends AbstractTransactionCommand { setOtherConfig(transaction, ovsdbNodeBuilder, oldEntry, openVSwitch); ovsdbNodeBuilder.setConnectionInfo(getConnectionInfo()); - transaction.merge(LogicalDatastoreType.OPERATIONAL, nodePath.toIdentifier(), new NodeBuilder() + transaction.merge(LogicalDatastoreType.OPERATIONAL, nodePath, new NodeBuilder() .setNodeId(getNodeId(openVSwitch)) .addAugmentation(ovsdbNodeBuilder.build()) .build()); @@ -251,30 +252,29 @@ public class OpenVSwitchUpdateCommand extends AbstractTransactionCommand { } } - private InstanceIdentifier getInstanceIdentifier(OpenVSwitch ovs) { + private DataObjectIdentifier getInstanceIdentifier(OpenVSwitch ovs) { if (ovs.getExternalIdsColumn() != null && ovs.getExternalIdsColumn().getData() != null && ovs.getExternalIdsColumn().getData().containsKey(SouthboundConstants.IID_EXTERNAL_ID_KEY)) { String iidString = ovs.getExternalIdsColumn().getData().get(SouthboundConstants.IID_EXTERNAL_ID_KEY); - InstanceIdentifier iid = - (InstanceIdentifier) instanceIdentifierCodec.bindingDeserializerOrNull(iidString); + var iid = (DataObjectIdentifier) instanceIdentifierCodec.bindingDeserializerOrNull(iidString) + .toIdentifier(); getOvsdbConnectionInstance().setInstanceIdentifier(iid); } else { String nodeString = SouthboundConstants.OVSDB_URI_PREFIX + "://" + SouthboundConstants.UUID + "/" + ovs.getUuid().toString(); NodeId nodeId = new NodeId(new Uri(nodeString)); NodeKey nodeKey = new NodeKey(nodeId); - InstanceIdentifier iid = InstanceIdentifier.builder(NetworkTopology.class) - .child(Topology.class,new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class,nodeKey) - .build(); - getOvsdbConnectionInstance().setInstanceIdentifier(iid); + getOvsdbConnectionInstance().setInstanceIdentifier(DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class,new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) + .child(Node.class ,nodeKey) + .build()); } return getOvsdbConnectionInstance().getInstanceIdentifier(); } @VisibleForTesting @NonNull NodeId getNodeId(OpenVSwitch ovs) { - return getInstanceIdentifier(ovs).firstKeyOf(Node.class).getNodeId(); + return getInstanceIdentifier(ovs).getFirstKeyOf(Node.class).getNodeId(); } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachRemovedCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachRemovedCommand.java index 186f80f19..9d542eaf5 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachRemovedCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachRemovedCommand.java @@ -5,7 +5,6 @@ * 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.ovsdb.southbound.transactions.md; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; @@ -26,7 +25,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.Autoattach; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.AutoattachKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,19 +45,19 @@ public class OvsdbAutoAttachRemovedCommand extends AbstractTransactionCommand { return; } - final InstanceIdentifier nodeIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var nodeIId = getOvsdbConnectionInstance().getInstanceIdentifier(); final Optional ovsdbNode = SouthboundUtil.readNode(transaction, nodeIId); if (ovsdbNode.isPresent()) { - final InstanceIdentifier ovsdbNodeIid = + final var ovsdbNodeIid = SouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance().getNodeId()); // FIXME: Iterate on external_ids instead of uuid when Open vSwitch supports external_ids column for (final UUID autoAttachUuid : removedAutoAttachRows.keySet()) { final AutoattachKey autoAttachKey = getAutoAttachKeyToRemove(ovsdbNode.orElseThrow(), autoAttachUuid); if (autoAttachKey != null) { - final InstanceIdentifier iid = ovsdbNodeIid - .augmentation(OvsdbNodeAugmentation.class) - .child(Autoattach.class, autoAttachKey); - transaction.delete(LogicalDatastoreType.OPERATIONAL, iid.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, ovsdbNodeIid.toBuilder() + .augmentation(OvsdbNodeAugmentation.class) + .child(Autoattach.class, autoAttachKey) + .build()); LOG.debug("AutoAttach table {} for Ovsdb Node {} is deleted", autoAttachUuid, ovsdbNode.orElseThrow().getNodeId()); } else { diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachUpdateCommand.java index 0def01795..6b0309cce 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachUpdateCommand.java @@ -33,7 +33,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.autoattach.MappingsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.autoattach.MappingsKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; @@ -62,7 +61,7 @@ public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand { private void updateAutoAttach(ReadWriteTransaction transaction, Map newUpdatedAutoAttachRows) { - final InstanceIdentifier nodeIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var nodeIId = getOvsdbConnectionInstance().getInstanceIdentifier(); final Optional ovsdbNode = SouthboundUtil.readNode(transaction, nodeIId); if (ovsdbNode.isPresent()) { for (final Entry entry : newUpdatedAutoAttachRows.entrySet()) { @@ -77,10 +76,11 @@ public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand { Autoattach currentAutoattach = null; if (oldAutoAttach.getUuidColumn() != null) { try { - final InstanceIdentifier currentIid = nodeIId + final var currentIid = nodeIId.toBuilder() .augmentation(OvsdbNodeAugmentation.class) .child(Autoattach.class, new AutoattachKey(new Uri(oldAutoAttach - .getUuidColumn().getData().toString()))); + .getUuidColumn().getData().toString()))) + .build(); // FIXME: To be uncommented and replaced to currentIid when // Open vSwitch supports external_ids column // InstanceIdentifier currentIid = nodeIId @@ -89,7 +89,7 @@ public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand { // .getExternalIdsColumn().getData() // .get(SouthboundConstants.AUTOATTACH_ID_EXTERNAL_ID_KEY)))); final Optional optionalAutoattach = - transaction.read(LogicalDatastoreType.OPERATIONAL, currentIid.toIdentifier()).get(); + transaction.read(LogicalDatastoreType.OPERATIONAL, currentIid).get(); if (optionalAutoattach.isPresent()) { currentAutoattach = optionalAutoattach.orElseThrow(); } @@ -126,10 +126,10 @@ public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand { final Autoattach autoAttachEntry = autoAttachBuilder.build(); LOG.trace("Update Ovsdb Node {} with AutoAttach table entries {}", ovsdbNode.orElseThrow().getNodeId(), autoAttachEntry); - final InstanceIdentifier iid = nodeIId - .augmentation(OvsdbNodeAugmentation.class) - .child(Autoattach.class, autoAttachEntry.key()); - transaction.put(LogicalDatastoreType.OPERATIONAL, iid.toIdentifier(), autoAttachEntry); + transaction.put(LogicalDatastoreType.OPERATIONAL, nodeIId.toBuilder() + .augmentation(OvsdbNodeAugmentation.class) + .child(Autoattach.class, autoAttachEntry.key()) + .build(), autoAttachEntry); } } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeRemovedCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeRemovedCommand.java index f9956e3ef..ce1c45c07 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeRemovedCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeRemovedCommand.java @@ -38,12 +38,13 @@ public class OvsdbBridgeRemovedCommand extends AbstractTransactionCommand { for (Bridge bridge : removedRows) { final var bridgeIid = SouthboundMapper.createInstanceIdentifier(instanceIdentifierCodec, getOvsdbConnectionInstance(), bridge); - final var mnIid = getOvsdbConnectionInstance().getInstanceIdentifier() + final var mnIid = getOvsdbConnectionInstance().getInstanceIdentifier().toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(ManagedNodeEntry.class, new ManagedNodeEntryKey(new OvsdbBridgeRef(bridgeIid))); + .child(ManagedNodeEntry.class, new ManagedNodeEntryKey(new OvsdbBridgeRef(bridgeIid))) + .build(); // TODO handle removal of reference to managed node from model transaction.delete(LogicalDatastoreType.OPERATIONAL, bridgeIid); - transaction.delete(LogicalDatastoreType.OPERATIONAL, mnIid.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, mnIid); } } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommand.java index 244f8e748..2fc021845 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommand.java @@ -67,7 +67,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -96,7 +95,7 @@ public class OvsdbBridgeUpdateCommand extends AbstractTransactionCommand { return; } - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); Optional connection = SouthboundUtil.readNode(transaction, connectionIId); if (!connection.isPresent()) { return; @@ -108,10 +107,10 @@ public class OvsdbBridgeUpdateCommand extends AbstractTransactionCommand { } @VisibleForTesting - void updateBridge(ReadWriteTransaction transaction, Bridge bridge, InstanceIdentifier connectionIId) { + void updateBridge(ReadWriteTransaction transaction, Bridge bridge, DataObjectIdentifier connectionIId) { // Update the connection node to let it know it manages this bridge Node connectionNode = buildConnectionNode(bridge); - transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId.toIdentifier(), connectionNode); + transaction.merge(LogicalDatastoreType.OPERATIONAL, connectionIId, connectionNode); // Update the bridge node with whatever data we are getting final var bridgeIid = getInstanceIdentifier(bridge); @@ -125,17 +124,18 @@ public class OvsdbBridgeUpdateCommand extends AbstractTransactionCommand { } @VisibleForTesting - void deleteEntries(ReadWriteTransaction transaction, List> entryIids) { + void deleteEntries(ReadWriteTransaction transaction, + List> entryIids) { for (var entryIid : entryIids) { - transaction.delete(LogicalDatastoreType.OPERATIONAL, entryIid.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, entryIid); } } - private List> bridgeOtherConfigsToRemove( + private List> bridgeOtherConfigsToRemove( DataObjectIdentifier bridgeIid, Bridge bridge) { requireNonNull(bridgeIid); requireNonNull(bridge); - List> result = new ArrayList<>(); + List> result = new ArrayList<>(); Bridge oldBridge = oldBridgeRows.get(bridge.getUuid()); @@ -147,18 +147,18 @@ public class OvsdbBridgeUpdateCommand extends AbstractTransactionCommand { result.add(bridgeIid.toBuilder() .augmentation(OvsdbBridgeAugmentation.class) .child(BridgeOtherConfigs.class, new BridgeOtherConfigsKey(otherConfig.getKey())) - .build().toLegacy()); + .build()); } } } return result; } - private List> externalIdsToRemove( + private List> externalIdsToRemove( DataObjectIdentifier bridgeIid, Bridge bridge) { requireNonNull(bridgeIid); requireNonNull(bridge); - List> result = new ArrayList<>(); + List> result = new ArrayList<>(); Bridge oldBridge = oldBridgeRows.get(bridge.getUuid()); @@ -170,19 +170,18 @@ public class OvsdbBridgeUpdateCommand extends AbstractTransactionCommand { result.add(bridgeIid.toBuilder() .augmentation(OvsdbBridgeAugmentation.class) .child(BridgeExternalIds.class, new BridgeExternalIdsKey(externalId.getKey())) - .build() - .toLegacy()); + .build()); } } } return result; } - private List> protocolEntriesToRemove( + private List> protocolEntriesToRemove( DataObjectIdentifier bridgeIid, Bridge bridge) { requireNonNull(bridgeIid); requireNonNull(bridge); - List> result = new ArrayList<>(); + List> result = new ArrayList<>(); Bridge oldBridge = oldBridgeRows.get(bridge.getUuid()); try { @@ -194,8 +193,7 @@ public class OvsdbBridgeUpdateCommand extends AbstractTransactionCommand { result.add(bridgeIid.toBuilder() .augmentation(OvsdbBridgeAugmentation.class) .child(ProtocolEntry.class, new ProtocolEntryKey(proto)) - .build() - .toLegacy()); + .build()); } } } @@ -266,8 +264,8 @@ public class OvsdbBridgeUpdateCommand extends AbstractTransactionCommand { } private void setManagedBy(OvsdbBridgeAugmentationBuilder ovsdbBridgeAugmentationBuilder) { - InstanceIdentifier connectionNodePath = getOvsdbConnectionInstance().getInstanceIdentifier(); - ovsdbBridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(connectionNodePath.toIdentifier())); + DataObjectIdentifier connectionNodePath = getOvsdbConnectionInstance().getInstanceIdentifier(); + ovsdbBridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(connectionNodePath)); } private static void setDataPathType(OvsdbBridgeAugmentationBuilder ovsdbBridgeAugmentationBuilder, Bridge bridge) { @@ -380,7 +378,7 @@ public class OvsdbBridgeUpdateCommand extends AbstractTransactionCommand { if (bridgeControllerIpAddress.getIpv4Address().getValue() .equals(networkInterfaceAddress.getHostAddress())) { ovsdbBridgeAugmentationBuilder.setBridgeOpenflowNodeRef( - getOvsdbConnectionInstance().getInstanceIdentifier().toIdentifier()); + getOvsdbConnectionInstance().getInstanceIdentifier()); break networkInterfacesLoop; } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerUpdateCommand.java index 87ffeedea..e2ec8c654 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerUpdateCommand.java @@ -91,8 +91,8 @@ public class OvsdbControllerUpdateCommand extends AbstractTransactionCommand { for (ControllerEntry controllerEntry : controllerEntries) { transaction.merge(LogicalDatastoreType.OPERATIONAL, - getControllerEntryIid(controllerEntry, bridgeEntry.getValue().getNameColumn().getData()) - .toIdentifier(), controllerEntry); + getControllerEntryIid(controllerEntry, bridgeEntry.getValue().getNameColumn().getData()), + controllerEntry); } } } @@ -113,17 +113,17 @@ public class OvsdbControllerUpdateCommand extends AbstractTransactionCommand { void updateController(final ReadWriteTransaction transaction, final Map newUpdatedControllerRows) { - Map, Node> bridgeNodes = getBridgeNodes(transaction); - for (Map.Entry, Node> bridgeNodeEntry : bridgeNodes.entrySet()) { + Map, Node> bridgeNodes = getBridgeNodes(transaction); + for (var bridgeNodeEntry : bridgeNodes.entrySet()) { final List controllerEntries = SouthboundMapper.createControllerEntries(bridgeNodeEntry.getValue(), newUpdatedControllerRows); for (ControllerEntry controllerEntry : controllerEntries) { - final InstanceIdentifier bridgeIid = bridgeNodeEntry.getKey(); - InstanceIdentifier iid = bridgeIid - .augmentation(OvsdbBridgeAugmentation.class) - .child(ControllerEntry.class, controllerEntry.key()); - transaction.merge(LogicalDatastoreType.OPERATIONAL, iid.toIdentifier(), controllerEntry); + final var bridgeIid = bridgeNodeEntry.getKey(); + transaction.merge(LogicalDatastoreType.OPERATIONAL, bridgeIid.toBuilder() + .augmentation(OvsdbBridgeAugmentation.class) + .child(ControllerEntry.class, controllerEntry.key()) + .build(), controllerEntry); } } } @@ -134,9 +134,9 @@ public class OvsdbControllerUpdateCommand extends AbstractTransactionCommand { * @param transaction the {@link ReadWriteTransaction} * @return map of nodes */ - private Map, Node> getBridgeNodes(final ReadWriteTransaction transaction) { - Map, Node> bridgeNodes = new HashMap<>(); - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + private Map, Node> getBridgeNodes(final ReadWriteTransaction transaction) { + Map, Node> bridgeNodes = new HashMap<>(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); final Optional ovsdbNode = SouthboundUtil.readNode(transaction, connectionIId); if (ovsdbNode.isPresent()) { OvsdbNodeAugmentation ovsdbNodeAugmentation = @@ -146,8 +146,7 @@ public class OvsdbControllerUpdateCommand extends AbstractTransactionCommand { ovsdbNodeAugmentation.getManagedNodeEntry(); for (ManagedNodeEntry managedNodeEntry : managedNodeEntries.values()) { @SuppressWarnings("unchecked") - final var bridgeIid = ((DataObjectIdentifier) managedNodeEntry.getBridgeRef().getValue()) - .toLegacy(); + final var bridgeIid = ((DataObjectIdentifier) managedNodeEntry.getBridgeRef().getValue()); final Optional bridgeNode = SouthboundUtil.readNode(transaction, bridgeIid); if (bridgeNode.isPresent()) { bridgeNodes.put(bridgeIid, bridgeNode.orElseThrow()); @@ -173,7 +172,7 @@ public class OvsdbControllerUpdateCommand extends AbstractTransactionCommand { * @return the {@link InstanceIdentifier} */ @VisibleForTesting - InstanceIdentifier getControllerEntryIid( + DataObjectIdentifier getControllerEntryIid( final ControllerEntry controllerEntry, final String bridgeName) { OvsdbConnectionInstance client = getOvsdbConnectionInstance(); @@ -181,13 +180,11 @@ public class OvsdbControllerUpdateCommand extends AbstractTransactionCommand { + "/bridge/" + bridgeName; NodeId nodeId = new NodeId(new Uri(nodeString)); NodeKey nodeKey = new NodeKey(nodeId); - InstanceIdentifier bridgeIid = InstanceIdentifier.builder(NetworkTopology.class) + return DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class, nodeKey) - .build(); - - return bridgeIid .augmentation(OvsdbBridgeAugmentation.class) - .child(ControllerEntry.class, controllerEntry.key()); + .child(ControllerEntry.class, controllerEntry.key()) + .build(); } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbInitialPortUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbInitialPortUpdateCommand.java index 06ff5ec93..b2e85ede4 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbInitialPortUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbInitialPortUpdateCommand.java @@ -24,8 +24,8 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,9 +52,9 @@ public class OvsdbInitialPortUpdateCommand extends OvsdbPortUpdateCommand { @Override @SuppressWarnings("checkstyle:IllegalCatch") protected void updateToDataStore(ReadWriteTransaction transaction, TerminationPointBuilder tpBuilder, - InstanceIdentifier tpPath, boolean merge) { + DataObjectIdentifier tpPath, boolean merge) { try { - NodeId bridgeNodeId = tpPath.firstKeyOf(Node.class).getNodeId(); + NodeId bridgeNodeId = tpPath.getFirstKeyOf(Node.class).getNodeId(); TerminationPoint terminationPoint = tpBuilder.build(); if (updatedBridgeNodes.containsKey(bridgeNodeId)) { if (brigeToTerminationPointList.containsKey(bridgeNodeId)) { @@ -77,21 +77,20 @@ public class OvsdbInitialPortUpdateCommand extends OvsdbPortUpdateCommand { private void mergeToBridgeNode(ReadWriteTransaction transaction) { brigeToTerminationPointList.forEach((nodeId, terminationPoints) -> { - InstanceIdentifier bridgeIid = SouthboundMapper.createInstanceIdentifier(nodeId); + var bridgeIid = SouthboundMapper.createInstanceIdentifier(nodeId); StringBuilder terminationPointList = new StringBuilder(); Node bridgeNode = updatedBridgeNodes.get(nodeId); if (bridgeNode != null) { Node bridgeNodeWithTerminationPoints = new NodeBuilder(bridgeNode) .setTerminationPoint(BindingMap.ordered(terminationPoints)) .build(); - transaction.merge(LogicalDatastoreType.OPERATIONAL, bridgeIid.toIdentifier(), - bridgeNodeWithTerminationPoints); + transaction.merge(LogicalDatastoreType.OPERATIONAL, bridgeIid, bridgeNodeWithTerminationPoints); } terminationPoints.forEach(terminationPoint -> { terminationPointList.append(terminationPoint.key().getTpId().getValue() + ","); }); LOG.info("DEVICE - {} Initial TerminationPoint List : {} to Bridge : {}", TransactionType.ADD, - terminationPointList.toString(), bridgeIid.firstKeyOf(Node.class).getNodeId().getValue()); + terminationPointList.toString(), bridgeIid.getFirstKeyOf(Node.class).getNodeId().getValue()); }); } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersRemovedCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersRemovedCommand.java index 8fe6044c1..ee4ce817a 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersRemovedCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersRemovedCommand.java @@ -29,7 +29,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ManagerEntry; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ManagerEntryKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; public class OvsdbManagersRemovedCommand extends AbstractTransactionCommand { private final Map oldOpenVSwitchRows; @@ -56,21 +56,19 @@ public class OvsdbManagersRemovedCommand extends AbstractTransactionCommand { } @VisibleForTesting - void deleteManagers(ReadWriteTransaction transaction, - List> managerEntryIids) { + void deleteManagers(ReadWriteTransaction transaction, List> managerEntryIids) { for (var managerEntryIid : managerEntryIids) { - transaction.delete(LogicalDatastoreType.OPERATIONAL, managerEntryIid.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, managerEntryIid); } } @VisibleForTesting - List> managerEntriesToRemove( - InstanceIdentifier ovsdbNodeIid, OpenVSwitch openVSwitch) { + List> managerEntriesToRemove(DataObjectIdentifier ovsdbNodeIid, + OpenVSwitch openVSwitch) { requireNonNull(ovsdbNodeIid); requireNonNull(openVSwitch); - List> result = - new ArrayList<>(); + List> result = new ArrayList<>(); OpenVSwitch oldOvsdbNode = oldOpenVSwitchRows.get(openVSwitch.getUuid()); if (oldOvsdbNode != null && oldOvsdbNode.getManagerOptionsColumn() != null) { @@ -80,12 +78,11 @@ public class OvsdbManagersRemovedCommand extends AbstractTransactionCommand { Manager manager = removedManagerRows.get(managerUuid); if (!checkIfManagerPresentInUpdatedManagersList(manager)) { if (manager != null && manager.getTargetColumn() != null) { - InstanceIdentifier iid = ovsdbNodeIid - .augmentation(OvsdbNodeAugmentation.class) - .child(ManagerEntry.class, - new ManagerEntryKey( - new Uri(manager.getTargetColumn().getData()))); - result.add(iid); + result.add(ovsdbNodeIid.toBuilder() + .augmentation(OvsdbNodeAugmentation.class) + .child(ManagerEntry.class, + new ManagerEntryKey(new Uri(manager.getTargetColumn().getData()))) + .build()); } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersUpdateCommand.java index 7cc810ad6..a7cc92cc4 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersUpdateCommand.java @@ -34,7 +34,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -86,8 +86,7 @@ public class OvsdbManagersUpdateCommand extends AbstractTransactionCommand { LOG.debug("Update Ovsdb Node : {} with manager entries : {}", ovsdbNodeEntry.getValue(), managerEntries); for (ManagerEntry managerEntry : managerEntries) { - transaction.merge(LogicalDatastoreType.OPERATIONAL, - getManagerEntryIid(managerEntry).toIdentifier(), managerEntry); + transaction.merge(LogicalDatastoreType.OPERATIONAL, getManagerEntryIid(managerEntry), managerEntry); } } } @@ -107,7 +106,7 @@ public class OvsdbManagersUpdateCommand extends AbstractTransactionCommand { private void updateManagers(ReadWriteTransaction transaction, Map newUpdatedManagerRows) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final DataObjectIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); final Optional ovsdbNode = SouthboundUtil.readNode(transaction, connectionIId); if (ovsdbNode.isPresent()) { final List managerEntries = @@ -115,35 +114,34 @@ public class OvsdbManagersUpdateCommand extends AbstractTransactionCommand { LOG.debug("Update Ovsdb Node : {} with manager entries : {}", ovsdbNode.orElseThrow(), managerEntries); for (ManagerEntry managerEntry : managerEntries) { - InstanceIdentifier iid = connectionIId + DataObjectIdentifier iid = connectionIId.toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(ManagerEntry.class, managerEntry.key()); - transaction.merge(LogicalDatastoreType.OPERATIONAL, iid.toIdentifier(), managerEntry); + .child(ManagerEntry.class, managerEntry.key()) + .build(); + transaction.merge(LogicalDatastoreType.OPERATIONAL, iid, managerEntry); } } } /** - * Create the {@link InstanceIdentifier} for the {@link ManagerEntry}. + * Create the {@link DataObjectIdentifier} for the {@link ManagerEntry}. * * @param managerEntry the {@link ManagerEntry} - * @return the {@link InstanceIdentifier} + * @return the {@link DataObjectIdentifier} */ @VisibleForTesting - final InstanceIdentifier getManagerEntryIid(ManagerEntry managerEntry) { + final DataObjectIdentifier getManagerEntryIid(ManagerEntry managerEntry) { OvsdbConnectionInstance client = getOvsdbConnectionInstance(); String nodeString = client.getNodeKey().getNodeId().getValue(); NodeId nodeId = new NodeId(new Uri(nodeString)); NodeKey nodeKey = new NodeKey(nodeId); - InstanceIdentifier ovsdbNodeIid = InstanceIdentifier.builder(NetworkTopology.class) + return DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class,new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class,nodeKey) - .build(); - - return ovsdbNodeIid + .child(Node.class, nodeKey) .augmentation(OvsdbNodeAugmentation.class) - .child(ManagerEntry.class, managerEntry.key()); + .child(ManagerEntry.class, managerEntry.key()) + .build(); } private Map getUriManagerMap(Map uuidManagerMap) { @@ -154,6 +152,5 @@ public class OvsdbManagersUpdateCommand extends AbstractTransactionCommand { uuidManagerMapEntry.getValue()); } return uriManagerMap; - } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbNodeRemoveCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbNodeRemoveCommand.java index 44b53d4bb..d3d3f06eb 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbNodeRemoveCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbNodeRemoveCommand.java @@ -40,7 +40,7 @@ public class OvsdbNodeRemoveCommand extends AbstractTransactionCommand { @Override public void execute(ReadWriteTransaction transaction) { FluentFuture> ovsdbNodeFuture = transaction.read( - LogicalDatastoreType.OPERATIONAL, getOvsdbConnectionInstance().getInstanceIdentifier().toIdentifier()); + LogicalDatastoreType.OPERATIONAL, getOvsdbConnectionInstance().getInstanceIdentifier()); Optional ovsdbNodeOptional; try { ovsdbNodeOptional = ovsdbNodeFuture.get(); @@ -64,7 +64,7 @@ public class OvsdbNodeRemoveCommand extends AbstractTransactionCommand { } LOG.debug("Deleting node {} from oper", getOvsdbConnectionInstance().getInstanceIdentifier()); transaction.delete(LogicalDatastoreType.OPERATIONAL, - getOvsdbConnectionInstance().getInstanceIdentifier().toIdentifier()); + getOvsdbConnectionInstance().getInstanceIdentifier()); } else { LOG.debug("Other southbound plugin instances in cluster are connected to the device," + " not deleting OvsdbNode from operational data store."); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortUpdateCommand.java index bb3710f80..546aea4d7 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortUpdateCommand.java @@ -18,6 +18,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Optional; import java.util.Set; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.ReadWriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.error.ColumnSchemaNotFoundException; @@ -91,7 +92,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; @@ -122,7 +122,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { @Override public void execute(ReadWriteTransaction transaction) { - final InstanceIdentifier connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var connectionIId = getOvsdbConnectionInstance().getInstanceIdentifier(); if (portUpdatedRows == null && interfaceOldRows == null || interfaceOldRows.isEmpty() && portUpdatedRows.isEmpty()) { return; @@ -138,19 +138,19 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { for (Entry portUpdate : portUpdatedRows.entrySet()) { String portName = null; portName = portUpdate.getValue().getNameColumn().getData(); - Optional> optBridgeIid = getTerminationPointBridge(portUpdate.getKey()); + Optional> optBridgeIid = getTerminationPointBridge(portUpdate.getKey()); if (optBridgeIid.isEmpty()) { optBridgeIid = getTerminationPointBridge(transaction, node, portName); } if (optBridgeIid.isPresent()) { - InstanceIdentifier bridgeIid = optBridgeIid.orElseThrow(); + DataObjectIdentifier bridgeIid = optBridgeIid.orElseThrow(); final NodeId bridgeId = SouthboundMapper.createManagedNodeId(bridgeIid); TerminationPointKey tpKey = new TerminationPointKey(new TpId(portName)); getOvsdbConnectionInstance().updatePortInterface(portName, bridgeIid); TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); tpBuilder.withKey(tpKey); tpBuilder.setTpId(tpKey.getTpId()); - InstanceIdentifier tpPath = + DataObjectIdentifier tpPath = getInstanceIdentifier(bridgeIid, portUpdate.getValue()); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); @@ -175,7 +175,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { } for (Entry interfaceUpdate : interfaceUpdatedRows.entrySet()) { String interfaceName = null; - Optional> bridgeIid = Optional.empty(); + Optional> bridgeIid = Optional.empty(); interfaceName = interfaceUpdatedRows.get(interfaceUpdate.getKey()).getNameColumn().getData(); if (getOvsdbConnectionInstance().getPortInterface(interfaceName) != null) { bridgeIid = Optional.of(getOvsdbConnectionInstance().getPortInterface(interfaceName)); @@ -193,29 +193,29 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { buildTerminationPoint(tpAugmentationBuilder, interfaceUpdate.getValue()); tpBuilder.addAugmentation(tpAugmentationBuilder.build()); NodeId bridgeId = SouthboundMapper.createManagedNodeId(bridgeIid.orElseThrow()); - InstanceIdentifier tpPath = InstanceIdentifier - .create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class,new NodeKey(bridgeId)) - .child(TerminationPoint.class,tpKey); - updateToDataStore(transaction, tpBuilder, tpPath, true); + updateToDataStore(transaction, tpBuilder, DataObjectIdentifier + .builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) + .child(Node.class,new NodeKey(bridgeId)) + .child(TerminationPoint.class,tpKey) + .build(), true); } } } protected void updateToDataStore(ReadWriteTransaction transaction, TerminationPointBuilder tpBuilder, - InstanceIdentifier tpPath, boolean merge) { + DataObjectIdentifier tpPath, boolean merge) { if (merge) { - transaction.merge(LogicalDatastoreType.OPERATIONAL, tpPath.toIdentifier(), tpBuilder.build()); + transaction.merge(LogicalDatastoreType.OPERATIONAL, tpPath, tpBuilder.build()); } else { - transaction.put(LogicalDatastoreType.OPERATIONAL, tpPath.toIdentifier(), tpBuilder.build()); + transaction.put(LogicalDatastoreType.OPERATIONAL, tpPath, tpBuilder.build()); } } @VisibleForTesting void buildTerminationPoint(ReadWriteTransaction transaction, - InstanceIdentifier tpPath, + DataObjectIdentifier tpPath, OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder, Node node, Entry portUpdate) { @@ -237,7 +237,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { } @SuppressWarnings("IllegalCatch") - private Optional readNode(final ReadWriteTransaction transaction, final InstanceIdentifier nodePath) { + private Optional readNode(final ReadWriteTransaction transaction, final DataObjectIdentifier nodePath) { Optional node = Optional.empty(); try { node = SouthboundUtil.readNode(transaction, nodePath); @@ -247,15 +247,14 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { return node; } - private Optional> getTerminationPointBridge(UUID portUuid) { + private Optional> getTerminationPointBridge(UUID portUuid) { if (bridgeUpdatedRows != null) { for (Entry entry : this.bridgeUpdatedRows.entrySet()) { UUID bridgeUuid = entry.getKey(); if (this.bridgeUpdatedRows.get(bridgeUuid).getPortsColumn().getData().contains(portUuid)) { final var iid = SouthboundMapper.createInstanceIdentifier(instanceIdentifierCodec, - getOvsdbConnectionInstance(), this.bridgeUpdatedRows.get(bridgeUuid)) - .toLegacy(); + getOvsdbConnectionInstance(), this.bridgeUpdatedRows.get(bridgeUuid)); getOvsdbConnectionInstance().updatePort(portUuid, iid); return Optional.of(iid); } @@ -269,14 +268,14 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { @SuppressWarnings("unchecked") // FIXME: non-static for implementation internals mocking - private Optional> getTerminationPointBridge( + private Optional> getTerminationPointBridge( final ReadWriteTransaction transaction, Node node, String tpName) { OvsdbNodeAugmentation ovsdbNode = node.augmentation(OvsdbNodeAugmentation.class); Map managedNodes = ovsdbNode.nonnullManagedNodeEntry(); TpId tpId = new TpId(tpName); for (ManagedNodeEntry managedNodeEntry : managedNodes.values()) { - final var bridgeIid = ((DataObjectIdentifier) managedNodeEntry.getBridgeRef().getValue()).toLegacy(); + final var bridgeIid = ((DataObjectIdentifier) managedNodeEntry.getBridgeRef().getValue()); Optional optManagedNode = SouthboundUtil.readNode(transaction, bridgeIid); if (optManagedNode.isPresent()) { @@ -304,7 +303,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { @VisibleForTesting void updatePort(final ReadWriteTransaction transaction, final Node node, - final InstanceIdentifier tpPath, final Entry port, + final DataObjectIdentifier tpPath, final Entry port, final OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointBuilder) { updateVlan(port.getValue(), ovsdbTerminationPointBuilder); @@ -395,7 +394,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { } private void updateQos(final ReadWriteTransaction transaction, final Node node, - InstanceIdentifier tpPath, final Entry port, + DataObjectIdentifier tpPath, final Entry port, final OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointBuilder) { if (port.getValue() == null) { return; @@ -413,37 +412,39 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { if (!oldQos.isEmpty()) { UUID oldQosUuid = oldQos.iterator().next(); if (!oldQosUuid.equals(qosUuid)) { - InstanceIdentifier oldQosIid = getQosIid(nodeId, ovsdbNode, oldQosUuid); + var oldQosIid = getQosIid(nodeId, ovsdbNode, oldQosUuid); if (oldQosIid != null) { - InstanceIdentifier oldPortQosIid = tpPath + transaction.delete(LogicalDatastoreType.OPERATIONAL, tpPath.toBuilder() .augmentation(OvsdbTerminationPointAugmentation.class) - .child(QosEntry.class, SouthboundConstants.PORT_QOS_LIST_KEY); - transaction.delete(LogicalDatastoreType.OPERATIONAL, oldPortQosIid.toIdentifier()); + .child(QosEntry.class, SouthboundConstants.PORT_QOS_LIST_KEY) + .build()); } } } } - InstanceIdentifier qosIid = getQosIid(nodeId, ovsdbNode, qosUuid); + var qosIid = getQosIid(nodeId, ovsdbNode, qosUuid); if (qosIid != null) { ovsdbTerminationPointBuilder.setQosEntry( Map.of(SouthboundConstants.PORT_QOS_LIST_KEY, new QosEntryBuilder() .withKey(SouthboundConstants.PORT_QOS_LIST_KEY) - .setQosRef(new OvsdbQosRef(qosIid.toIdentifier())) + .setQosRef(new OvsdbQosRef(qosIid)) .build())); } } } @SuppressWarnings("unchecked") - private InstanceIdentifier getQosIid(NodeId nodeId, OvsdbNodeAugmentation ovsdbNode, UUID qosUuid) { + private @NonNull DataObjectIdentifier getQosIid(NodeId nodeId, OvsdbNodeAugmentation ovsdbNode, + UUID qosUuid) { // Search for the QoS entry first in the operational datastore final Uuid uuid = new Uuid(qosUuid.toString()); for (QosEntries qosEntry : ovsdbNode.nonnullQosEntries().values()) { if (uuid.equals(qosEntry.getQosUuid())) { - return SouthboundMapper.createInstanceIdentifier(nodeId) + return SouthboundMapper.createInstanceIdentifier(nodeId).toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(QosEntries.class, qosEntry.key()); + .child(QosEntries.class, qosEntry.key()) + .build(); } } @@ -452,21 +453,23 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { Qos qos = qosUpdate.getValue(); if (qos.getUuid().equals(qosUuid)) { if (qos.getExternalIdsColumn().getData().containsKey(SouthboundConstants.IID_EXTERNAL_ID_KEY)) { - return (InstanceIdentifier) instanceIdentifierCodec.bindingDeserializerOrNull( + return (DataObjectIdentifier) instanceIdentifierCodec.bindingDeserializerOrNull( qos.getExternalIdsColumn().getData().get(SouthboundConstants.IID_EXTERNAL_ID_KEY)); } else { - return SouthboundMapper.createInstanceIdentifier(nodeId) + return SouthboundMapper.createInstanceIdentifier(nodeId).toBuilder() .augmentation(OvsdbNodeAugmentation.class) .child(QosEntries.class, new QosEntriesKey( - new Uri(SouthboundConstants.QOS_URI_PREFIX + "://" + qosUuid.toString()))); + new Uri(SouthboundConstants.QOS_URI_PREFIX + "://" + qosUuid.toString()))) + .build(); } } } LOG.debug("QoS UUID {} assigned to port not found in operational node {} or QoS updates", qosUuid, ovsdbNode); - return SouthboundMapper.createInstanceIdentifier(nodeId) + return SouthboundMapper.createInstanceIdentifier(nodeId).toBuilder() .augmentation(OvsdbNodeAugmentation.class) .child(QosEntries.class, new QosEntriesKey( - new Uri(SouthboundConstants.QOS_URI_PREFIX + "://" + qosUuid.toString()))); + new Uri(SouthboundConstants.QOS_URI_PREFIX + "://" + qosUuid.toString()))) + .build(); } private static void updateIfIndex(final Interface interf, @@ -795,14 +798,16 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { @SuppressWarnings("unchecked") @VisibleForTesting - InstanceIdentifier getInstanceIdentifier(InstanceIdentifier bridgeIid,Port port) { + DataObjectIdentifier getInstanceIdentifier(DataObjectIdentifier bridgeIid,Port port) { if (port.getExternalIdsColumn() != null && port.getExternalIdsColumn().getData() != null && port.getExternalIdsColumn().getData().containsKey(SouthboundConstants.IID_EXTERNAL_ID_KEY)) { String iidString = port.getExternalIdsColumn().getData().get(SouthboundConstants.IID_EXTERNAL_ID_KEY); - return (InstanceIdentifier) instanceIdentifierCodec.bindingDeserializerOrNull(iidString); - } else { - return bridgeIid.child(TerminationPoint.class, new TerminationPointKey(new TpId(port.getName()))); + return (DataObjectIdentifier) + instanceIdentifierCodec.bindingDeserializerOrNull(iidString); } + return bridgeIid.toBuilder() + .child(TerminationPoint.class, new TerminationPointKey(new TpId(port.getName()))) + .build(); } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQosRemovedCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQosRemovedCommand.java index 3d5982058..7eadad6d6 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQosRemovedCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQosRemovedCommand.java @@ -5,7 +5,6 @@ * 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.ovsdb.southbound.transactions.md; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; @@ -28,7 +27,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.QosEntries; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.QosEntriesKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,19 +49,18 @@ public class OvsdbQosRemovedCommand extends AbstractTransactionCommand { return; } - final InstanceIdentifier nodeIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var nodeIId = getOvsdbConnectionInstance().getInstanceIdentifier(); final Optional ovsdbNode = SouthboundUtil.readNode(transaction, nodeIId); if (ovsdbNode.isPresent()) { - List> result = new ArrayList<>(); - InstanceIdentifier ovsdbNodeIid = - SouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance().getNodeId()); + List> result = new ArrayList<>(); + var ovsdbNodeIid = SouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance().getNodeId()); for (UUID qosUuid : removedQosRows.keySet()) { QosEntriesKey qosKey = getQosEntriesKey(ovsdbNode.orElseThrow(), qosUuid); if (qosKey != null) { - InstanceIdentifier iid = ovsdbNodeIid + result.add(ovsdbNodeIid.toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(QosEntries.class, qosKey); - result.add(iid); + .child(QosEntries.class, qosKey) + .build()); } } deleteQos(transaction, result); @@ -86,9 +84,9 @@ public class OvsdbQosRemovedCommand extends AbstractTransactionCommand { } private static void deleteQos(ReadWriteTransaction transaction, - List> qosEntryIids) { - for (InstanceIdentifier qosEntryIid: qosEntryIids) { - transaction.delete(LogicalDatastoreType.OPERATIONAL, qosEntryIid.toIdentifier()); + List> qosEntryIids) { + for (var qosEntryIid: qosEntryIids) { + transaction.delete(LogicalDatastoreType.OPERATIONAL, qosEntryIid); } } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQosUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQosUpdateCommand.java index e144430c2..5badcf5f9 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQosUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQosUpdateCommand.java @@ -46,9 +46,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.qos.entries.QueueListBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.qos.entries.QueueListKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -94,7 +94,7 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { */ private void updateQos(ReadWriteTransaction transaction, Map newUpdatedQosRows) { - final InstanceIdentifier nodeIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var nodeIId = getOvsdbConnectionInstance().getInstanceIdentifier(); final Optional ovsdbNode = SouthboundUtil.readNode(transaction, nodeIId); if (ovsdbNode.isPresent()) { for (Entry entry : newUpdatedQosRows.entrySet()) { @@ -110,10 +110,10 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { QosEntries qosEntry = qosEntryBuilder.build(); LOG.debug("Update Ovsdb Node {} with qos entries {}", ovsdbNode.orElseThrow(), qosEntry); - InstanceIdentifier iid = nodeIId - .augmentation(OvsdbNodeAugmentation.class) - .child(QosEntries.class, qosEntry.key()); - transaction.merge(LogicalDatastoreType.OPERATIONAL, iid.toIdentifier(), qosEntry); + transaction.merge(LogicalDatastoreType.OPERATIONAL, nodeIId.toBuilder() + .augmentation(OvsdbNodeAugmentation.class) + .child(QosEntries.class, qosEntry.key()) + .build(), qosEntry); } } } @@ -149,12 +149,12 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { } @SuppressWarnings("unchecked") - private InstanceIdentifier getQueueIid(UUID queueUuid, Node ovsdbNode) { + private DataObjectIdentifier getQueueIid(UUID queueUuid, Node ovsdbNode) { Queue queue = getQueue(queueUuid); if (queue != null && queue.getExternalIdsColumn() != null && queue.getExternalIdsColumn().getData() != null && queue.getExternalIdsColumn().getData().containsKey(SouthboundConstants.IID_EXTERNAL_ID_KEY)) { - return (InstanceIdentifier) instanceIdentifierCodec.bindingDeserializerOrNull( + return (DataObjectIdentifier) instanceIdentifierCodec.bindingDeserializerOrNull( queue.getExternalIdsColumn().getData().get(SouthboundConstants.IID_EXTERNAL_ID_KEY)); } else { OvsdbNodeAugmentation node = ovsdbNode.augmentation(OvsdbNodeAugmentation.class); @@ -163,23 +163,24 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { final Uuid uuid = new Uuid(queueUuid.toString()); for (Queues q : queues.values()) { if (uuid.equals(q.getQueueUuid())) { - return SouthboundMapper.createInstanceIdentifier(ovsdbNode.getNodeId()) + return SouthboundMapper.createInstanceIdentifier(ovsdbNode.getNodeId()).toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Queues.class, q.key()); + .child(Queues.class, q.key()) + .build(); } } } LOG.debug("A Queue with UUID {} was not found in Ovsdb Node {}", queueUuid, node); - return SouthboundMapper.createInstanceIdentifier(ovsdbNode.getNodeId()) + return SouthboundMapper.createInstanceIdentifier(ovsdbNode.getNodeId()).toBuilder() .augmentation(OvsdbNodeAugmentation.class) .child(Queues.class, new QueuesKey( - new Uri(SouthboundConstants.QUEUE_URI_PREFIX + "://" + queueUuid.toString()))); + new Uri(SouthboundConstants.QUEUE_URI_PREFIX + "://" + queueUuid.toString()))) + .build(); } } - private static void setOtherConfig(ReadWriteTransaction transaction, - QosEntriesBuilder qosEntryBuilder, Qos oldQos, Qos qos, - InstanceIdentifier nodeIId) { + private static void setOtherConfig(ReadWriteTransaction transaction, QosEntriesBuilder qosEntryBuilder, Qos oldQos, + Qos qos, DataObjectIdentifier nodeIId) { Map oldOtherConfigs = null; Map otherConfigs = null; @@ -199,16 +200,16 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { private static void removeOldConfigs(ReadWriteTransaction transaction, QosEntriesBuilder qosEntryBuilder, Map oldOtherConfigs, - Qos qos, InstanceIdentifier nodeIId) { - InstanceIdentifier qosIId = nodeIId + Qos qos, DataObjectIdentifier nodeIId) { + var qosIId = nodeIId.toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(QosEntries.class, qosEntryBuilder.build().key()); + .child(QosEntries.class, qosEntryBuilder.build().key()) + .build(); Set otherConfigKeys = oldOtherConfigs.keySet(); for (String otherConfigKey : otherConfigKeys) { - KeyedInstanceIdentifier otherIId = - qosIId - .child(QosOtherConfig.class, new QosOtherConfigKey(otherConfigKey)); - transaction.delete(LogicalDatastoreType.OPERATIONAL, otherIId.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, qosIId.toBuilder() + .child(QosOtherConfig.class, new QosOtherConfigKey(otherConfigKey)) + .build()); } } @@ -228,7 +229,7 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { private static void setExternalIds(ReadWriteTransaction transaction, QosEntriesBuilder qosEntryBuilder, Qos oldQos, Qos qos, - InstanceIdentifier nodeIId) { + DataObjectIdentifier nodeIId) { Map oldExternalIds = null; Map externalIds = null; @@ -248,21 +249,20 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { private static void removeOldExternalIds(ReadWriteTransaction transaction, QosEntriesBuilder qosEntryBuilder, Map oldExternalIds, - Qos qos, InstanceIdentifier nodeIId) { - InstanceIdentifier qosIId = nodeIId + Qos qos, DataObjectIdentifier nodeIId) { + var qosIId = nodeIId.toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(QosEntries.class, qosEntryBuilder.build().key()); + .child(QosEntries.class, qosEntryBuilder.build().key()) + .build(); Set externalIdsKeys = oldExternalIds.keySet(); for (String extIdKey : externalIdsKeys) { - KeyedInstanceIdentifier externalIId = - qosIId - .child(QosExternalIds.class, new QosExternalIdsKey(extIdKey)); - transaction.delete(LogicalDatastoreType.OPERATIONAL, externalIId.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, qosIId.toBuilder() + .child(QosExternalIds.class, new QosExternalIdsKey(extIdKey)) + .build()); } } - private static void setNewExternalIds(QosEntriesBuilder qosEntryBuilder, - Map externalIds) { + private static void setNewExternalIds(QosEntriesBuilder qosEntryBuilder, Map externalIds) { var externalIdsList = BindingMap.orderedBuilder(); for (Entry entry : externalIds.entrySet()) { String extIdKey = entry.getKey(); @@ -277,7 +277,7 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { private void setQueueList(ReadWriteTransaction transaction, QosEntriesBuilder qosEntryBuilder, Qos oldQos, Qos qos, - InstanceIdentifier nodeIId, Node ovsdbNode) { + DataObjectIdentifier nodeIId, Node ovsdbNode) { Map oldQueueList = null; Map queueList = null; @@ -297,15 +297,16 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { private static void removeOldQueues(ReadWriteTransaction transaction, QosEntriesBuilder qosEntryBuilder, Map oldQueueList, - Qos qos, InstanceIdentifier nodeIId) { - InstanceIdentifier qosIId = nodeIId + Qos qos, DataObjectIdentifier nodeIId) { + var qosIId = nodeIId.toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(QosEntries.class, qosEntryBuilder.build().key()); + .child(QosEntries.class, qosEntryBuilder.build().key()) + .build(); Collection queueListKeys = oldQueueList.keySet(); for (Long queueListKey : queueListKeys) { - KeyedInstanceIdentifier otherIId = - qosIId.child(QueueList.class, new QueueListKey(Uint32.valueOf(queueListKey))); - transaction.delete(LogicalDatastoreType.OPERATIONAL, otherIId.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, qosIId.toBuilder() + .child(QueueList.class, new QueueListKey(Uint32.valueOf(queueListKey))) + .build()); } } @@ -313,12 +314,12 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { Set> queueEntries = queueList.entrySet(); var newQueueList = BindingMap.orderedBuilder(); for (Entry queueEntry : queueEntries) { - InstanceIdentifier queueIid = getQueueIid(queueEntry.getValue(), ovsdbNode); + var queueIid = getQueueIid(queueEntry.getValue(), ovsdbNode); if (queueIid != null) { - newQueueList.add( - new QueueListBuilder() + newQueueList.add(new QueueListBuilder() .setQueueNumber(Uint32.valueOf(queueEntry.getKey())) - .setQueueRef(new OvsdbQueueRef(queueIid.toIdentifier())).build()); + .setQueueRef(new OvsdbQueueRef(queueIid)) + .build()); } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQueueRemovedCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQueueRemovedCommand.java index b28ce4366..d0fd785f1 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQueueRemovedCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQueueRemovedCommand.java @@ -28,7 +28,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.Queues; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.QueuesKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,19 +49,19 @@ public class OvsdbQueueRemovedCommand extends AbstractTransactionCommand { return; } - final InstanceIdentifier nodeIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var nodeIId = getOvsdbConnectionInstance().getInstanceIdentifier(); final Optional ovsdbNode = SouthboundUtil.readNode(transaction, nodeIId); if (ovsdbNode.isPresent()) { - List> result = new ArrayList<>(); - InstanceIdentifier ovsdbNodeIid = + List> result = new ArrayList<>(); + var ovsdbNodeIid = SouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance().getNodeId()); for (UUID queueUuid : removedQueueRows.keySet()) { QueuesKey queueKey = getQueueKey(ovsdbNode.orElseThrow(), queueUuid); if (queueKey != null) { - InstanceIdentifier iid = ovsdbNodeIid + result.add(ovsdbNodeIid.toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Queues.class, queueKey); - result.add(iid); + .child(Queues.class, queueKey) + .build()); } } deleteQueue(transaction, result); @@ -85,9 +85,9 @@ public class OvsdbQueueRemovedCommand extends AbstractTransactionCommand { } private static void deleteQueue(ReadWriteTransaction transaction, - List> queueIids) { - for (InstanceIdentifier queueIid: queueIids) { - transaction.delete(LogicalDatastoreType.OPERATIONAL, queueIid.toIdentifier()); + List> queueIids) { + for (DataObjectIdentifier queueIid: queueIids) { + transaction.delete(LogicalDatastoreType.OPERATIONAL, queueIid); } } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQueueUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQueueUpdateCommand.java index 8bd82faf6..cbe28ba55 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQueueUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQueueUpdateCommand.java @@ -37,9 +37,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.queues.QueuesOtherConfigBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.queues.QueuesOtherConfigKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint8; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -81,7 +81,7 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand { */ private void updateQueue(ReadWriteTransaction transaction) { - final InstanceIdentifier nodeIId = getOvsdbConnectionInstance().getInstanceIdentifier(); + final var nodeIId = getOvsdbConnectionInstance().getInstanceIdentifier(); final Optional ovsdbNode = SouthboundUtil.readNode(transaction, nodeIId); if (ovsdbNode.isPresent()) { for (Entry entry : updatedQueueRows.entrySet()) { @@ -99,10 +99,10 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand { Queues queues = queuesBuilder.build(); LOG.debug("Update Ovsdb Node {} with queue entries {}",ovsdbNode.orElseThrow(), queues); - InstanceIdentifier iid = nodeIId - .augmentation(OvsdbNodeAugmentation.class) - .child(Queues.class, queues.key()); - transaction.merge(LogicalDatastoreType.OPERATIONAL, iid.toIdentifier(), queues); + transaction.merge(LogicalDatastoreType.OPERATIONAL, nodeIId.toBuilder() + .augmentation(OvsdbNodeAugmentation.class) + .child(Queues.class, queues.key()) + .build(), queues); } } } @@ -131,7 +131,7 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand { private static void setOtherConfig(ReadWriteTransaction transaction, QueuesBuilder queuesBuilder, Queue oldQueue, Queue queue, - InstanceIdentifier nodeIId) { + DataObjectIdentifier nodeIId) { Map oldOtherConfigs = null; Map otherConfigs = null; @@ -151,16 +151,16 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand { private static void removeOldConfigs(ReadWriteTransaction transaction, QueuesBuilder queuesBuilder, Map oldOtherConfigs, - Queue queue, InstanceIdentifier nodeIId) { - InstanceIdentifier queueIId = nodeIId + Queue queue, DataObjectIdentifier nodeIId) { + var queueIId = nodeIId.toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Queues.class, queuesBuilder.build().key()); + .child(Queues.class, queuesBuilder.build().key()) + .build(); Set otherConfigKeys = oldOtherConfigs.keySet(); for (String otherConfigKey : otherConfigKeys) { - KeyedInstanceIdentifier otherIId = - queueIId - .child(QueuesOtherConfig.class, new QueuesOtherConfigKey(otherConfigKey)); - transaction.delete(LogicalDatastoreType.OPERATIONAL, otherIId.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, queueIId.toBuilder() + .child(QueuesOtherConfig.class, new QueuesOtherConfigKey(otherConfigKey)) + .build()); } } @@ -179,7 +179,7 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand { private static void setExternalIds(ReadWriteTransaction transaction, QueuesBuilder queuesBuilder, Queue oldQueue, Queue queue, - InstanceIdentifier nodeIId) { + DataObjectIdentifier nodeIId) { Map oldExternalIds = null; Map externalIds = null; @@ -199,16 +199,16 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand { private static void removeOldExternalIds(ReadWriteTransaction transaction, QueuesBuilder queuesBuilder, Map oldExternalIds, - Queue queue, InstanceIdentifier nodeIId) { - InstanceIdentifier queueIId = nodeIId + Queue queue, DataObjectIdentifier nodeIId) { + var queueIId = nodeIId.toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Queues.class, queuesBuilder.build().key()); + .child(Queues.class, queuesBuilder.build().key()) + .build(); Set externalIdsKeys = oldExternalIds.keySet(); for (String extIdKey : externalIdsKeys) { - KeyedInstanceIdentifier externalIId = - queueIId - .child(QueuesExternalIds.class, new QueuesExternalIdsKey(extIdKey)); - transaction.delete(LogicalDatastoreType.OPERATIONAL, externalIId.toIdentifier()); + transaction.delete(LogicalDatastoreType.OPERATIONAL, queueIId.toBuilder() + .child(QueuesExternalIds.class, new QueuesExternalIdsKey(extIdKey)) + .build()); } } diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionInstanceTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionInstanceTest.java index 964c60d16..ed9338c49 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionInstanceTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionInstanceTest.java @@ -58,7 +58,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.powermock.reflect.Whitebox; @RunWith(MockitoJUnitRunner.class) @@ -71,9 +71,10 @@ public class OvsdbConnectionInstanceTest { @Mock private MonitorCallBack callback; @Mock private ConnectionInfo key; - private final InstanceIdentifier instanceIdentifier = InstanceIdentifier.create(NetworkTopology.class) + private final DataObjectIdentifier instanceIdentifier = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode"))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build(); private Map transactInvokers; @Before diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java index 94c64414e..9a78bc2e2 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java @@ -60,7 +60,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; @@ -81,9 +80,10 @@ public class OvsdbConnectionManagerTest { @Mock private OvsdbClient externalClient; @Mock private ReconciliationManager reconciliationManager; - private final InstanceIdentifier iid = InstanceIdentifier.create(NetworkTopology.class) + private final DataObjectIdentifier iid = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode"))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build(); @Before public void setUp() throws Exception { @@ -119,9 +119,10 @@ public class OvsdbConnectionManagerTest { doNothing().when(client).registerCallbacks(any()); //TODO: Write unit tests for EntityOwnershipService - when(client.getInstanceIdentifier()).thenReturn(InstanceIdentifier.create(NetworkTopology.class) + when(client.getInstanceIdentifier()).thenReturn(DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode")))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build()); setInternalState(ovsdbConnManager, "entityConnectionMap", new ConcurrentHashMap<>()); suppress(method(OvsdbConnectionManager.class, "getEntityFromConnectionInstance", OvsdbConnectionInstance.class)); @@ -134,9 +135,10 @@ public class OvsdbConnectionManagerTest { when(db.newReadOnlyTransaction()).thenReturn(tx); when(tx.read(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class))) .thenReturn(mock(FluentFuture.class)); - when(client.getInstanceIdentifier()).thenReturn(InstanceIdentifier.create(NetworkTopology.class) + when(client.getInstanceIdentifier()).thenReturn(DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode")))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build()); ovsdbConnManager.connected(externalClient); } @@ -149,9 +151,10 @@ public class OvsdbConnectionManagerTest { when(SouthboundMapper.createConnectionInfo(any(OvsdbClient.class))).thenReturn(key); suppress(method(OvsdbConnectionManager.class, "getInstanceIdentifier", ConnectionInfo.class)); - when(ovsdbConnManager.getInstanceIdentifier(key)).thenReturn(InstanceIdentifier.create(NetworkTopology.class) + when(ovsdbConnManager.getInstanceIdentifier(key)).thenReturn(DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode")))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build()); suppress(method(OvsdbConnectionManager.class, "getConnectionInstance", ConnectionInfo.class)); when(ovsdbConnManager.getConnectionInstance(key)).thenReturn(null); @@ -160,9 +163,9 @@ public class OvsdbConnectionManagerTest { suppress(method(OvsdbConnectionManager.class, "putConnectionInstance", ConnectionInfo.class, OvsdbConnectionInstance.class)); doNothing().when(client).createTransactInvokers(); - PowerMockito.whenNew(OvsdbConnectionInstance.class).withArguments(any(ConnectionInfo.class), - any(OvsdbClient.class), any(Operations.class), any(TransactionInvoker.class), any(InstanceIdentifier.class)) - .thenReturn(client); + PowerMockito.whenNew(OvsdbConnectionInstance.class) + .withArguments(any(ConnectionInfo.class), any(OvsdbClient.class), any(Operations.class), + any(TransactionInvoker.class), any(DataObjectIdentifier.class)).thenReturn(client); assertEquals("Error, did not receive correct OvsdbConnectionInstance object", client, ovsdbConnManager.connectedButCallBacksNotRegistered(externalClient)); @@ -192,7 +195,7 @@ public class OvsdbConnectionManagerTest { setInternalState(ovsdbConnManager, "nodeIdVsConnectionInstance", new ConcurrentHashMap<>()); suppress(method(OvsdbConnectionManager.class, "reconcileConnection", - InstanceIdentifier.class, OvsdbNodeAugmentation.class)); + DataObjectIdentifier.class, OvsdbNodeAugmentation.class)); ReadTransaction tx = mock(ReadTransaction.class); when(db.newReadOnlyTransaction()).thenReturn(tx); when(tx.read(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class))) @@ -200,9 +203,10 @@ public class OvsdbConnectionManagerTest { when(tx.exists(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class))) .thenReturn(mock(FluentFuture.class)); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn( - InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode")))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build()); ovsdbConnManager.disconnected(externalClient); Map testClients = Whitebox.getInternalState(ovsdbConnManager, "clients"); @@ -213,9 +217,10 @@ public class OvsdbConnectionManagerTest { public void testDisconnect() throws Exception { OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn( - InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode")))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build()); suppress(method(OvsdbConnectionManager.class, "getConnectionInstance", ConnectionInfo.class)); when(ovsdbConnManager.getConnectionInstance(any(ConnectionInfo.class))).thenReturn(ovsdbConnectionInstance); @@ -354,30 +359,32 @@ public class OvsdbConnectionManagerTest { //client not null case suppress(method(OvsdbConnectionManager.class, "putInstanceIdentifier", ConnectionInfo.class, - InstanceIdentifier.class)); + DataObjectIdentifier.class)); suppress(method(OvsdbConnectionManager.class, "connectedButCallBacksNotRegistered", OvsdbClient.class)); doNothing().when(ovsdbConnManager).putInstanceIdentifier(any(ConnectionInfo.class), - any(InstanceIdentifier.class)); + any(DataObjectIdentifier.class)); OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); when(ovsdbConnManager.connectedButCallBacksNotRegistered(any(OvsdbClient.class))) .thenReturn(ovsdbConnectionInstance); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn( - InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode")))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build()); setInternalState(ovsdbConnManager, "entityConnectionMap", new ConcurrentHashMap<>()); suppress(method(OvsdbConnectionManager.class, "getEntityFromConnectionInstance", OvsdbConnectionInstance.class)); //TODO: Write unit tests for entity ownership service related code. suppress(method(OvsdbConnectionManager.class, "registerEntityForOwnership", OvsdbConnectionInstance.class)); - assertEquals("ERROR", client, ovsdbConnManager.connect(InstanceIdentifier.create(NetworkTopology.class) + assertEquals("ERROR", client, ovsdbConnManager.connect(DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode"))), ovsdbNode)); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build(), ovsdbNode)); } @Test diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbDataTreeChangeListenerTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbDataTreeChangeListenerTest.java index 7fd9ea6f8..c2feb8396 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbDataTreeChangeListenerTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbDataTreeChangeListenerTest.java @@ -29,8 +29,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types. import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfo; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfoBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; /** @@ -71,9 +69,9 @@ public class OvsdbDataTreeChangeListenerTest extends AbstractConcurrentDataBroke .setRemoteIp(ipAddress) .setRemotePort(portNumber) .build(); - final InstanceIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo); + final var iid = SouthboundUtils.createInstanceIdentifier(connectionInfo); WriteTransaction transaction = dataBroker.newReadWriteTransaction(); - transaction.mergeParentStructurePut(LogicalDatastoreType.CONFIGURATION, iid.toIdentifier(), + transaction.mergeParentStructurePut(LogicalDatastoreType.CONFIGURATION, iid, SouthboundUtils.createNode(connectionInfo)); transaction.commit().get(); diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundMapperTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundMapperTest.java index 26f9f3f39..b9cac931a 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundMapperTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundMapperTest.java @@ -61,6 +61,8 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; +import org.opendaylight.yangtools.binding.DataObjectReference; import org.opendaylight.yangtools.binding.util.BindingMap; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint32; @@ -77,8 +79,8 @@ public class SouthboundMapperTest { @Test public void testCreateInstanceIdentifier() throws Exception { NodeId nodeId = NodeId.getDefaultInstance("test"); - InstanceIdentifier iid = SouthboundMapper.createInstanceIdentifier(nodeId); - assertEquals(nodeId, iid.firstKeyOf(Node.class).getNodeId()); + DataObjectIdentifier iid = SouthboundMapper.createInstanceIdentifier(nodeId); + assertEquals(nodeId, iid.getFirstKeyOf(Node.class).getNodeId()); } @SuppressWarnings("unchecked") @@ -93,7 +95,7 @@ public class SouthboundMapperTest { map.put(SouthboundConstants.IID_EXTERNAL_ID_KEY, "IID_EXTERNAL_ID_KEY"); when(column.getData()).thenReturn(map); InstanceIdentifierCodec iidc = mock(InstanceIdentifierCodec.class); - InstanceIdentifier deserializedIid = InstanceIdentifier.create(NetworkTopology.class); + DataObjectReference deserializedIid = DataObjectIdentifier.builder(NetworkTopology.class).build(); when(iidc.bindingDeserializerOrNull("IID_EXTERNAL_ID_KEY")).thenReturn(deserializedIid); OvsdbConnectionInstance client = mock(OvsdbConnectionInstance.class, Mockito.RETURNS_DEEP_STUBS); assertEquals("Incorrect Instance Identifier received", deserializedIid, @@ -121,7 +123,7 @@ public class SouthboundMapperTest { map.put(SouthboundConstants.IID_EXTERNAL_ID_KEY, "IID_EXTERNAL_ID_KEY"); when(column.getData()).thenReturn(map); InstanceIdentifierCodec iidc = mock(InstanceIdentifierCodec.class); - InstanceIdentifier deserializedIid = InstanceIdentifier.create(NetworkTopology.class); + DataObjectReference deserializedIid = DataObjectIdentifier.builder(NetworkTopology.class).build(); when(iidc.bindingDeserializerOrNull("IID_EXTERNAL_ID_KEY")).thenReturn(deserializedIid); OvsdbConnectionInstance client = mock(OvsdbConnectionInstance.class, Mockito.RETURNS_DEEP_STUBS); assertEquals("Incorrect Instance Identifier received", deserializedIid, @@ -130,11 +132,11 @@ public class SouthboundMapperTest { // When controller is empty, we expect a new identifier pointing to the bridge when(controller.getExternalIdsColumn()).thenReturn(null); when(client.getNodeKey()).thenReturn(new NodeKey(new NodeId("uri"))); - InstanceIdentifier returnedIid = + DataObjectIdentifier returnedIid = SouthboundMapper.createInstanceIdentifier(iidc, client, controller, "bridgeName"); - assertEquals("Incorrect identifier type", Node.class, returnedIid.getTargetType()); + assertEquals("Incorrect identifier type", Node.class, returnedIid.lastStep().type()); assertEquals("Incorrect node key", new NodeId(new Uri("uri/bridge/bridgeName")), - returnedIid.firstKeyOf(Node.class).getNodeId()); + returnedIid.getFirstKeyOf(Node.class).getNodeId()); } @Test diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundUtilTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundUtilTest.java index cafb99a80..5c2db491e 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundUtilTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundUtilTest.java @@ -43,7 +43,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.util.concurrent.FluentFutures; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @@ -100,11 +99,12 @@ public class SouthboundUtilTest { public void testReadNode() throws Exception { final var node = Optional.of(mock(Node.class)); ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); - InstanceIdentifier connectionIid = InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier connectionIid = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode"))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build(); FluentFuture> value = FluentFutures.immediateFluentFuture(node); - when(transaction.read(LogicalDatastoreType.OPERATIONAL, connectionIid.toIdentifier())).thenReturn(value); + when(transaction.read(LogicalDatastoreType.OPERATIONAL, connectionIid)).thenReturn(value); assertEquals("Incorrect Optional object received", node, SouthboundUtil.readNode(transaction, connectionIid)); } diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeOperationalStateTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeOperationalStateTest.java index 98af8213c..cb49630cd 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeOperationalStateTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeOperationalStateTest.java @@ -29,9 +29,11 @@ import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadTransaction; import org.opendaylight.ovsdb.southbound.OvsdbOperGlobalListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeProtocolOpenflow10; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntry; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntryKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId; @@ -43,13 +45,11 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; @RunWith(MockitoJUnitRunner.class) public class BridgeOperationalStateTest { private final Node nd = new NodeBuilder().setNodeId(new NodeId("foo")).build(); - private final InstanceIdentifier nodeIid = InstanceIdentifier.create(NetworkTopology.class) - .child(Topology.class).child(Node.class); private final Node brNode = new NodeBuilder().setNodeId(new NodeId("bar")).build(); @Mock @@ -58,49 +58,52 @@ public class BridgeOperationalStateTest { private DataBroker db; @Mock private ReadTransaction mockReadTx; - private InstanceIdentifier protocolEntry; - private InstanceIdentifier iidNode; + private DataObjectIdentifier protocolEntry; + private DataObjectIdentifier iidNode; @Before public void setUp() throws Exception { - iidNode = InstanceIdentifier.create(NetworkTopology.class) + iidNode = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("foo"))) - .child(Node.class, new NodeKey(nd.getNodeId())); - protocolEntry = InstanceIdentifier.create(NetworkTopology.class).child(Topology.class).child(Node.class) - .augmentation(OvsdbBridgeAugmentation.class).child(ProtocolEntry.class); + .child(Node.class, new NodeKey(nd.getNodeId())) + .build(); + protocolEntry = iidNode.toBuilder() + .augmentation(OvsdbBridgeAugmentation.class) + .child(ProtocolEntry.class, new ProtocolEntryKey(OvsdbBridgeProtocolOpenflow10.VALUE)) + .build(); doReturn(mockReadTx).when(db).newReadOnlyTransaction(); - OvsdbOperGlobalListener.OPER_NODE_CACHE.put(nodeIid, brNode); + OvsdbOperGlobalListener.OPER_NODE_CACHE.put(iidNode, brNode); briOperationState = spy(new BridgeOperationalState(db)); } @Test public void testGetBridgeNode() { - assertEquals(Optional.of(brNode), briOperationState.getBridgeNode(nodeIid)); + assertEquals(Optional.of(brNode), briOperationState.getBridgeNode(iidNode)); } @Test public void testGetOvsdbBridgeAugmentation() throws Exception { - Optional optOvsdbBri = briOperationState.getOvsdbBridgeAugmentation(nodeIid); - verify(briOperationState, times(1)).getBridgeNode(any(InstanceIdentifier.class)); + Optional optOvsdbBri = briOperationState.getOvsdbBridgeAugmentation(iidNode); + verify(briOperationState, times(1)).getBridgeNode(any(DataObjectIdentifier.class)); assertNotNull(optOvsdbBri); assertTrue(optOvsdbBri.equals(Optional.empty())); Node node = mock(Node.class); Optional optNode = Optional.of(node); - doReturn(optNode).when(briOperationState).getBridgeNode(any(InstanceIdentifier.class)); + doReturn(optNode).when(briOperationState).getBridgeNode(any(DataObjectIdentifier.class)); OvsdbBridgeAugmentation ovsdbBriAug = mock(OvsdbBridgeAugmentation.class); doReturn(ovsdbBriAug).when(node).augmentation(OvsdbBridgeAugmentation.class); Optional ovsdbBriAugOptional = briOperationState.getOvsdbBridgeAugmentation( - InstanceIdentifier.create(NetworkTopology.class)); + DataObjectIdentifier.builder(NetworkTopology.class).build()); assertNotNull(ovsdbBriAugOptional); assertTrue(ovsdbBriAugOptional.orElseThrow() instanceof OvsdbBridgeAugmentation); } @Test public void testGetBridgeTerminationPoint() throws Exception { - Optional optTerm = briOperationState.getBridgeTerminationPoint(nodeIid); - verify(briOperationState, times(1)).getBridgeNode(any(InstanceIdentifier.class)); + Optional optTerm = briOperationState.getBridgeTerminationPoint(iidNode); + verify(briOperationState, times(1)).getBridgeNode(any(DataObjectIdentifier.class)); assertNotNull(optTerm); assertTrue(optTerm.equals(Optional.empty())); @@ -108,40 +111,40 @@ public class BridgeOperationalStateTest { Node node = mock(Node.class); Optional optNode = Optional.of(node); - doReturn(optNode).when(briOperationState).getBridgeNode(any(InstanceIdentifier.class)); + doReturn(optNode).when(briOperationState).getBridgeNode(any(DataObjectIdentifier.class)); when(node.nonnullTerminationPoint()).thenCallRealMethod(); when(node.getTerminationPoint()).thenReturn(Map.of(termPnt.key(), termPnt)); Optional optTermPnt = briOperationState.getBridgeTerminationPoint( - iidNode.child(TerminationPoint.class, termPnt.key())); + iidNode.toBuilder().child(TerminationPoint.class, termPnt.key()).build()); assertTrue(optTermPnt.isPresent()); } @Test public void testGetOvsdbTerminationPointAugmentation() { Optional optOvsdbTermPoint = briOperationState - .getOvsdbTerminationPointAugmentation(nodeIid); + .getOvsdbTerminationPointAugmentation(iidNode); assertNotNull(optOvsdbTermPoint); - verify(briOperationState, times(1)).getBridgeTerminationPoint(any(InstanceIdentifier.class)); - verify(briOperationState, times(1)).getBridgeNode(any(InstanceIdentifier.class)); + verify(briOperationState, times(1)).getBridgeTerminationPoint(any(DataObjectIdentifier.class)); + verify(briOperationState, times(1)).getBridgeNode(any(DataObjectIdentifier.class)); assertTrue(optOvsdbTermPoint.equals(Optional.empty())); TerminationPoint termPoint = mock(TerminationPoint.class); Optional termPntOptional = Optional.of(termPoint); - doReturn(termPntOptional).when(briOperationState).getBridgeTerminationPoint(any(InstanceIdentifier.class)); + doReturn(termPntOptional).when(briOperationState).getBridgeTerminationPoint(any(DataObjectIdentifier.class)); OvsdbTerminationPointAugmentation ovsdbTermPntAug = mock(OvsdbTerminationPointAugmentation.class); doReturn(ovsdbTermPntAug).when(termPoint).augmentation(OvsdbTerminationPointAugmentation.class); Optional ovsdbTermPointOpt = briOperationState - .getOvsdbTerminationPointAugmentation(InstanceIdentifier.create(NetworkTopology.class)); + .getOvsdbTerminationPointAugmentation(DataObjectIdentifier.builder(NetworkTopology.class).build()); assertNotNull(ovsdbTermPointOpt); assertTrue(ovsdbTermPointOpt.orElseThrow() instanceof OvsdbTerminationPointAugmentation); } @Test public void testGetControllerEntry() { - Optional optController = briOperationState.getControllerEntry(nodeIid); - verify(briOperationState, times(1)).getOvsdbBridgeAugmentation(any(InstanceIdentifier.class)); - verify(briOperationState, times(1)).getBridgeNode(any(InstanceIdentifier.class)); + Optional optController = briOperationState.getControllerEntry(iidNode); + verify(briOperationState, times(1)).getOvsdbBridgeAugmentation(any(DataObjectIdentifier.class)); + verify(briOperationState, times(1)).getBridgeNode(any(DataObjectIdentifier.class)); assertNotNull(optController); assertTrue(optController.equals(Optional.empty())); } @@ -149,8 +152,8 @@ public class BridgeOperationalStateTest { @Test public void testGetProtocolEntry() throws Exception { Optional optProtocolEntry = briOperationState.getProtocolEntry(protocolEntry); - verify(briOperationState, times(1)).getOvsdbBridgeAugmentation(any(InstanceIdentifier.class)); - verify(briOperationState, times(1)).getBridgeNode(any(InstanceIdentifier.class)); + verify(briOperationState, times(1)).getOvsdbBridgeAugmentation(any(DataObjectIdentifier.class)); + verify(briOperationState, times(1)).getBridgeNode(any(DataObjectIdentifier.class)); assertNotNull(optProtocolEntry); assertTrue(optProtocolEntry.equals(Optional.empty())); } diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/DataChangesManagedByOvsdbNodeEventTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/DataChangesManagedByOvsdbNodeEventTest.java index aa4f96529..6332f0319 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/DataChangesManagedByOvsdbNodeEventTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/DataChangesManagedByOvsdbNodeEventTest.java @@ -5,7 +5,6 @@ * 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.ovsdb.southbound.ovsdb.transact; import static org.junit.Assert.assertEquals; @@ -25,16 +24,17 @@ import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; import org.opendaylight.yangtools.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.powermock.reflect.Whitebox; @RunWith(MockitoJUnitRunner.class) public class DataChangesManagedByOvsdbNodeEventTest { - private final InstanceIdentifier iid = InstanceIdentifier.create(NetworkTopology.class); + private final DataObjectIdentifier iid = + DataObjectIdentifier.builder(NetworkTopology.class).build(); @Mock private DataBroker db; @Mock private DataChangeEvent event; - private Set> removedPaths; + private Set> removedPaths; private DataChangesManagedByOvsdbNodeEvent dataChangesManagedByOvsdbNodeEvent; @Before @@ -54,7 +54,7 @@ public class DataChangesManagedByOvsdbNodeEventTest { @Test public void testGetMethods() { - Map,DataObject> data = new HashMap<>(); + Map,DataObject> data = new HashMap<>(); //Test getCreatedData() when(event.getCreatedData()).thenReturn(data); @@ -68,8 +68,6 @@ public class DataChangesManagedByOvsdbNodeEventTest { when(event.getOriginalData()).thenReturn(data); assertEquals(data, dataChangesManagedByOvsdbNodeEvent.getOriginalData()); - DataObject dataObject = mock(DataObject.class); - //Test getRemovedPaths() removedPaths = new HashSet<>(); when(event.getRemovedPaths()).thenReturn(removedPaths); diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/OvsdbNodeUpdateCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/OvsdbNodeUpdateCommandTest.java index 66309e316..084a5ad0a 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/OvsdbNodeUpdateCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/OvsdbNodeUpdateCommandTest.java @@ -47,6 +47,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.api.support.membermodification.MemberMatcher; @@ -73,11 +74,12 @@ public class OvsdbNodeUpdateCommandTest { @SuppressWarnings("unchecked") @Test public void testExecute() throws Exception { - Map, OvsdbNodeAugmentation> updated = new HashMap<>(); - InstanceIdentifier iid = InstanceIdentifier.create(NetworkTopology.class) + Map, OvsdbNodeAugmentation> updated = new HashMap<>(); + DataObjectIdentifier iid = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) .child(Node.class, new NodeKey(new NodeId("testNode"))) - .augmentation(OvsdbNodeAugmentation.class); + .augmentation(OvsdbNodeAugmentation.class) + .build(); OvsdbNodeAugmentation ovsdbNode = mock(OvsdbNodeAugmentation.class); updated.put(iid, ovsdbNode); PowerMockito.mockStatic(TransactUtils.class); @@ -101,7 +103,7 @@ public class OvsdbNodeUpdateCommandTest { .build(); when(ovsdbNode.getOpenvswitchExternalIds()).thenReturn(Map.of(externalId.key(), externalId)); PowerMockito.suppress(MemberMatcher.method(OvsdbNodeUpdateCommand.class, "stampInstanceIdentifier", - TransactionBuilder.class, InstanceIdentifier.class, InstanceIdentifierCodec.class)); + TransactionBuilder.class, DataObjectIdentifier.class, InstanceIdentifierCodec.class)); PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(InstanceIdentifier.class)); doNothing().when(ovs).setExternalIds(any(ImmutableMap.class)); diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ProtocolRemovedCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ProtocolRemovedCommandTest.java index cd11c7d9f..112f58c8c 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ProtocolRemovedCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/ProtocolRemovedCommandTest.java @@ -36,6 +36,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeProtocolBase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeProtocolOpenflow10; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntry; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.api.support.membermodification.MemberMatcher; @@ -47,8 +48,8 @@ import org.powermock.modules.junit4.PowerMockRunner; @PrepareForTest(TransactUtils.class) public class ProtocolRemovedCommandTest { - private final Set> removed = new HashSet<>(); - @Mock private Map, OvsdbBridgeAugmentation> updatedBridges; + private final Set> removed = new HashSet<>(); + @Mock private Map, OvsdbBridgeAugmentation> updatedBridges; @SuppressWarnings("unchecked") @Test @@ -61,15 +62,15 @@ public class ProtocolRemovedCommandTest { (Answer>) invocation -> OvsdbBridgeProtocolOpenflow10.class); BridgeOperationalState bridgeOpState = mock(BridgeOperationalState.class); - when(bridgeOpState.getProtocolEntry(any(InstanceIdentifier.class))).thenReturn(Optional.of(protocol)); + when(bridgeOpState.getProtocolEntry(any(DataObjectIdentifier.class))).thenReturn(Optional.of(protocol)); - InstanceIdentifier protocolIid = mock(InstanceIdentifier.class); + DataObjectIdentifier protocolIid = mock(DataObjectIdentifier.class); removed.add(protocolIid); ProtocolRemovedCommand protocolRemovedCommand = mock(ProtocolRemovedCommand.class, Mockito.CALLS_REAL_METHODS); MemberModifier.field(ProtocolRemovedCommand.class,"removed").set(protocolRemovedCommand, removed); MemberModifier.field(ProtocolRemovedCommand.class,"updatedBridges").set(protocolRemovedCommand, updatedBridges); - when(updatedBridges.get(any(InstanceIdentifier.class))).thenReturn(mock(OvsdbBridgeAugmentation.class)); + when(updatedBridges.get(any(DataObjectIdentifier.class))).thenReturn(mock(OvsdbBridgeAugmentation.class)); Operations op = (Operations) setField("op"); Mutate mutate = mock(Mutate.class); diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointCreateCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointCreateCommandTest.java index 44766d410..d980a7964 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointCreateCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointCreateCommandTest.java @@ -54,6 +54,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; import org.opendaylight.yangtools.binding.DataObject; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.api.support.membermodification.MemberMatcher; @@ -80,9 +81,9 @@ public class TerminationPointCreateCommandTest { public void testExecute() throws Exception { MemberModifier.suppress(MemberMatcher.method(TerminationPointCreateCommand.class, "getChanges")); DataChangeEvent asynEvent = mock(DataChangeEvent.class); - Map, DataObject> map = new HashMap<>(); + Map, DataObject> map = new HashMap<>(); OvsdbTerminationPointAugmentation terminationPoint = mock(OvsdbTerminationPointAugmentation.class); - InstanceIdentifier terminationPointIid = mock(InstanceIdentifier.class); + DataObjectIdentifier terminationPointIid = mock(DataObjectIdentifier.class); map.put(terminationPointIid, terminationPoint); when(asynEvent.getCreatedData()).thenReturn(map); when(terminationPoint.getName()).thenReturn(TERMINATION_POINT_NAME); @@ -136,7 +137,7 @@ public class TerminationPointCreateCommandTest { // FIXME: rather than static mocking, insert a mock Operations PowerMockito.mockStatic(TransactUtils.class); when(TransactUtils.stampInstanceIdentifierMutation(any(Operations.class), any(TransactionBuilder.class), - any(InstanceIdentifier.class), any(GenericTableSchema.class), any(ColumnSchema.class), + any(DataObjectIdentifier.class), any(GenericTableSchema.class), any(ColumnSchema.class), any(InstanceIdentifierCodec.class))).thenReturn(mutate); Column nameColumn = mock(Column.class); @@ -150,11 +151,12 @@ public class TerminationPointCreateCommandTest { when(transaction.add(any(Operation.class))).thenReturn(transaction); String interfaceName = INTERFACE_NAME; - InstanceIdentifier iid = InstanceIdentifier.create(NetworkTopology.class) + var iid = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) .child(Node.class, new NodeKey(new NodeId("testNode"))) .child(TerminationPoint.class, new TerminationPointKey(new TpId("testTp"))) - .augmentation(OvsdbTerminationPointAugmentation.class); + .augmentation(OvsdbTerminationPointAugmentation.class) + .build(); TerminationPointCreateCommand.stampInstanceIdentifier(new DefaultOperations(), transaction, iid, interfaceName, mock(InstanceIdentifierCodec.class)); verify(port).setName(anyString()); diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointDeleteCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointDeleteCommandTest.java index 784614c92..a6a232238 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointDeleteCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointDeleteCommandTest.java @@ -25,7 +25,7 @@ import org.opendaylight.ovsdb.lib.schema.typed.TyperUtils; import org.opendaylight.ovsdb.southbound.InstanceIdentifierCodec; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @@ -37,10 +37,10 @@ public class TerminationPointDeleteCommandTest { private TerminationPointDeleteCommand terminationPointDeleteCommand; @Mock private BridgeOperationalState state; @Mock private DataChangeEvent changes; - private final Map, OvsdbTerminationPointAugmentation> + private final Map, OvsdbTerminationPointAugmentation> originals = new HashMap<>(); - private final Map, Node> originalNodes = new HashMap<>(); - private final Set> removedTps = new HashSet<>(); + private final Map, Node> originalNodes = new HashMap<>(); + private final Set> removedTps = new HashSet<>(); @Before public void setUp() throws Exception { diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointUpdateCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointUpdateCommandTest.java index 687759404..e8c741509 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointUpdateCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TerminationPointUpdateCommandTest.java @@ -48,6 +48,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.api.support.membermodification.MemberMatcher; @@ -75,30 +76,32 @@ public class TerminationPointUpdateCommandTest { @SuppressWarnings("unchecked") @Test public void testExecute() { - Map, OvsdbTerminationPointAugmentation> created + Map, OvsdbTerminationPointAugmentation> created = new HashMap<>(); - created.put(InstanceIdentifier.create(NetworkTopology.class) + created.put(DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) .child(Node.class, new NodeKey(new NodeId("testNode"))) .child(TerminationPoint.class, new TerminationPointKey(new TpId("testTp"))) - .augmentation(OvsdbTerminationPointAugmentation.class), mock(OvsdbTerminationPointAugmentation.class)); + .augmentation(OvsdbTerminationPointAugmentation.class) + .build(), mock(OvsdbTerminationPointAugmentation.class)); PowerMockito.mockStatic(TransactUtils.class); PowerMockito.when(TransactUtils.extractCreated(any(DataChangeEvent.class), eq(OvsdbTerminationPointAugmentation.class))).thenReturn(created); MemberModifier.suppress(MemberMatcher.method(TerminationPointUpdateCommand.class, "updateTerminationPoint", TransactionBuilder.class, BridgeOperationalState.class, - InstanceIdentifier.class, OvsdbTerminationPointAugmentation.class, InstanceIdentifierCodec.class)); + DataObjectIdentifier.class, OvsdbTerminationPointAugmentation.class, InstanceIdentifierCodec.class)); doNothing().when(terminationPointUpdateCommand).updateTerminationPoint(any(TransactionBuilder.class), - any(BridgeOperationalState.class), any(InstanceIdentifier.class), + any(BridgeOperationalState.class), any(DataObjectIdentifier.class), any(OvsdbTerminationPointAugmentation.class), any(InstanceIdentifierCodec.class)); - Map, OvsdbTerminationPointAugmentation> updated = + Map, OvsdbTerminationPointAugmentation> updated = new HashMap<>(); - updated.put(InstanceIdentifier.create(NetworkTopology.class) + updated.put(DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) .child(Node.class, new NodeKey(new NodeId("testNode"))) .child(TerminationPoint.class, new TerminationPointKey(new TpId("testTp2"))) - .augmentation(OvsdbTerminationPointAugmentation.class), mock(OvsdbTerminationPointAugmentation.class)); + .augmentation(OvsdbTerminationPointAugmentation.class) + .build(), mock(OvsdbTerminationPointAugmentation.class)); PowerMockito.when(TransactUtils.extractUpdated(any(DataChangeEvent.class), eq(OvsdbTerminationPointAugmentation.class))).thenReturn(updated); @@ -118,7 +121,7 @@ public class TerminationPointUpdateCommandTest { Node node = mock(Node.class); when(node.augmentation(OvsdbBridgeAugmentation.class)).thenReturn(mock(OvsdbBridgeAugmentation.class)); Optional optNode = Optional.of(node); - when(state.getBridgeNode(any(InstanceIdentifier.class))).thenReturn(optNode); + when(state.getBridgeNode(any(DataObjectIdentifier.class))).thenReturn(optNode); // Test updateInterface() Interface ovsInterface = mock(Interface.class); @@ -153,12 +156,12 @@ public class TerminationPointUpdateCommandTest { when(extraPort.getNameColumn()).thenReturn(column); terminationPointUpdateCommand.updateTerminationPoint(transaction, state, - InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) .child(Node.class, new NodeKey(new NodeId("testNode"))) .child(TerminationPoint.class, new TerminationPointKey(new TpId("testTp"))) - .augmentation(OvsdbTerminationPointAugmentation.class), terminationPoint, - mock(InstanceIdentifierCodec.class)); + .augmentation(OvsdbTerminationPointAugmentation.class) + .build(), terminationPoint, mock(InstanceIdentifierCodec.class)); verify(transaction, times(1)).add(any(Operation.class)); } } diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactUtilsTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactUtilsTest.java index e73785ee3..6a3e9d84e 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactUtilsTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactUtilsTest.java @@ -46,7 +46,7 @@ import org.opendaylight.ovsdb.southbound.SouthboundMapper; import org.opendaylight.ovsdb.southbound.SouthboundUtil; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; import org.opendaylight.yangtools.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @@ -66,7 +66,7 @@ public class TransactUtilsTest { @Test public void testExtractNode() { - Map, DataObject> changes = new HashMap<>(); + Map, DataObject> changes = new HashMap<>(); assertEquals(HashMap.class, TransactUtils.extractNode(changes).getClass()); } @@ -75,7 +75,7 @@ public class TransactUtilsTest { public void testExtractCreatedAndExtractUpdated() { DataChangeEvent changes = mock(DataChangeEvent.class); Class klazz = DataObject.class; - Map, DataObject> map = new HashMap<>(); + Map, DataObject> map = new HashMap<>(); when(changes.getCreatedData()).thenReturn(map); when(TransactUtils.extract(any(Map.class),eq(DataObject.class))).thenReturn(new HashMap<>()); @@ -88,13 +88,13 @@ public class TransactUtilsTest { @Test public void testExtractCreatedOrUpdated() { - Map, DataObject> result = new HashMap<>(); + Map, DataObject> result = new HashMap<>(); PowerMockito.doReturn(result).when(TransactUtils.class); TransactUtils.extractUpdated(any(DataChangeEvent.class), eq(NetworkTopology.class)); - Map, NetworkTopology> map = new HashMap<>(); - InstanceIdentifier iid = InstanceIdentifier.create(NetworkTopology.class); + Map, NetworkTopology> map = new HashMap<>(); + DataObjectIdentifier iid = DataObjectIdentifier.builder(NetworkTopology.class).build(); NetworkTopology db = mock(NetworkTopology.class); map.put(iid, db); @@ -102,7 +102,7 @@ public class TransactUtilsTest { PowerMockito.doReturn(map).when(TransactUtils.class); TransactUtils.extractCreated(any(DataChangeEvent.class), eq(NetworkTopology.class)); - Map, NetworkTopology> testResult = new HashMap<>(); + Map, NetworkTopology> testResult = new HashMap<>(); testResult.put(iid, db); DataChangeEvent changes = mock(DataChangeEvent.class); assertEquals(testResult, TransactUtils.extractCreatedOrUpdated(changes, NetworkTopology.class)); @@ -110,20 +110,20 @@ public class TransactUtilsTest { @Test public void testExtractCreatedOrUpdatedOrRemoved() { - Map, NetworkTopology> result = new HashMap<>(); + Map, NetworkTopology> result = new HashMap<>(); PowerMockito.doReturn(result).when(TransactUtils.class); TransactUtils.extractCreatedOrUpdated(any(DataChangeEvent.class), eq(NetworkTopology.class)); - Map, NetworkTopology> map = new HashMap<>(); - InstanceIdentifier iid = InstanceIdentifier.create(NetworkTopology.class); + Map, NetworkTopology> map = new HashMap<>(); + DataObjectIdentifier iid = DataObjectIdentifier.builder(NetworkTopology.class).build(); NetworkTopology db = mock(NetworkTopology.class); map.put(iid, db); PowerMockito.doReturn(map).when(TransactUtils.class); TransactUtils.extractRemovedObjects(any(DataChangeEvent.class), eq(NetworkTopology.class)); - Map, NetworkTopology> testResult = new HashMap<>(); + Map, NetworkTopology> testResult = new HashMap<>(); testResult.put(iid, db); DataChangeEvent changes = mock(DataChangeEvent.class); assertEquals(testResult, TransactUtils.extractCreatedOrUpdatedOrRemoved(changes, NetworkTopology.class)); @@ -133,7 +133,7 @@ public class TransactUtilsTest { @Test public void testExtractOriginal() { DataChangeEvent changes = mock(DataChangeEvent.class); - Map, DataObject> map = new HashMap<>(); + Map, DataObject> map = new HashMap<>(); when(changes.getOriginalData()).thenReturn(map); when(TransactUtils.extract(any(Map.class), eq(DataObject.class))).thenReturn(new HashMap<>()); @@ -149,12 +149,12 @@ public class TransactUtilsTest { @Test public void testExtractRemovedObjects() { - Set> iids = new HashSet<>(); + Set> iids = new HashSet<>(); PowerMockito.doReturn(iids).when(TransactUtils.class); TransactUtils.extractRemoved(any(DataChangeEvent.class), eq(DataObject.class)); - Map, DataObject> result = new HashMap<>(); + Map, DataObject> result = new HashMap<>(); PowerMockito.doReturn(result).when(TransactUtils.class); TransactUtils.extractOriginal(any(DataChangeEvent.class), eq(DataObject.class)); @@ -166,7 +166,7 @@ public class TransactUtilsTest { @Test public void testExtract() { - Map, DataObject> changes = new HashMap<>(); + Map, DataObject> changes = new HashMap<>(); Class klazz = DataObject.class; assertEquals(HashMap.class, TransactUtils.extract(changes, klazz).getClass()); } @@ -205,7 +205,7 @@ public class TransactUtilsTest { @Test public void testStampInstanceIdentifier() { TransactionBuilder transaction = mock(TransactionBuilder.class); - InstanceIdentifier iid = InstanceIdentifier.create(NetworkTopology.class); + DataObjectIdentifier iid = DataObjectIdentifier.builder(NetworkTopology.class).build(); TableSchema tableSchema = mock(TableSchema.class); ColumnSchema> columnSchema = mock(ColumnSchema.class); InstanceIdentifierCodec instanceIdentifierCodec = mock(InstanceIdentifierCodec.class); @@ -225,7 +225,7 @@ public class TransactUtilsTest { @Test public void testStampInstanceIdentifierMutation() throws Exception { InstanceIdentifierCodec instanceIdentifierCodec = Mockito.mock(InstanceIdentifierCodec.class); - when(instanceIdentifierCodec.serialize(any(InstanceIdentifier.class))).thenReturn(IID_STRING); + when(instanceIdentifierCodec.serialize(any(DataObjectIdentifier.class))).thenReturn(IID_STRING); Mutate mutate = mock(Mutate.class); Operations op = mock(Operations.class); @@ -243,7 +243,7 @@ public class TransactUtilsTest { when(mutate.getMutations()).thenReturn(listMutations); doNothing().when(mutate).setMutations(any(List.class)); - InstanceIdentifier iid = InstanceIdentifier.create(NetworkTopology.class); + DataObjectIdentifier iid = DataObjectIdentifier.builder(NetworkTopology.class).build(); TransactionBuilder transaction = mock(TransactionBuilder.class); TableSchema tableSchema = mock(TableSchema.class); assertEquals(mutate, TransactUtils.stampInstanceIdentifierMutation(op, transaction, iid, tableSchema, diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/BridgeConfigReconciliationTaskTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/BridgeConfigReconciliationTaskTest.java index dc7c2bb9c..77c727802 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/BridgeConfigReconciliationTaskTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/BridgeConfigReconciliationTaskTest.java @@ -40,10 +40,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntryBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntryKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntry; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntryBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntryKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; @@ -53,8 +51,6 @@ import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; import org.opendaylight.yangtools.util.concurrent.FluentFutures; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; @RunWith(MockitoJUnitRunner.class) public class BridgeConfigReconciliationTaskTest { @@ -68,7 +64,7 @@ public class BridgeConfigReconciliationTaskTest { @Mock private SouthboundProvider provider; private BridgeConfigReconciliationTask configurationReconciliationTask; - private InstanceIdentifier iid; + private DataObjectIdentifier iid; @Before public void setUp() throws Exception { @@ -94,7 +90,7 @@ public class BridgeConfigReconciliationTaskTest { BridgeConfigReconciliationTask underTest = spy(configurationReconciliationTask); doNothing().when(underTest).reconcileBridgeConfigurations(any(Map.class)); assertTrue(underTest.reconcileConfiguration(ovsdbConnectionManager)); - Map, DataObject> changes = new HashMap<>(); + Map, DataObject> changes = new HashMap<>(); for (Node bridgeNode : topology.getNode().values()) { changes.putAll(createExpectedConfigurationChanges(bridgeNode)); } @@ -105,7 +101,7 @@ public class BridgeConfigReconciliationTaskTest { return new NodeBuilder() .setNodeId(new NodeId(new Uri(bridgeName))) .addAugmentation(new OvsdbBridgeAugmentationBuilder() - .setManagedBy(new OvsdbNodeRef(iid.toIdentifier())) + .setManagedBy(new OvsdbNodeRef(iid)) .setProtocolEntry(BindingMap.of( new ProtocolEntryBuilder().setProtocol(OvsdbBridgeProtocolOpenflow10.VALUE).build())) .setControllerEntry(BindingMap.of( @@ -114,24 +110,20 @@ public class BridgeConfigReconciliationTaskTest { .build(); } - private static Map, DataObject> createExpectedConfigurationChanges(final Node bridgeNode) { + private static Map, DataObject> createExpectedConfigurationChanges(final Node bridgeNode) { OvsdbBridgeAugmentation ovsdbBridge = bridgeNode.augmentation(OvsdbBridgeAugmentation.class); - Map, DataObject> changes = new HashMap<>(); - final InstanceIdentifier bridgeNodeIid = - SouthboundMapper.createInstanceIdentifier(bridgeNode.getNodeId()); - final InstanceIdentifier ovsdbBridgeIid = - bridgeNodeIid.builder().augmentation(OvsdbBridgeAugmentation.class).build(); + Map, DataObject> changes = new HashMap<>(); + final var bridgeNodeIid = SouthboundMapper.createInstanceIdentifier(bridgeNode.getNodeId()); + final var ovsdbBridgeIid = bridgeNodeIid.toBuilder().augmentation(OvsdbBridgeAugmentation.class).build(); changes.put(bridgeNodeIid, bridgeNode); changes.put(ovsdbBridgeIid, ovsdbBridge); for (ProtocolEntry protocolEntry : ovsdbBridge.getProtocolEntry().values()) { - KeyedInstanceIdentifier protocolIid = - ovsdbBridgeIid.child(ProtocolEntry.class, protocolEntry.key()); + var protocolIid = ovsdbBridgeIid.toBuilder().child(ProtocolEntry.class, protocolEntry.key()).build(); changes.put(protocolIid, protocolEntry); } for (ControllerEntry controller : ovsdbBridge.getControllerEntry().values()) { - KeyedInstanceIdentifier controllerIid = - ovsdbBridgeIid.child(ControllerEntry.class, controller.key()); + var controllerIid = ovsdbBridgeIid.toBuilder().child(ControllerEntry.class, controller.key()).build(); changes.put(controllerIid, controller); } return changes; diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OpenVSwitchUpdateCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OpenVSwitchUpdateCommandTest.java index a0c41fef6..0c284ac40 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OpenVSwitchUpdateCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OpenVSwitchUpdateCommandTest.java @@ -60,7 +60,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.api.support.membermodification.MemberMatcher; import org.powermock.api.support.membermodification.MemberModifier; @@ -103,13 +102,13 @@ public class OpenVSwitchUpdateCommandTest { when(column.getData()).thenReturn(ImmutableMap.of(SouthboundConstants.IID_EXTERNAL_ID_KEY, "iidString")); PowerMockito.mockStatic(SouthboundUtil.class); MemberModifier.suppress(MemberMatcher.method(OpenVSwitchUpdateCommand.class, "getOvsdbConnectionInstance")); - InstanceIdentifier iid = mock(InstanceIdentifier.class); + DataObjectIdentifier iid = mock(DataObjectIdentifier.class); // when((InstanceIdentifier) SouthboundUtil.deserializeInstanceIdentifier( // any(InstanceIdentifierCodec.class), anyString())).thenReturn(iid); OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn(iid); when(openVSwitchUpdateCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance); - doNothing().when(ovsdbConnectionInstance).setInstanceIdentifier(any(InstanceIdentifier.class)); + doNothing().when(ovsdbConnectionInstance).setInstanceIdentifier(any(DataObjectIdentifier.class)); OvsdbNodeAugmentationBuilder ovsdbNodeBuilder = mock(OvsdbNodeAugmentationBuilder.class); PowerMockito.whenNew(OvsdbNodeAugmentationBuilder.class).withNoArguments().thenReturn(ovsdbNodeBuilder); diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachRemovedCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachRemovedCommandTest.java index b187794a0..4a81a04a7 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachRemovedCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachRemovedCommandTest.java @@ -42,7 +42,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.api.support.membermodification.MemberModifier; import org.powermock.core.classloader.annotations.PrepareForTest; @@ -55,7 +54,7 @@ public class OvsdbAutoAttachRemovedCommandTest { private final Map removedAutoAttachRows = new HashMap<>(); private OvsdbAutoAttachRemovedCommand ovsdbAutoAttachRemovedCommand; private ReadWriteTransaction transaction; - private InstanceIdentifier aaIid; + private DataObjectIdentifier aaIid; private static final UUID AUTOATTACH_UUID = new UUID("798f35d8-f40a-449a-94d3-c860f5547f9a"); private static final String CONNECTED_NODE_ID = "10.0.0.1"; @@ -73,12 +72,14 @@ public class OvsdbAutoAttachRemovedCommandTest { when(ovsdbAutoAttachRemovedCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance); AutoattachKey aaKey = new AutoattachKey( new Uri(SouthboundConstants.AUTOATTACH_URI_PREFIX + "://" + AUTOATTACH_UUID.toString())); - aaIid = InstanceIdentifier.create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId(CONNECTED_NODE_ID))) + var nodeIid = DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) + .child(Node.class, new NodeKey(new NodeId(CONNECTED_NODE_ID))) + .build(); + aaIid = nodeIid.toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Autoattach.class, aaKey); - InstanceIdentifier nodeIid = aaIid.firstIdentifierOf(Node.class); + .child(Autoattach.class, aaKey) + .build(); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn(nodeIid); PowerMockito.mockStatic(SouthboundUtil.class); @@ -106,6 +107,6 @@ public class OvsdbAutoAttachRemovedCommandTest { @Test public void testExecute() { ovsdbAutoAttachRemovedCommand.execute(transaction); - verify(transaction).delete(eq(LogicalDatastoreType.OPERATIONAL), eq(aaIid.toIdentifier())); + verify(transaction).delete(eq(LogicalDatastoreType.OPERATIONAL), eq(aaIid)); } } diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachUpdateCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachUpdateCommandTest.java index 1b82d718b..3393f62dd 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachUpdateCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbAutoAttachUpdateCommandTest.java @@ -42,7 +42,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.api.support.membermodification.MemberModifier; import org.powermock.core.classloader.annotations.PrepareForTest; @@ -62,7 +61,7 @@ public class OvsdbAutoAttachUpdateCommandTest { private final Map oldAutoAttachRows = new HashMap<>(); private OvsdbAutoAttachUpdateCommand ovsdbAutoAttachUpdateCommand; private ReadWriteTransaction transaction; - private InstanceIdentifier aaIid; + private DataObjectIdentifier aaIid; @SuppressWarnings("unchecked") @Before @@ -89,12 +88,16 @@ public class OvsdbAutoAttachUpdateCommandTest { OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); when(ovsdbAutoAttachUpdateCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance); - aaIid = InstanceIdentifier.create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId(CONNECTED_NODE_ID))).augmentation(OvsdbNodeAugmentation.class) - .child(Autoattach.class, new AutoattachKey( - new Uri(SouthboundConstants.AUTOATTACH_URI_PREFIX + "://" + AUTOATTACH_UUID.toString()))); - InstanceIdentifier connectionIid = aaIid.firstIdentifierOf(Node.class); + final var connectionIid = DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) + .child(Node.class, new NodeKey(new NodeId(CONNECTED_NODE_ID))) + .build(); + + aaIid = connectionIid.toBuilder() + .augmentation(OvsdbNodeAugmentation.class) + .child(Autoattach.class, + new AutoattachKey(new Uri(SouthboundConstants.AUTOATTACH_URI_PREFIX + "://" + AUTOATTACH_UUID))) + .build(); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn(connectionIid); transaction = mock(ReadWriteTransaction.class); doNothing().when(transaction).merge(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class), @@ -117,6 +120,6 @@ public class OvsdbAutoAttachUpdateCommandTest { @Test public void testExecute() { ovsdbAutoAttachUpdateCommand.execute(transaction); - verify(transaction).put(eq(LogicalDatastoreType.OPERATIONAL), eq(aaIid.toIdentifier()), any(Autoattach.class)); + verify(transaction).put(eq(LogicalDatastoreType.OPERATIONAL), eq(aaIid), any(Autoattach.class)); } } diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommandTest.java index fec96889b..e2722e071 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommandTest.java @@ -128,20 +128,21 @@ public class OvsdbBridgeUpdateCommandTest { OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); when(ovsdbBridgeUpdateCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance); - InstanceIdentifier connectionIId = InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier connectionIId = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) - .child(Node.class, new NodeKey(new NodeId("testNode"))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build(); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn(connectionIId); Optional connection = Optional.of(mock(Node.class)); PowerMockito.mockStatic(SouthboundUtil.class); - when(SouthboundUtil.readNode(any(ReadWriteTransaction.class), any(InstanceIdentifier.class))) + when(SouthboundUtil.readNode(any(ReadWriteTransaction.class), any(DataObjectIdentifier.class))) .thenReturn(connection); ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); MemberModifier.suppress(MemberMatcher.method(OvsdbBridgeUpdateCommand.class, "updateBridge", - ReadWriteTransaction.class, Bridge.class, InstanceIdentifier.class)); + ReadWriteTransaction.class, Bridge.class, DataObjectIdentifier.class)); ovsdbBridgeUpdateCommand.execute(transaction); verify(ovsdbBridgeUpdateCommand).updateBridge(any(ReadWriteTransaction.class), - any(Bridge.class), any(InstanceIdentifier.class)); + any(Bridge.class), any(DataObjectIdentifier.class)); } @SuppressWarnings("unchecked") @@ -169,9 +170,10 @@ public class OvsdbBridgeUpdateCommandTest { Bridge.class)); Bridge bridge = mock(Bridge.class); - InstanceIdentifier connectionIId = InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier connectionIId = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) - .child(Node.class, new NodeKey(new NodeId("testNode"))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build(); Whitebox.invokeMethod(ovsdbBridgeUpdateCommand, "updateBridge", transaction, bridge, connectionIId); verify(ovsdbBridgeUpdateCommand, times(3)).deleteEntries(any(ReadWriteTransaction.class), eq(null)); } @@ -180,7 +182,8 @@ public class OvsdbBridgeUpdateCommandTest { public void testDeleteEntries() throws Exception { ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); doNothing().when(transaction).delete(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class)); - ovsdbBridgeUpdateCommand.deleteEntries(transaction, List.of(InstanceIdentifier.create(NetworkTopology.class))); + ovsdbBridgeUpdateCommand.deleteEntries(transaction, + List.of(DataObjectIdentifier.builder(NetworkTopology.class).build())); verify(transaction).delete(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class)); } @@ -206,7 +209,7 @@ public class OvsdbBridgeUpdateCommandTest { .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) .child(Node.class, new NodeKey(new NodeId("testNode"))) .build(); - List> resultBridgeOtherConfigs = Whitebox + List> resultBridgeOtherConfigs = Whitebox .invokeMethod(ovsdbBridgeUpdateCommand, "bridgeOtherConfigsToRemove", bridgeIid, bridge); assertEquals(ArrayList.class, resultBridgeOtherConfigs.getClass()); verify(oldBridge, times(2)).getOtherConfigColumn(); @@ -324,9 +327,10 @@ public class OvsdbBridgeUpdateCommandTest { OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); when(ovsdbBridgeUpdateCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn( - InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) - .child(Node.class, new NodeKey(new NodeId("testNode")))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build()); PowerMockito.whenNew(OvsdbNodeRef.class).withAnyArguments().thenReturn(mock(OvsdbNodeRef.class)); when(ovsdbBridgeAugmentationBuilder.setManagedBy(any(OvsdbNodeRef.class))) .thenReturn(ovsdbBridgeAugmentationBuilder); @@ -468,9 +472,10 @@ public class OvsdbBridgeUpdateCommandTest { OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); when(ovsdbBridgeUpdateCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn( - InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) - .child(Node.class, new NodeKey(new NodeId("testNode")))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build()); OvsdbBridgeAugmentationBuilder ovsdbBridgeAugmentationBuilder = mock(OvsdbBridgeAugmentationBuilder.class); Bridge bridge = mock(Bridge.class); when(ovsdbBridgeAugmentationBuilder.setBridgeOpenflowNodeRef(any(BindingInstanceIdentifier.class))) diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerUpdateCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerUpdateCommandTest.java index 2ffe7031b..871e4d4a2 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerUpdateCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerUpdateCommandTest.java @@ -9,6 +9,7 @@ package org.opendaylight.ovsdb.southbound.transactions.md; import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; @@ -53,8 +54,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.api.support.membermodification.MemberMatcher; import org.powermock.api.support.membermodification.MemberModifier; @@ -129,11 +128,12 @@ public class OvsdbControllerUpdateCommandTest { // suppress call to getControllerEntryIid() ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); Map updatedControllerRows = new HashMap<>(); - doReturn(InstanceIdentifier.create(NetworkTopology.class) + doReturn(DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class, new NodeKey(new NodeId("testNode"))) .augmentation(OvsdbBridgeAugmentation.class) - .child(ControllerEntry.class, new ControllerEntryKey(new Uri("testEntry")))) + .child(ControllerEntry.class, new ControllerEntryKey(new Uri("testEntry"))) + .build()) .when(ovsdbControllerUpdateCommand).getControllerEntryIid(any(ControllerEntry.class), any(String.class)); doNothing().when(transaction).merge(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class), any(ControllerEntry.class)); @@ -148,11 +148,12 @@ public class OvsdbControllerUpdateCommandTest { public void testUpdateController2() throws Exception { ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); Map updatedControllerRows = new HashMap<>(); - Map, Node> bridgeNodes = new HashMap<>(); + Map, Node> bridgeNodes = new HashMap<>(); Node node = mock(Node.class); - InstanceIdentifier bridgeIid = InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier bridgeIid = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode"))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build(); bridgeNodes.put(bridgeIid, node); PowerMockito.doReturn(bridgeNodes).when(ovsdbControllerUpdateCommand, "getBridgeNodes", any(ReadWriteTransaction.class)); @@ -166,9 +167,10 @@ public class OvsdbControllerUpdateCommandTest { public void testGetBridgeNodes() throws Exception { OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); when(ovsdbControllerUpdateCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance); - InstanceIdentifier connectionIId = InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier connectionIId = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testConnection"))); + .child(Node.class, new NodeKey(new NodeId("testConnection"))) + .build(); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn(connectionIId); PowerMockito.mockStatic(SouthboundUtil.class); ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); @@ -178,18 +180,19 @@ public class OvsdbControllerUpdateCommandTest { OvsdbNodeAugmentation ovsdbNodeAugmentation = mock(OvsdbNodeAugmentation.class); when(node.augmentation(OvsdbNodeAugmentation.class)).thenReturn(ovsdbNodeAugmentation); - InstanceIdentifier bridgeIid = InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier bridgeIid = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testBridge"))); + .child(Node.class, new NodeKey(new NodeId("testBridge"))) + .build(); ManagedNodeEntry managedNodeEntry = new ManagedNodeEntryBuilder() - .setBridgeRef(new OvsdbBridgeRef(bridgeIid.toIdentifier())) + .setBridgeRef(new OvsdbBridgeRef(bridgeIid)) .build(); when(ovsdbNodeAugmentation.getManagedNodeEntry()).thenReturn(Map.of(managedNodeEntry.key(), managedNodeEntry)); Optional bridgeNode = Optional.of(node); when(SouthboundUtil.readNode(transaction, bridgeIid)).thenReturn(bridgeNode); - Map, Node> testBridgeNodes = new HashMap<>(); + Map, Node> testBridgeNodes = new HashMap<>(); testBridgeNodes.put(bridgeIid, node); //verify if getBridgeNodes() returns expected value @@ -208,8 +211,7 @@ public class OvsdbControllerUpdateCommandTest { PowerMockito.whenNew(NodeId.class).withAnyArguments().thenReturn(nodeId); PowerMockito.whenNew(NodeKey.class).withAnyArguments().thenReturn(nodeKey); when(controllerEntry.key()).thenReturn(new ControllerEntryKey(new Uri("key"))); - assertEquals(KeyedInstanceIdentifier.class, Whitebox - .invokeMethod(ovsdbControllerUpdateCommand, "getControllerEntryIid", controllerEntry, BRIDGE_NAME) - .getClass()); + assertInstanceOf(DataObjectIdentifier.WithKey.class, Whitebox + .invokeMethod(ovsdbControllerUpdateCommand, "getControllerEntryIid", controllerEntry, BRIDGE_NAME)); } } diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersRemovedCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersRemovedCommandTest.java index c12c603f3..b1f0eaa5a 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersRemovedCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersRemovedCommandTest.java @@ -45,7 +45,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.api.support.membermodification.MemberModifier; import org.powermock.core.classloader.annotations.PrepareForTest; @@ -94,22 +93,23 @@ public class OvsdbManagersRemovedCommandTest { doNothing().when(ovsdbManagersRemovedCommand).deleteManagers(any(ReadWriteTransaction.class), any(List.class)); doReturn(mock(List.class)).when(ovsdbManagersRemovedCommand).managerEntriesToRemove( - any(InstanceIdentifier.class), any(OpenVSwitch.class)); + any(DataObjectIdentifier.class), any(OpenVSwitch.class)); ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); ovsdbManagersRemovedCommand.execute(transaction); verify(ovsdbManagersRemovedCommand).deleteManagers(any(ReadWriteTransaction.class), any(List.class)); - verify(ovsdbManagersRemovedCommand).managerEntriesToRemove(any(InstanceIdentifier.class), + verify(ovsdbManagersRemovedCommand).managerEntriesToRemove(any(DataObjectIdentifier.class), any(OpenVSwitch.class)); } @Test public void testDeleteManagers() throws Exception { ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); - List> managerEntryIids = new ArrayList<>(); - managerEntryIids.add(SouthboundMapper.createInstanceIdentifier(new NodeId("test")) + List> managerEntryIids = new ArrayList<>(); + managerEntryIids.add(SouthboundMapper.createInstanceIdentifier(new NodeId("test")).toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(ManagerEntry.class, new ManagerEntryKey(new Uri("testUri")))); + .child(ManagerEntry.class, new ManagerEntryKey(new Uri("testUri"))) + .build()); doNothing().when(transaction).delete(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class)); ovsdbManagersRemovedCommand.deleteManagers(transaction, managerEntryIids); verify(transaction).delete(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class)); @@ -135,9 +135,9 @@ public class OvsdbManagersRemovedCommandTest { when(oldOvsdbNode.getManagerOptionsColumn()).thenReturn(column); when(column.getData()).thenReturn(set); when(openVSwitch.getManagerOptionsColumn()).thenReturn(column); - InstanceIdentifier bridgeIid = SouthboundMapper.createInstanceIdentifier(new NodeId("test")); + DataObjectIdentifier bridgeIid = SouthboundMapper.createInstanceIdentifier(new NodeId("test")); - List> resultManagerEntries = + List> resultManagerEntries = ovsdbManagersRemovedCommand.managerEntriesToRemove(bridgeIid, openVSwitch); assertEquals(ArrayList.class, resultManagerEntries.getClass()); verify(oldOvsdbNode, times(2)).getManagerOptionsColumn(); diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersUpdateCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersUpdateCommandTest.java index 6fa4f3837..b99fab3bc 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersUpdateCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbManagersUpdateCommandTest.java @@ -7,10 +7,9 @@ */ package org.opendaylight.ovsdb.southbound.transactions.md; -import static org.hamcrest.CoreMatchers.instanceOf; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertSame; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertSame; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; @@ -50,8 +49,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.api.support.membermodification.MemberModifier; import org.powermock.core.classloader.annotations.PrepareForTest; @@ -124,10 +121,11 @@ public class OvsdbManagersUpdateCommandTest { // mock getManagerEntryIid() ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); Map updatedManagerRows = new HashMap<>(); - PowerMockito.doReturn(InstanceIdentifier.create(NetworkTopology.class) + PowerMockito.doReturn(DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class, new NodeKey(new NodeId("testNode"))).augmentation(OvsdbNodeAugmentation.class) - .child(ManagerEntry.class, new ManagerEntryKey(new Uri("testUri")))) + .child(ManagerEntry.class, new ManagerEntryKey(new Uri("testUri"))) + .build()) .when(ovsdbManagersUpdateCommand, "getManagerEntryIid", any(ManagerEntry.class)); doNothing().when(transaction).merge(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class), any(ManagerEntry.class)); @@ -143,13 +141,14 @@ public class OvsdbManagersUpdateCommandTest { OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); when(ovsdbManagersUpdateCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn( - InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode")))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build()); Optional ovsdbNode = Optional.of(mock(Node.class)); PowerMockito.mockStatic(SouthboundUtil.class); - when(SouthboundUtil.readNode(any(ReadWriteTransaction.class), any(InstanceIdentifier.class))) + when(SouthboundUtil.readNode(any(ReadWriteTransaction.class), any(DataObjectIdentifier.class))) .thenReturn(ovsdbNode); ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); Map updatedManagerRows = new HashMap<>(); @@ -166,9 +165,8 @@ public class OvsdbManagersUpdateCommandTest { ManagerEntry managerEntry = mock(ManagerEntry.class); when(managerEntry.key()).thenReturn(new ManagerEntryKey(new Uri("key"))); - InstanceIdentifier iid = ovsdbManagersUpdateCommand.getManagerEntryIid(managerEntry); - assertThat(iid, instanceOf(KeyedInstanceIdentifier.class)); - assertSame(managerEntry.key(), ((KeyedInstanceIdentifier) iid).key()); + var iid = ovsdbManagersUpdateCommand.getManagerEntryIid(managerEntry); + assertSame(managerEntry.key(), assertInstanceOf(DataObjectIdentifier.WithKey.class, iid).key()); } @SuppressWarnings("unchecked") diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbNodeRemoveCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbNodeRemoveCommandTest.java index 5e12727de..d6b5ed248 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbNodeRemoveCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbNodeRemoveCommandTest.java @@ -46,7 +46,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint32; import org.powermock.reflect.Whitebox; @@ -81,9 +80,10 @@ public class OvsdbNodeRemoveCommandTest { OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); when(ovsdbNodeRemoveCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn( - InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testConnection")))); + .child(Node.class, new NodeKey(new NodeId("testConnection"))) + .build()); when(transaction.read(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class))) .thenReturn(ovsdbNodeFuture); diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortUpdateCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortUpdateCommandTest.java index 441e8e2a3..699f6b971 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortUpdateCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortUpdateCommandTest.java @@ -142,19 +142,20 @@ public class OvsdbPortUpdateCommandTest { OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); when(ovsdbPortUpdateCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn( - InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode")))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build()); //case 1: portUpdatedRows & interfaceOldRows not null, not empty Optional node = Optional.of(mock(Node.class)); PowerMockito.doReturn(node).when(ovsdbPortUpdateCommand, "readNode", any(ReadWriteTransaction.class), - any(InstanceIdentifier.class)); + any(DataObjectIdentifier.class)); doNothing().when(ovsdbPortUpdateCommand).updateTerminationPoints(any(ReadWriteTransaction.class), any(Node.class)); ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); PowerMockito.mockStatic(SouthboundUtil.class); - PowerMockito.when(SouthboundUtil.readNode(any(ReadWriteTransaction.class), any(InstanceIdentifier.class))) + PowerMockito.when(SouthboundUtil.readNode(any(ReadWriteTransaction.class), any(DataObjectIdentifier.class))) .thenReturn(node); ovsdbPortUpdateCommand.execute(transaction); verify(ovsdbConnectionInstance).getInstanceIdentifier(); @@ -173,26 +174,28 @@ public class OvsdbPortUpdateCommandTest { when(port.getNameColumn()).thenReturn(bridgeColumn); when(bridgeColumn.getData()).thenReturn(TERMINATION_POINT_NAME); - InstanceIdentifier nodeIid = InstanceIdentifier.create(NetworkTopology.class) + var nodeIid = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("nodeId"))); + .child(Node.class, new NodeKey(new NodeId("nodeId"))) + .build(); - Optional> bridgeIid = Optional.of(nodeIid); + Optional> bridgeIid = Optional.of(nodeIid); PowerMockito.doReturn(bridgeIid).when(ovsdbPortUpdateCommand, "getTerminationPointBridge", any(UUID.class)); NodeId bridgeId = mock(NodeId.class); PowerMockito.mockStatic(SouthboundMapper.class); - PowerMockito.when(SouthboundMapper.createManagedNodeId(any(InstanceIdentifier.class))).thenReturn(bridgeId); + PowerMockito.when(SouthboundMapper.createManagedNodeId(any(DataObjectIdentifier.class))).thenReturn(bridgeId); - InstanceIdentifier tpPath = InstanceIdentifier.create(NetworkTopology.class) + var tpPath = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) .child(Node.class, new NodeKey(new NodeId("testNode"))) - .child(TerminationPoint.class, new TerminationPointKey(new TpId("testTp"))); + .child(TerminationPoint.class, new TerminationPointKey(new TpId("testTp"))) + .build(); PowerMockito.doReturn(tpPath).when(ovsdbPortUpdateCommand, "getInstanceIdentifier", - any(InstanceIdentifier.class), any(Port.class)); + any(DataObjectIdentifier.class), any(Port.class)); PowerMockito.suppress(MemberMatcher.method(OvsdbPortUpdateCommand.class, "buildTerminationPoint", - ReadWriteTransaction.class, InstanceIdentifier.class, OvsdbTerminationPointAugmentationBuilder.class, + ReadWriteTransaction.class, DataObjectIdentifier.class, OvsdbTerminationPointAugmentationBuilder.class, Node.class, Entry.class)); Column> interfacesColumn = mock(Column.class); @@ -230,12 +233,11 @@ public class OvsdbPortUpdateCommandTest { PowerMockito.doReturn(bridgeIid).when(ovsdbPortUpdateCommand, "getTerminationPointBridge", any(ReadWriteTransaction.class), any(Node.class), anyString()); - PowerMockito.when(SouthboundMapper.createManagedNodeId(any(InstanceIdentifier.class))).thenReturn(bridgeId); + PowerMockito.when(SouthboundMapper.createManagedNodeId(any(DataObjectIdentifier.class))).thenReturn(bridgeId); Node node = mock(Node.class); Whitebox.invokeMethod(ovsdbPortUpdateCommand, "updateTerminationPoints", transaction, node); - verify(ovsdbPortUpdateCommand).getInstanceIdentifier(any(InstanceIdentifier.class), - any(Port.class)); + verify(ovsdbPortUpdateCommand).getInstanceIdentifier(any(DataObjectIdentifier.class), any(Port.class)); verify(transaction, times(2)).merge(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class), any(TerminationPoint.class)); } @@ -258,22 +260,23 @@ public class OvsdbPortUpdateCommandTest { when(tpAugmentationBuilder.setName(anyString())).thenReturn(tpAugmentationBuilder); when(tpAugmentationBuilder.setPortUuid(any(Uuid.class))).thenReturn(tpAugmentationBuilder); doNothing().when(ovsdbPortUpdateCommand).updatePort(any(ReadWriteTransaction.class), - any(Node.class), any(InstanceIdentifier.class), any(Entry.class), + any(Node.class), any(DataObjectIdentifier.class), any(Entry.class), any(OvsdbTerminationPointAugmentationBuilder.class)); Node node = mock(Node.class); ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); - InstanceIdentifier tpPath = InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier tpPath = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) .child(Node.class, new NodeKey(new NodeId("testNode"))) - .child(TerminationPoint.class, new TerminationPointKey(new TpId("testTp"))); + .child(TerminationPoint.class, new TerminationPointKey(new TpId("testTp"))) + .build(); Whitebox.invokeMethod(ovsdbPortUpdateCommand, "buildTerminationPoint", transaction, tpPath, tpAugmentationBuilder, node, portEntry); verify(tpAugmentationBuilder).setName(anyString()); verify(tpAugmentationBuilder).setPortUuid(any(Uuid.class)); verify(ovsdbPortUpdateCommand).updatePort(any(ReadWriteTransaction.class), - any(Node.class), any(InstanceIdentifier.class), any(Entry.class), + any(Node.class), any(DataObjectIdentifier.class), any(Entry.class), any(OvsdbTerminationPointAugmentationBuilder.class)); } @@ -301,9 +304,10 @@ public class OvsdbPortUpdateCommandTest { @Test public void testReadNode() throws Exception { ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); - InstanceIdentifier nodePath = InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier nodePath = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode"))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build(); Optional node = Optional.of(mock(Node.class)); FluentFuture> fluentFuture = mock(FluentFuture.class); when(transaction.read(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class))) @@ -318,12 +322,13 @@ public class OvsdbPortUpdateCommandTest { OvsdbNodeAugmentation ovsdbNode = mock(OvsdbNodeAugmentation.class); when(node.augmentation(OvsdbNodeAugmentation.class)).thenReturn(ovsdbNode); - InstanceIdentifier iidNode = InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier iidNode = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode"))); + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build(); ManagedNodeEntry managedNodeEntry = new ManagedNodeEntryBuilder() - .setBridgeRef(new OvsdbBridgeRef(iidNode.toIdentifier())) + .setBridgeRef(new OvsdbBridgeRef(iidNode)) .build(); when(ovsdbNode.nonnullManagedNodeEntry()).thenCallRealMethod(); when(ovsdbNode.getManagedNodeEntry()).thenReturn(Map.of(managedNodeEntry.key(), managedNodeEntry)); @@ -331,11 +336,10 @@ public class OvsdbPortUpdateCommandTest { Node managedNode = mock(Node.class); Optional optionalNode = Optional.of(managedNode); PowerMockito.doReturn(optionalNode).when(ovsdbPortUpdateCommand, "readNode", any(ReadWriteTransaction.class), - any(InstanceIdentifier.class)); + any(DataObjectIdentifier.class)); PowerMockito.mockStatic(SouthboundUtil.class); - PowerMockito.when(SouthboundUtil.readNode(any(ReadWriteTransaction.class), - any(InstanceIdentifier.class))) + PowerMockito.when(SouthboundUtil.readNode(any(ReadWriteTransaction.class), any(DataObjectIdentifier.class))) .thenReturn(optionalNode); TerminationPoint terminationPoint = new TerminationPointBuilder().setTpId(new TpId(TP_NAME)).build(); @@ -352,9 +356,9 @@ public class OvsdbPortUpdateCommandTest { when(managedNode.augmentation(OvsdbBridgeAugmentation.class)) .thenReturn(mock(OvsdbBridgeAugmentation.class)); - Optional> testResult = Optional.of(iidNode); + Optional> testResult = Optional.of(iidNode); ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); - Optional> result = Whitebox.invokeMethod(ovsdbPortUpdateCommand, + Optional> result = Whitebox.invokeMethod(ovsdbPortUpdateCommand, "getTerminationPointBridge", transaction, node, TP_NAME); assertEquals(testResult, result); @@ -440,17 +444,18 @@ public class OvsdbPortUpdateCommandTest { suppress(method(OvsdbPortUpdateCommand.class, "updatePortOtherConfig", Port.class, OvsdbTerminationPointAugmentationBuilder.class)); suppress(method(OvsdbPortUpdateCommand.class, "updateQos", ReadWriteTransaction.class, Node.class, - InstanceIdentifier.class, Entry.class, OvsdbTerminationPointAugmentationBuilder.class)); + DataObjectIdentifier.class, Entry.class, OvsdbTerminationPointAugmentationBuilder.class)); Node node = mock(Node.class); Entry port = new SimpleEntry<>(mock(UUID.class), mock(Port.class)); OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointBuilder = mock( OvsdbTerminationPointAugmentationBuilder.class); ReadWriteTransaction transaction = mock(ReadWriteTransaction.class); - InstanceIdentifier tpPath = InstanceIdentifier.create(NetworkTopology.class) + DataObjectIdentifier tpPath = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId("testTopo"))) .child(Node.class, new NodeKey(new NodeId("testNode"))) - .child(TerminationPoint.class, new TerminationPointKey(new TpId("testTp"))); + .child(TerminationPoint.class, new TerminationPointKey(new TpId("testTp"))) + .build(); Whitebox.invokeMethod(ovsdbPortUpdateCommand, "updatePort", transaction, node, tpPath, port, ovsdbTerminationPointBuilder); diff --git a/southbound/southbound-it/src/test/java/org/opendaylight/ovsdb/southbound/it/SouthboundIT.java b/southbound/southbound-it/src/test/java/org/opendaylight/ovsdb/southbound/it/SouthboundIT.java index 676892a47..46eb6ce8f 100644 --- a/southbound/southbound-it/src/test/java/org/opendaylight/ovsdb/southbound/it/SouthboundIT.java +++ b/southbound/southbound-it/src/test/java/org/opendaylight/ovsdb/southbound/it/SouthboundIT.java @@ -50,7 +50,6 @@ import org.opendaylight.controller.mdsal.it.base.AbstractMdsalTestBase; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.DataObjectModification; import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; -import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.notation.Version; @@ -161,11 +160,10 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; +import org.opendaylight.yangtools.binding.DataObjectReference; import org.opendaylight.yangtools.binding.EntryObject; import org.opendaylight.yangtools.binding.Key; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; import org.opendaylight.yangtools.yang.common.Uint32; import org.opendaylight.yangtools.yang.common.Uint8; @@ -222,17 +220,17 @@ public class SouthboundIT extends AbstractMdsalTestBase { private static final int RETRY_WAIT = 100; private final LogicalDatastoreType type; - private final Set> createdIids = new HashSet<>(); - private final Set> removedIids = new HashSet<>(); - private final Set> updatedIids = new HashSet<>(); - private final InstanceIdentifier iid; + private final Set> createdIids = new HashSet<>(); + private final Set> removedIids = new HashSet<>(); + private final Set> updatedIids = new HashSet<>(); + private final DataObjectIdentifier iid; private NotifyingDataChangeListener(final LogicalDatastoreType type) { this.type = type; iid = null; } - private NotifyingDataChangeListener(final LogicalDatastoreType type, final InstanceIdentifier iid) { + private NotifyingDataChangeListener(final LogicalDatastoreType type, final DataObjectIdentifier iid) { this.type = type; this.iid = iid; } @@ -241,7 +239,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { public void onDataTreeChanged(final List> changes) { for (DataTreeModification change: changes) { DataObjectModification rootNode = change.getRootNode(); - final InstanceIdentifier identifier = change.getRootPath().path(); + final DataObjectIdentifier identifier = change.path(); switch (rootNode.modificationType()) { case SUBTREE_MODIFIED: case WRITE: @@ -253,8 +251,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { if (obj instanceof ManagedNodeEntry managedNodeEntry) { LOG.info("{} DataChanged: created managed {}", managedNodeEntry.getBridgeRef().getValue()); - createdIids.add(((DataObjectIdentifier) managedNodeEntry.getBridgeRef().getValue()) - .toLegacy()); + createdIids.add(((DataObjectIdentifier) managedNodeEntry.getBridgeRef().getValue())); } } else { LOG.info("{} DataTreeChanged: updated {}", type, identifier); @@ -275,15 +272,15 @@ public class SouthboundIT extends AbstractMdsalTestBase { } } - public boolean isCreated(final InstanceIdentifier path) { + public boolean isCreated(final DataObjectIdentifier path) { return createdIids.remove(path); } - public boolean isRemoved(final InstanceIdentifier path) { + public boolean isRemoved(final DataObjectIdentifier path) { return removedIids.remove(path); } - public boolean isUpdated(final InstanceIdentifier path) { + public boolean isUpdated(final DataObjectIdentifier path) { return updatedIids.remove(path); } @@ -294,7 +291,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { } public void registerDataChangeListener() { - dataBroker.registerTreeChangeListener(type, (InstanceIdentifier)iid, this); + dataBroker.registerTreeChangeListener(type, (DataObjectReference)iid, this); } public void waitForCreation(final long timeout) throws InterruptedException { @@ -454,11 +451,11 @@ public class SouthboundIT extends AbstractMdsalTestBase { mdsalUtils = new MdsalUtils(dataBroker); assertTrue("Did not find " + SouthboundUtils.OVSDB_TOPOLOGY_ID.getValue(), getOvsdbTopology()); final ConnectionInfo connectionInfo = getConnectionInfo(addressStr, portNumber); - final InstanceIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo); - dataBroker.registerTreeChangeListener(DataTreeIdentifier.of(LogicalDatastoreType.CONFIGURATION, - (InstanceIdentifier)iid), CONFIGURATION_LISTENER); - dataBroker.registerTreeChangeListener(DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, - (InstanceIdentifier)iid), OPERATIONAL_LISTENER); + final DataObjectIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo); + dataBroker.registerTreeChangeListener(LogicalDatastoreType.CONFIGURATION, (DataObjectIdentifier) iid, + CONFIGURATION_LISTENER); + dataBroker.registerTreeChangeListener(LogicalDatastoreType.OPERATIONAL, (DataObjectIdentifier) iid, + OPERATIONAL_LISTENER); ovsdbNode = connectOvsdbNode(connectionInfo); OvsdbNodeAugmentation ovsdbNodeAugmentation = ovsdbNode.augmentation(OvsdbNodeAugmentation.class); @@ -505,8 +502,9 @@ public class SouthboundIT extends AbstractMdsalTestBase { LOG.info("getOvsdbTopology: looking for {}...", SouthboundUtils.OVSDB_TOPOLOGY_ID.getValue()); Boolean found = false; final TopologyId topologyId = SouthboundUtils.OVSDB_TOPOLOGY_ID; - InstanceIdentifier path = - InstanceIdentifier.create(NetworkTopology.class).child(Topology.class, new TopologyKey(topologyId)); + DataObjectIdentifier path = DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(topologyId)) + .build(); for (int i = 0; i < 60; i++) { Topology topology = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, path); if (topology != null) { @@ -559,19 +557,19 @@ public class SouthboundIT extends AbstractMdsalTestBase { @Test public void testNetworkTopology() throws InterruptedException { NetworkTopology networkTopology = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION, - InstanceIdentifier.create(NetworkTopology.class)); + DataObjectIdentifier.builder(NetworkTopology.class).build()); assertNotNull("NetworkTopology could not be found in " + LogicalDatastoreType.CONFIGURATION, networkTopology); networkTopology = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, - InstanceIdentifier.create(NetworkTopology.class)); + DataObjectIdentifier.builder(NetworkTopology.class).build()); assertNotNull("NetworkTopology could not be found in " + LogicalDatastoreType.OPERATIONAL, networkTopology); } @Test public void testOvsdbTopology() throws InterruptedException { - InstanceIdentifier path = InstanceIdentifier - .create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)); + DataObjectIdentifier path = DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) + .build(); Topology topology = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION, path); assertNotNull("Topology could not be found in " + LogicalDatastoreType.CONFIGURATION, topology); @@ -582,7 +580,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { } private static Node connectOvsdbNode(final ConnectionInfo connectionInfo) throws InterruptedException { - final InstanceIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo); + final DataObjectIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo); assertTrue( mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, iid, SouthboundUtils.createNode(connectionInfo))); waitForOperationalCreation(iid); @@ -592,7 +590,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { return node; } - private static void waitForOperationalCreation(final InstanceIdentifier iid) throws InterruptedException { + private static void waitForOperationalCreation(final DataObjectIdentifier iid) throws InterruptedException { synchronized (OPERATIONAL_LISTENER) { long start = System.currentTimeMillis(); LOG.info("Waiting for OPERATIONAL DataChanged creation on {}", iid); @@ -604,7 +602,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { } } - private static void waitForOperationalDeletion(final InstanceIdentifier iid) throws InterruptedException { + private static void waitForOperationalDeletion(final DataObjectIdentifier iid) throws InterruptedException { synchronized (OPERATIONAL_LISTENER) { long start = System.currentTimeMillis(); LOG.info("Waiting for OPERATIONAL DataChanged deletion on {}", iid); @@ -616,7 +614,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { } } - private static void waitForOperationalUpdate(final InstanceIdentifier iid) throws InterruptedException { + private static void waitForOperationalUpdate(final DataObjectIdentifier iid) throws InterruptedException { synchronized (OPERATIONAL_LISTENER) { long start = System.currentTimeMillis(); LOG.info("Waiting for OPERATIONAL DataChanged update on {}", iid); @@ -629,7 +627,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { } private static void disconnectOvsdbNode(final ConnectionInfo connectionInfo) throws InterruptedException { - final InstanceIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo); + final DataObjectIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo); assertTrue(mdsalUtils.delete(LogicalDatastoreType.CONFIGURATION, iid)); waitForOperationalDeletion(iid); Node node = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, iid); @@ -659,7 +657,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { LOG.info("dp type is {}", dpTypeStr); if (dpTypeStr.equals(NETDEV_DP_TYPE)) { LOG.info("Found a DPDK node; adding a corresponding netdev device"); - InstanceIdentifier bridgeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo, + DataObjectIdentifier bridgeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo, new OvsdbBridgeName(SouthboundITConstants.BRIDGE_NAME)); NodeId bridgeNodeId = SouthboundUtils.createManagedNodeId(bridgeIid); try (TestBridge testBridge = new TestBridge(connectionInfo, bridgeIid, @@ -687,7 +685,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { } // Verify that all DPDK ports are created - InstanceIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); + DataObjectIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); Node terminationPointNode = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, terminationPointIid); assertNotNull(terminationPointNode); @@ -783,8 +781,8 @@ public class SouthboundIT extends AbstractMdsalTestBase { private static void setManagedBy(final OvsdbBridgeAugmentationBuilder ovsdbBridgeAugmentationBuilder, final ConnectionInfo connectionInfo) { - InstanceIdentifier connectionNodePath = SouthboundUtils.createInstanceIdentifier(connectionInfo); - ovsdbBridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(connectionNodePath.toIdentifier())); + DataObjectIdentifier connectionNodePath = SouthboundUtils.createInstanceIdentifier(connectionInfo); + ovsdbBridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(connectionNodePath)); } private static Map createMdsalProtocols() { @@ -822,7 +820,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { ovsdbTerminationPointAugmentationBuilder) throws InterruptedException { - InstanceIdentifier portIid = SouthboundMapper.createInstanceIdentifier(bridgeNodeId); + DataObjectIdentifier portIid = SouthboundMapper.createInstanceIdentifier(bridgeNodeId); NodeBuilder portNodeBuilder = new NodeBuilder(); NodeId portNodeId = SouthboundMapper.createManagedNodeId(portIid); portNodeBuilder.setNodeId(portNodeId); @@ -853,7 +851,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { * @param externalIds The external identifiers if any. * @param otherConfigs The other configuration items if any. */ - TestBridge(final ConnectionInfo connectionInfo, @Nullable InstanceIdentifier bridgeIid, + TestBridge(final ConnectionInfo connectionInfo, @Nullable DataObjectIdentifier bridgeIid, final String bridgeName, NodeId bridgeNodeId, final boolean setProtocolEntries, final OvsdbFailModeBase failMode, final boolean setManagedBy, @Nullable final DatapathTypeBase dpType, @@ -900,7 +898,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { @Override public void close() { - final InstanceIdentifier iid = + final DataObjectIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo, new OvsdbBridgeName(bridgeName)); assertTrue(mdsalUtils.delete(LogicalDatastoreType.CONFIGURATION, iid)); try { @@ -935,9 +933,10 @@ public class SouthboundIT extends AbstractMdsalTestBase { .setMappings(mappings) .setAutoattachExternalIds(externalIds) .build(); - InstanceIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + DataObjectIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo).toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Autoattach.class, aaEntry.key()); + .child(Autoattach.class, aaEntry.key()) + .build(); final NotifyingDataChangeListener aaOperationalListener = new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, iid); aaOperationalListener.registerDataChangeListener(); @@ -952,9 +951,11 @@ public class SouthboundIT extends AbstractMdsalTestBase { @Override public void close() { - final InstanceIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + final DataObjectIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + .toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Autoattach.class, new AutoattachKey(autoattachId)); + .child(Autoattach.class, new AutoattachKey(autoattachId)) + .build(); final NotifyingDataChangeListener aaOperationalListener = new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, iid); aaOperationalListener.registerDataChangeListener(); @@ -1016,9 +1017,11 @@ public class SouthboundIT extends AbstractMdsalTestBase { .setAutoattachId(new Uri(testAutoattachId)) .setMappings(mappings) .build(); - InstanceIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + DataObjectIdentifier iid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + .toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Autoattach.class, updatedAa.key()); + .child(Autoattach.class, updatedAa.key()) + .build(); final NotifyingDataChangeListener aaOperationalListener = new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, iid); aaOperationalListener.registerDataChangeListener(); @@ -1105,9 +1108,11 @@ public class SouthboundIT extends AbstractMdsalTestBase { .setQosExternalIds(externalIds) .setQosOtherConfig(otherConfigs) .build(); - InstanceIdentifier qeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + DataObjectIdentifier qeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + .toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(QosEntries.class, qosEntry.key()); + .child(QosEntries.class, qosEntry.key()) + .build(); final NotifyingDataChangeListener qosOperationalListener = new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, qeIid); qosOperationalListener.registerDataChangeListener(); @@ -1124,9 +1129,11 @@ public class SouthboundIT extends AbstractMdsalTestBase { @Override public void close() { - final InstanceIdentifier qeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + final DataObjectIdentifier qeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + .toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(QosEntries.class, new QosEntriesKey(qosId)); + .child(QosEntries.class, new QosEntriesKey(qosId)) + .build(); final NotifyingDataChangeListener qosOperationalListener = new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, qeIid); qosOperationalListener.registerDataChangeListener(); @@ -1143,7 +1150,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { private static class TestQueue implements AutoCloseable { private final ConnectionInfo connectionInfo; private final Uri queueId; - private final InstanceIdentifier queueIid; + private final DataObjectIdentifier queueIid; /** * Creates a test queue entry which can be automatically removed when no longer necessary. @@ -1167,8 +1174,10 @@ public class SouthboundIT extends AbstractMdsalTestBase { .setQueuesOtherConfig(otherConfigs) .build(); queueIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + .toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Queues.class, queue.key()); + .child(Queues.class, queue.key()) + .build(); final NotifyingDataChangeListener queueOperationalListener = new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, queueIid); queueOperationalListener.registerDataChangeListener(); @@ -1182,15 +1191,17 @@ public class SouthboundIT extends AbstractMdsalTestBase { } } - public InstanceIdentifier getInstanceIdentifier() { + public DataObjectIdentifier getInstanceIdentifier() { return queueIid; } @Override public void close() { - InstanceIdentifier queuesIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + DataObjectIdentifier queuesIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + .toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Queues.class, new QueuesKey(queueId)); + .child(Queues.class, new QueuesKey(queueId)) + .build(); final NotifyingDataChangeListener queueOperationalListener = new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, queuesIid); queueOperationalListener.registerDataChangeListener(); @@ -1206,7 +1217,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { private static OvsdbNodeAugmentation getOvsdbNode(final ConnectionInfo connectionInfo, final LogicalDatastoreType store) { - InstanceIdentifier nodeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo); + DataObjectIdentifier nodeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo); Node node = mdsalUtils.read(store, nodeIid); assertNotNull(node); OvsdbNodeAugmentation ovsdbNodeAugmentation = node.augmentation(OvsdbNodeAugmentation.class); @@ -1260,7 +1271,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { */ private static Node getBridgeNode(final ConnectionInfo connectionInfo, final String bridgeName, final LogicalDatastoreType store) { - InstanceIdentifier bridgeIid = + DataObjectIdentifier bridgeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo, new OvsdbBridgeName(bridgeName)); return mdsalUtils.read(store, bridgeIid); } @@ -1288,7 +1299,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { } } - private static InstanceIdentifier getTpIid(final ConnectionInfo connectionInfo, + private static DataObjectIdentifier getTpIid(final ConnectionInfo connectionInfo, final OvsdbBridgeAugmentation bridge) { return SouthboundUtils.createInstanceIdentifier(connectionInfo, bridge.getBridgeName()); } @@ -1336,7 +1347,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { ovsdbTerminationBuilder.setName(portName); assertTrue(addTerminationPoint(nodeId, portName, ovsdbTerminationBuilder)); - InstanceIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); + DataObjectIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); Node terminationPointNode = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, terminationPointIid); assertNotNull(terminationPointNode); @@ -1373,7 +1384,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { ovsdbTerminationBuilder.setOfport(ofportExpected); assertTrue(addTerminationPoint(nodeId, portName, ovsdbTerminationBuilder)); - InstanceIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); + DataObjectIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); Node terminationPointNode = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, terminationPointIid); assertNotNull(terminationPointNode); @@ -1418,7 +1429,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { ovsdbTerminationBuilder.setOfport(ofportInput); ovsdbTerminationBuilder.setOfportRequest(ofPortRequestExpected); assertTrue(addTerminationPoint(nodeId, portName, ovsdbTerminationBuilder)); - InstanceIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); + DataObjectIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); Node terminationPointNode = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, terminationPointIid); assertNotNull(terminationPointNode); @@ -1520,7 +1531,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { OvsdbTerminationPointAugmentationBuilder tpUpdateAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); helper.writeValues(tpUpdateAugmentationBuilder, updateToTestCase.inputValues); - InstanceIdentifier portIid = SouthboundMapper.createInstanceIdentifier(testBridgeNodeId); + DataObjectIdentifier portIid = SouthboundMapper.createInstanceIdentifier(testBridgeNodeId); NodeBuilder portUpdateNodeBuilder = new NodeBuilder(); NodeId portUpdateNodeId = SouthboundUtils.createManagedNodeId(portIid); portUpdateNodeBuilder.setNodeId(portUpdateNodeId); @@ -1644,17 +1655,18 @@ public class SouthboundIT extends AbstractMdsalTestBase { String portName = port1; ovsdbTerminationBuilder.setName(portName); assertTrue(addTerminationPoint(nodeId, portName, ovsdbTerminationBuilder)); - InstanceIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); + DataObjectIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); Node terminationPointNode = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, terminationPointIid); assertNotNull(terminationPointNode); SouthboundUtils.createInstanceIdentifier(connectionInfo, new OvsdbBridgeName(SouthboundITConstants.BRIDGE_NAME)); portName = port1; - InstanceIdentifier nodePath = + DataObjectIdentifier nodePath = SouthboundUtils.createInstanceIdentifier(connectionInfo, - new OvsdbBridgeName(SouthboundITConstants.BRIDGE_NAME)) - .child(TerminationPoint.class, new TerminationPointKey(new TpId(portName))); + new OvsdbBridgeName(SouthboundITConstants.BRIDGE_NAME)).toBuilder() + .child(TerminationPoint.class, new TerminationPointKey(new TpId(portName))) + .build(); assertTrue("failed to delete port " + portName, mdsalUtils.delete(LogicalDatastoreType.CONFIGURATION, nodePath)); @@ -1681,10 +1693,10 @@ public class SouthboundIT extends AbstractMdsalTestBase { SouthboundUtils.createInstanceIdentifier(connectionInfo, new OvsdbBridgeName(SouthboundITConstants.BRIDGE_NAME)); portName = port1; - nodePath = - SouthboundUtils.createInstanceIdentifier(connectionInfo, - new OvsdbBridgeName(SouthboundITConstants.BRIDGE_NAME)) - .child(TerminationPoint.class, new TerminationPointKey(new TpId(portName))); + nodePath = SouthboundUtils.createInstanceIdentifier(connectionInfo, + new OvsdbBridgeName(SouthboundITConstants.BRIDGE_NAME)).toBuilder() + .child(TerminationPoint.class, new TerminationPointKey(new TpId(portName))) + .build(); assertTrue("failed to delete port " + portName, mdsalUtils.delete(LogicalDatastoreType.CONFIGURATION, nodePath)); @@ -1695,8 +1707,9 @@ public class SouthboundIT extends AbstractMdsalTestBase { portName = port2; nodePath = SouthboundUtils.createInstanceIdentifier(connectionInfo, - new OvsdbBridgeName(SouthboundITConstants.BRIDGE_NAME)) - .child(TerminationPoint.class, new TerminationPointKey(new TpId(portName))); + new OvsdbBridgeName(SouthboundITConstants.BRIDGE_NAME)).toBuilder() + .child(TerminationPoint.class, new TerminationPointKey(new TpId(portName))) + .build(); assertTrue("failed to delete port " + portName, mdsalUtils.delete(LogicalDatastoreType.CONFIGURATION, nodePath)); @@ -1728,7 +1741,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { ovsdbTerminationBuilder.setName(portName); ovsdbTerminationBuilder.setVlanTag(new VlanId(createdVlanId)); assertTrue(addTerminationPoint(nodeId, portName, ovsdbTerminationBuilder)); - InstanceIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); + DataObjectIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); Node terminationPointNode = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, terminationPointIid); assertNotNull(terminationPointNode); @@ -1749,7 +1762,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { OvsdbTerminationPointAugmentationBuilder tpUpdateAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpUpdateAugmentationBuilder.setVlanTag(new VlanId(updatedVlanId)); - InstanceIdentifier portIid = SouthboundMapper.createInstanceIdentifier(testBridgeNodeId); + DataObjectIdentifier portIid = SouthboundMapper.createInstanceIdentifier(testBridgeNodeId); NodeBuilder portUpdateNodeBuilder = new NodeBuilder(); NodeId portUpdateNodeId = SouthboundUtils.createManagedNodeId(portIid); portUpdateNodeBuilder.setNodeId(portUpdateNodeId); @@ -1795,7 +1808,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { ovsdbTerminationBuilder.setName(portName); ovsdbTerminationBuilder.setVlanMode(vlanMode); assertTrue(addTerminationPoint(nodeId, portName, ovsdbTerminationBuilder)); - InstanceIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); + DataObjectIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); Node terminationPointNode = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, terminationPointIid); assertNotNull(terminationPointNode); @@ -1814,7 +1827,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { OvsdbTerminationPointAugmentationBuilder tpUpdateAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpUpdateAugmentationBuilder.setVlanMode(updatedVlanMode); - InstanceIdentifier portIid = SouthboundMapper.createInstanceIdentifier(testBridgeNodeId); + DataObjectIdentifier portIid = SouthboundMapper.createInstanceIdentifier(testBridgeNodeId); NodeBuilder portUpdateNodeBuilder = new NodeBuilder(); NodeId portUpdateNodeId = SouthboundUtils.createManagedNodeId(portIid); portUpdateNodeBuilder.setNodeId(portUpdateNodeId); @@ -1880,7 +1893,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { List trunks = buildTrunkList(vlanSet); ovsdbTerminationBuilder.setTrunks(trunks); assertTrue(addTerminationPoint(nodeId, portName, ovsdbTerminationBuilder)); - InstanceIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); + DataObjectIdentifier terminationPointIid = getTpIid(connectionInfo, bridge); Node terminationPointNode = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, terminationPointIid); assertNotNull(terminationPointNode); @@ -1904,7 +1917,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { OvsdbTerminationPointAugmentationBuilder tpUpdateAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); tpUpdateAugmentationBuilder.setTrunks(updatedTrunks); - InstanceIdentifier portIid = SouthboundMapper.createInstanceIdentifier(testBridgeNodeId); + DataObjectIdentifier portIid = SouthboundMapper.createInstanceIdentifier(testBridgeNodeId); NodeBuilder portUpdateNodeBuilder = new NodeBuilder(); NodeId portUpdateNodeId = SouthboundUtils.createManagedNodeId(portIid); portUpdateNodeBuilder.setNodeId(portUpdateNodeId); @@ -1959,8 +1972,9 @@ public class SouthboundIT extends AbstractMdsalTestBase { // READ and check that qos uuid has been added to the port - InstanceIdentifier tpEntryIid = getTpIid(connectionInfo, bridge) - .child(TerminationPoint.class, new TerminationPointKey(new TpId(portName))); + DataObjectIdentifier tpEntryIid = getTpIid(connectionInfo, bridge).toBuilder() + .child(TerminationPoint.class, new TerminationPointKey(new TpId(portName))) + .build(); TerminationPoint terminationPoint = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, tpEntryIid); assertNotNull(terminationPoint); @@ -1988,13 +2002,13 @@ public class SouthboundIT extends AbstractMdsalTestBase { @Test public void testGetOvsdbNodes() throws InterruptedException { ConnectionInfo connectionInfo = getConnectionInfo(addressStr, portNumber); - InstanceIdentifier topologyPath = InstanceIdentifier - .create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)); + DataObjectIdentifier topologyPath = DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) + .build(); Topology topology = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, topologyPath); - InstanceIdentifier expectedNodeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo); - NodeId expectedNodeId = expectedNodeIid.firstKeyOf(Node.class).getNodeId(); + DataObjectIdentifier expectedNodeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo); + NodeId expectedNodeId = expectedNodeIid.getFirstKeyOf(Node.class).getNodeId(); assertNotNull("Expected to find topology: " + topologyPath, topology); assertNotNull("Expected to find some nodes" + topology.getNode()); LOG.info("expectedNodeId: {}, getNode: {}", expectedNodeId, topology.getNode()); @@ -2036,7 +2050,7 @@ public class SouthboundIT extends AbstractMdsalTestBase { // CREATE: Create the test bridge final OvsdbBridgeName ovsdbBridgeName = new OvsdbBridgeName(testBridgeName); - final InstanceIdentifier bridgeIid = + final DataObjectIdentifier bridgeIid = SouthboundUtils.createInstanceIdentifier(connectionInfo, ovsdbBridgeName); final NodeId bridgeNodeId = SouthboundMapper.createManagedNodeId(bridgeIid); final NodeBuilder bridgeCreateNodeBuilder = new NodeBuilder(); @@ -2249,9 +2263,11 @@ public class SouthboundIT extends AbstractMdsalTestBase { Uint8.valueOf(45), null, null)) { QueuesBuilder queuesBuilder = new QueuesBuilder(); queuesBuilder.setQueueId(new Uri(testQueueId)); - InstanceIdentifier queueIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + DataObjectIdentifier queueIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + .toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Queues.class, queuesBuilder.build().key()); + .child(Queues.class, queuesBuilder.build().key()) + .build(); final NotifyingDataChangeListener queueConfigurationListener = new NotifyingDataChangeListener(LogicalDatastoreType.CONFIGURATION, queueIid); queueConfigurationListener.registerDataChangeListener(); @@ -2335,9 +2351,11 @@ public class SouthboundIT extends AbstractMdsalTestBase { for (short dscp = 1; dscp < 64; dscp++) { QueuesBuilder queuesBuilder = new QueuesBuilder(); queuesBuilder.setQueueId(new Uri(testQueueId)); - InstanceIdentifier queueIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + DataObjectIdentifier queueIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + .toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(Queues.class, queuesBuilder.build().key()); + .child(Queues.class, queuesBuilder.build().key()) + .build(); final NotifyingDataChangeListener queueOperationalListener = new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, queueIid); queueOperationalListener.registerDataChangeListener(); @@ -2381,9 +2399,11 @@ public class SouthboundIT extends AbstractMdsalTestBase { SouthboundMapper.createQosType(SouthboundConstants.QOS_LINUX_HTB), null, null)) { QosEntriesBuilder qosBuilder = new QosEntriesBuilder(); qosBuilder.setQosId(new Uri(testQosId)); - InstanceIdentifier qosIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + DataObjectIdentifier qosIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + .toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(QosEntries.class, qosBuilder.build().key()); + .child(QosEntries.class, qosBuilder.build().key()) + .build(); final NotifyingDataChangeListener qosConfigurationListener = new NotifyingDataChangeListener(LogicalDatastoreType.CONFIGURATION, qosIid); qosConfigurationListener.registerDataChangeListener(); @@ -2470,9 +2490,11 @@ public class SouthboundIT extends AbstractMdsalTestBase { null)) { QosEntriesBuilder qosBuilder = new QosEntriesBuilder(); qosBuilder.setQosId(new Uri(testQosId)); - InstanceIdentifier qosIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + DataObjectIdentifier qosIid = SouthboundUtils.createInstanceIdentifier(connectionInfo) + .toBuilder() .augmentation(OvsdbNodeAugmentation.class) - .child(QosEntries.class, qosBuilder.build().key()); + .child(QosEntries.class, qosBuilder.build().key()) + .build(); final NotifyingDataChangeListener qosOperationalListener = new NotifyingDataChangeListener(LogicalDatastoreType.OPERATIONAL, qosIid); qosOperationalListener.registerDataChangeListener(); @@ -2486,13 +2508,13 @@ public class SouthboundIT extends AbstractMdsalTestBase { assertNotNull(operQueue1); - InstanceIdentifier queue1Iid = testQueue1.getInstanceIdentifier(); - OvsdbQueueRef queue1Ref = new OvsdbQueueRef(queue1Iid.toIdentifier()); + DataObjectIdentifier queue1Iid = testQueue1.getInstanceIdentifier(); + OvsdbQueueRef queue1Ref = new OvsdbQueueRef(queue1Iid); Queues operQueue2 = getQueue(new Uri("queue2"), ovsdbNodeAugmentation); assertNotNull(operQueue2); - InstanceIdentifier queue2Iid = testQueue2.getInstanceIdentifier(); - OvsdbQueueRef queue2Ref = new OvsdbQueueRef(queue2Iid.toIdentifier()); + DataObjectIdentifier queue2Iid = testQueue2.getInstanceIdentifier(); + OvsdbQueueRef queue2Ref = new OvsdbQueueRef(queue2Iid); Map queueList = BindingMap.of( new QueueListBuilder().setQueueNumber(Uint32.ONE).setQueueRef(queue1Ref).build(), @@ -2517,8 +2539,9 @@ public class SouthboundIT extends AbstractMdsalTestBase { } // DELETE one queue from queue list and check that one remains - KeyedInstanceIdentifier qosQueueIid = qosIid - .child(QueueList.class, new QueueListKey(Uint32.ONE)); + DataObjectIdentifier qosQueueIid = qosIid.toBuilder() + .child(QueueList.class, new QueueListKey(Uint32.ONE)) + .build(); assertTrue(mdsalUtils.delete(LogicalDatastoreType.CONFIGURATION, qosQueueIid)); qosOperationalListener.waitForUpdate(OVSDB_UPDATE_TIMEOUT); @@ -2542,8 +2565,9 @@ public class SouthboundIT extends AbstractMdsalTestBase { } // DELETE queue list and check that list is empty - qosQueueIid = qosIid - .child(QueueList.class, new QueueListKey(Uint32.ONE)); + qosQueueIid = qosIid.toBuilder() + .child(QueueList.class, new QueueListKey(Uint32.ONE)) + .build(); assertTrue(mdsalUtils.delete(LogicalDatastoreType.CONFIGURATION, qosQueueIid)); qosOperationalListener.waitForUpdate(OVSDB_UPDATE_TIMEOUT); diff --git a/utils/hwvtepsouthbound-utils/src/main/java/org/opendaylight/ovsdb/utils/hwvtepsouthbound/utils/HwvtepSouthboundUtils.java b/utils/hwvtepsouthbound-utils/src/main/java/org/opendaylight/ovsdb/utils/hwvtepsouthbound/utils/HwvtepSouthboundUtils.java index f0cae55be..55e6d623f 100644 --- a/utils/hwvtepsouthbound-utils/src/main/java/org/opendaylight/ovsdb/utils/hwvtepsouthbound/utils/HwvtepSouthboundUtils.java +++ b/utils/hwvtepsouthbound-utils/src/main/java/org/opendaylight/ovsdb/utils/hwvtepsouthbound/utils/HwvtepSouthboundUtils.java @@ -5,7 +5,6 @@ * 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.ovsdb.utils.hwvtepsouthbound.utils; import org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepSouthboundConstants; @@ -24,7 +23,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,22 +51,22 @@ public final class HwvtepSouthboundUtils { return new HwvtepGlobalAugmentationBuilder().setConnectionInfo(key).build(); } - public static InstanceIdentifier createInstanceIdentifier(ConnectionInfo key) { + public static DataObjectIdentifier.WithKey createInstanceIdentifier(ConnectionInfo key) { return createInstanceIdentifier(key.getRemoteIp(), key.getRemotePort()); } - public static InstanceIdentifier createInstanceIdentifier(IpAddress ip, PortNumber port) { - InstanceIdentifier path = InstanceIdentifier - .create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) - .child(Node.class,createNodeKey(ip,port)); - LOG.debug("Created hwvtep path: {}",path); + public static DataObjectIdentifier.WithKey createInstanceIdentifier(IpAddress ip, PortNumber port) { + var path = DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID)) + .child(Node.class, createNodeKey(ip,port)) + .build(); + LOG.debug("Created hwvtep path: {}", path); return path; } - public static InstanceIdentifier createInstanceIdentifier(ConnectionInfo key, HwvtepNodeName name) { - return HwvtepSouthboundMapper.createInstanceIdentifier( - createManagedNodeId(key, name)); + public static DataObjectIdentifier.WithKey createInstanceIdentifier(ConnectionInfo key, + HwvtepNodeName name) { + return HwvtepSouthboundMapper.createInstanceIdentifier(createManagedNodeId(key, name)); } private static NodeId createManagedNodeId(ConnectionInfo key, HwvtepNodeName nodeName) { @@ -87,5 +86,4 @@ public final class HwvtepSouthboundUtils { public static Object connectionInfoToString(ConnectionInfo connectionInfo) { return connectionInfo.getRemoteIp().stringValue() + ":" + connectionInfo.getRemotePort().getValue(); } - } diff --git a/utils/mdsal-utils/src/main/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtils.java b/utils/mdsal-utils/src/main/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtils.java index 182c0de8b..a68d4af76 100644 --- a/utils/mdsal-utils/src/main/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtils.java +++ b/utils/mdsal-utils/src/main/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtils.java @@ -17,7 +17,6 @@ import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,15 +40,15 @@ public class MdsalUtils { * Executes delete as a blocking transaction. * * @param store {@link LogicalDatastoreType} which should be modified - * @param path {@link InstanceIdentifier} to read from + * @param path {@link DataObjectIdentifier} to read from * @param the data object type * @return the result of the request */ public boolean delete( - final LogicalDatastoreType store, final InstanceIdentifier path) { + final LogicalDatastoreType store, final DataObjectIdentifier path) { boolean result = false; final WriteTransaction transaction = databroker.newWriteOnlyTransaction(); - transaction.delete(store, path.toIdentifier()); + transaction.delete(store, path); FluentFuture future = transaction.commit(); try { future.get(); @@ -64,15 +63,15 @@ public class MdsalUtils { * Executes merge as a blocking transaction. * * @param logicalDatastoreType {@link LogicalDatastoreType} which should be modified - * @param path {@link InstanceIdentifier} for path to read + * @param path {@link DataObjectIdentifier} for path to read * @param the data object type * @return the result of the request */ public boolean merge( - final LogicalDatastoreType logicalDatastoreType, final InstanceIdentifier path, final D data) { + final LogicalDatastoreType logicalDatastoreType, final DataObjectIdentifier path, final D data) { boolean result = false; final WriteTransaction transaction = databroker.newWriteOnlyTransaction(); - transaction.mergeParentStructureMerge(logicalDatastoreType, path.toIdentifier(), data); + transaction.mergeParentStructureMerge(logicalDatastoreType, path, data); FluentFuture future = transaction.commit(); try { future.get(); @@ -87,15 +86,15 @@ public class MdsalUtils { * Executes put as a blocking transaction. * * @param logicalDatastoreType {@link LogicalDatastoreType} which should be modified - * @param path {@link InstanceIdentifier} for path to read + * @param path {@link DataObjectIdentifier} for path to read * @param the data object type * @return the result of the request */ public boolean put( - final LogicalDatastoreType logicalDatastoreType, final InstanceIdentifier path, final D data) { + final LogicalDatastoreType logicalDatastoreType, final DataObjectIdentifier path, final D data) { boolean result = false; final WriteTransaction transaction = databroker.newWriteOnlyTransaction(); - transaction.mergeParentStructurePut(logicalDatastoreType, path.toIdentifier(), data); + transaction.mergeParentStructurePut(logicalDatastoreType, path, data); FluentFuture future = transaction.commit(); try { future.get(); @@ -110,11 +109,11 @@ public class MdsalUtils { * Executes read as a blocking transaction. * * @param store {@link LogicalDatastoreType} to read - * @param path {@link InstanceIdentifier} for path to read + * @param path {@link DataObjectIdentifier} for path to read * @param the data object type * @return the result as the data object requested */ - public D read(final LogicalDatastoreType store, final InstanceIdentifier path) { + public D read(final LogicalDatastoreType store, final DataObjectIdentifier path) { Optional optionalDataObject = readOptional(store, path); if (optionalDataObject.isPresent()) { return optionalDataObject.orElseThrow(); @@ -124,12 +123,12 @@ public class MdsalUtils { } public Optional readOptional( - final LogicalDatastoreType store, final InstanceIdentifier path) { + final LogicalDatastoreType store, final DataObjectIdentifier path) { int trialNo = 0; ReadTransaction transaction = databroker.newReadOnlyTransaction(); do { try { - Optional result = transaction.read(store, (DataObjectIdentifier) path.toIdentifier()).get(); + Optional result = transaction.read(store, (DataObjectIdentifier) path).get(); transaction.close(); return result; } catch (InterruptedException | ExecutionException e) { @@ -150,7 +149,7 @@ public class MdsalUtils { } - public boolean exists(final LogicalDatastoreType store, final InstanceIdentifier path) { + public boolean exists(final LogicalDatastoreType store, final DataObjectIdentifier path) { int trialNo = 0; ReadTransaction transaction = databroker.newReadOnlyTransaction(); do { @@ -175,7 +174,7 @@ public class MdsalUtils { return false; } - private static void logReadFailureError(final InstanceIdentifier path, final String cause) { + private static void logReadFailureError(final DataObjectIdentifier path, final String cause) { LOG.error("{}: Failed to read {} Cause : {}", Thread.currentThread().getStackTrace()[2], path, cause); } } diff --git a/utils/mdsal-utils/src/main/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtilsAsync.java b/utils/mdsal-utils/src/main/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtilsAsync.java index ae3dff661..1a6d45042 100644 --- a/utils/mdsal-utils/src/main/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtilsAsync.java +++ b/utils/mdsal-utils/src/main/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtilsAsync.java @@ -17,7 +17,7 @@ import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yangtools.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,13 +41,13 @@ public class MdsalUtilsAsync { * @param store * {@link LogicalDatastoreType} which should be modified * @param path - * {@link InstanceIdentifier} to read from + * {@link DataObjectIdentifier} to read from * @return The {@link FluentFuture} object to which you can assign a * callback */ public FluentFuture delete( final LogicalDatastoreType store, - final InstanceIdentifier path) { + final DataObjectIdentifier path) { final WriteTransaction transaction = databroker.newWriteOnlyTransaction(); transaction.delete(store, path.toIdentifier()); return transaction.commit(); @@ -59,13 +59,13 @@ public class MdsalUtilsAsync { * @param store * {@link LogicalDatastoreType} which should be modified * @param path - * {@link InstanceIdentifier} to read from + * {@link DataObjectIdentifier} to read from * @param operationDesc * A brief description of the operation to perform */ public void delete( final LogicalDatastoreType store, - final InstanceIdentifier path, + final DataObjectIdentifier path, final String operationDesc) { assignDefaultCallback(delete(store, path), operationDesc); } @@ -76,7 +76,7 @@ public class MdsalUtilsAsync { * @param logicalDatastoreType * {@link LogicalDatastoreType} which should be modified * @param path - * {@link InstanceIdentifier} for path to read + * {@link DataObjectIdentifier} for path to read * @param * The data object type * @return The {@link FluentFuture} object to which you can assign a @@ -84,7 +84,7 @@ public class MdsalUtilsAsync { */ public FluentFuture put( final LogicalDatastoreType logicalDatastoreType, - final InstanceIdentifier path, + final DataObjectIdentifier path, final D data) { final WriteTransaction transaction = databroker.newWriteOnlyTransaction(); transaction.mergeParentStructurePut(logicalDatastoreType, path.toIdentifier(), data); @@ -97,7 +97,7 @@ public class MdsalUtilsAsync { * @param logicalDatastoreType * {@link LogicalDatastoreType} which should be modified * @param path - * {@link InstanceIdentifier} for path to read + * {@link DataObjectIdentifier} for path to read * @param * The data object type * @param operationDesc @@ -105,7 +105,7 @@ public class MdsalUtilsAsync { */ public void put( final LogicalDatastoreType logicalDatastoreType, - final InstanceIdentifier path, + final DataObjectIdentifier path, final D data, final String operationDesc) { assignDefaultCallback(put(logicalDatastoreType, path, data), operationDesc); @@ -117,7 +117,7 @@ public class MdsalUtilsAsync { * @param logicalDatastoreType * {@link LogicalDatastoreType} which should be modified * @param path - * {@link InstanceIdentifier} for path to read + * {@link DataObjectIdentifier} for path to read * @param * The data object type * @param withParent @@ -128,7 +128,7 @@ public class MdsalUtilsAsync { // FIXME: eliminate the boolean flag here to separate out the distinct code paths public FluentFuture merge( final LogicalDatastoreType logicalDatastoreType, - final InstanceIdentifier path, + final DataObjectIdentifier path, final D data, final boolean withParent) { final WriteTransaction transaction = databroker.newWriteOnlyTransaction(); @@ -146,7 +146,7 @@ public class MdsalUtilsAsync { * @param logicalDatastoreType * {@link LogicalDatastoreType} which should be modified * @param path - * {@link InstanceIdentifier} for path to read + * {@link DataObjectIdentifier} for path to read * @param * The data object type * @param operationDesc @@ -157,7 +157,7 @@ public class MdsalUtilsAsync { // FIXME: eliminate the boolean flag here to separate out the distinct code paths public void merge( final LogicalDatastoreType logicalDatastoreType, - final InstanceIdentifier path, + final DataObjectIdentifier path, final D data, final String operationDesc, final boolean withParent) { @@ -171,7 +171,7 @@ public class MdsalUtilsAsync { * @param store * {@link LogicalDatastoreType} to read * @param path - * {@link InstanceIdentifier} for path to read + * {@link DataObjectIdentifier} for path to read * @param * The data object type * @return The {@link FluentFuture} object to which you can assign a @@ -179,9 +179,9 @@ public class MdsalUtilsAsync { */ public FluentFuture> read( final LogicalDatastoreType store, - final InstanceIdentifier path) { + final DataObjectIdentifier path) { final ReadTransaction transaction = databroker.newReadOnlyTransaction(); - final FluentFuture> future = transaction.read(store, path.toIdentifier()); + final FluentFuture> future = transaction.read(store, path); final FutureCallback> closeTransactionCallback = new FutureCallback<>() { @Override public void onSuccess(final Optional result) { diff --git a/utils/mdsal-utils/src/main/java/org/opendaylight/ovsdb/utils/mdsal/utils/NotifyingDataChangeListener.java b/utils/mdsal-utils/src/main/java/org/opendaylight/ovsdb/utils/mdsal/utils/NotifyingDataChangeListener.java index 8a58935ad..1f8bf76a7 100644 --- a/utils/mdsal-utils/src/main/java/org/opendaylight/ovsdb/utils/mdsal/utils/NotifyingDataChangeListener.java +++ b/utils/mdsal-utils/src/main/java/org/opendaylight/ovsdb/utils/mdsal/utils/NotifyingDataChangeListener.java @@ -17,9 +17,9 @@ import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yangtools.binding.DataObject; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.DataObjectReference; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,19 +39,19 @@ public final class NotifyingDataChangeListener implements AutoCloseable, DataTre public static final int BIT_DELETE = 4; public static final int BIT_ALL = 7; - private final Set> createdIids = ConcurrentHashMap.newKeySet(); - private final Set> removedIids = ConcurrentHashMap.newKeySet(); - private final Set> updatedIids = ConcurrentHashMap.newKeySet(); + private final Set> createdIids = ConcurrentHashMap.newKeySet(); + private final Set> removedIids = ConcurrentHashMap.newKeySet(); + private final Set> updatedIids = ConcurrentHashMap.newKeySet(); private final List waitList; private Registration listenerRegistration; private int mdsalTimeout = MDSAL_TIMEOUT_OPERATIONAL; - private volatile InstanceIdentifier iid; + private volatile DataObjectReference iid; private volatile LogicalDatastoreType type; private volatile boolean listen; private volatile int mask; - public NotifyingDataChangeListener(LogicalDatastoreType type, int mask, - InstanceIdentifier iid, List waitList) { + public NotifyingDataChangeListener(LogicalDatastoreType type, int mask, DataObjectReference iid, + List waitList) { this(type, iid, waitList); this.mask = mask; } @@ -63,8 +63,8 @@ public final class NotifyingDataChangeListener implements AutoCloseable, DataTre * @param iid of the md-sal object we're waiting for * @param waitList for tracking outstanding changes */ - public NotifyingDataChangeListener(LogicalDatastoreType type, - InstanceIdentifier iid, List waitList) { + public NotifyingDataChangeListener(LogicalDatastoreType type, DataObjectReference iid, + List waitList) { this.type = type; this.iid = iid; this.waitList = waitList; @@ -86,15 +86,15 @@ public final class NotifyingDataChangeListener implements AutoCloseable, DataTre * @param newType DataStore type * @param newIid of the md-sal object we're waiting for */ - public void modify(LogicalDatastoreType newType, InstanceIdentifier newIid) { - this.close(); - this.clear(); - this.type = newType; - this.iid = newIid; + public void modify(LogicalDatastoreType newType, DataObjectReference newIid) { + close(); + clear(); + type = newType; + iid = newIid; } public void setlisten(boolean value) { - this.listen = value; + listen = value; } public void setMask(int mask) { @@ -110,7 +110,7 @@ public final class NotifyingDataChangeListener implements AutoCloseable, DataTre for (DataTreeModification change: changes) { DataObjectModification rootNode = change.getRootNode(); - final InstanceIdentifier identifier = change.getRootPath().path(); + final DataObjectIdentifier identifier = change.path(); switch (rootNode.modificationType()) { case SUBTREE_MODIFIED: case WRITE: @@ -140,15 +140,15 @@ public final class NotifyingDataChangeListener implements AutoCloseable, DataTre } } - public boolean isCreated(InstanceIdentifier path) { + public boolean isCreated(DataObjectReference path) { return createdIids.remove(path); } - public boolean isUpdated(InstanceIdentifier path) { + public boolean isUpdated(DataObjectReference path) { return updatedIids.remove(path); } - public boolean isRemoved(InstanceIdentifier path) { + public boolean isRemoved(DataObjectReference path) { return removedIids.remove(path); } diff --git a/utils/mdsal-utils/src/test/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtilsAsyncTest.java b/utils/mdsal-utils/src/test/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtilsAsyncTest.java index 611d0f879..746fdad01 100644 --- a/utils/mdsal-utils/src/test/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtilsAsyncTest.java +++ b/utils/mdsal-utils/src/test/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtilsAsyncTest.java @@ -37,8 +37,8 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.node.attributes.SupportingNode; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.node.attributes.SupportingNodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.node.attributes.SupportingNodeKey; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @RunWith(MockitoJUnitRunner.class) public class MdsalUtilsAsyncTest extends AbstractDataBrokerTest { @@ -52,10 +52,10 @@ public class MdsalUtilsAsyncTest extends AbstractDataBrokerTest { private static final NodeKey NODE_KEY = new NodeKey(NODE_ID); private static final Node DATA = new NodeBuilder().withKey(NODE_KEY).setNodeId(NODE_ID).build(); - private static final InstanceIdentifier TEST_IID = InstanceIdentifier - .create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(TOPOLOGY_TEST)) - .child(Node.class, NODE_KEY); + private static final DataObjectIdentifier TEST_IID = DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(TOPOLOGY_TEST)) + .child(Node.class, NODE_KEY) + .build(); @Before public void setUp() { @@ -185,7 +185,7 @@ public class MdsalUtilsAsyncTest extends AbstractDataBrokerTest { private Node readDS() { try { final Optional result = databroker.newReadOnlyTransaction().read( - LogicalDatastoreType.CONFIGURATION, TEST_IID.toIdentifier()).get(); + LogicalDatastoreType.CONFIGURATION, TEST_IID).get(); if (result.isPresent()) { return result.orElseThrow(); } diff --git a/utils/mdsal-utils/src/test/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtilsTest.java b/utils/mdsal-utils/src/test/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtilsTest.java index 9afc66663..0021f4f25 100644 --- a/utils/mdsal-utils/src/test/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtilsTest.java +++ b/utils/mdsal-utils/src/test/java/org/opendaylight/ovsdb/utils/mdsal/utils/MdsalUtilsTest.java @@ -31,7 +31,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.util.concurrent.FluentFutures; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** * Unit test for class {@link MdsalUtils}. @@ -51,7 +50,7 @@ public class MdsalUtilsTest { doReturn(CommitInfo.emptyFluentFuture()).when(writeTransaction).commit(); boolean result = mdsalUtils.delete(LogicalDatastoreType.CONFIGURATION, - InstanceIdentifier.create(NetworkTopology.class)); + DataObjectIdentifier.builder(NetworkTopology.class).build()); verify(writeTransaction, times(1)).delete(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class)); verify(writeTransaction, times(1)).commit(); @@ -66,7 +65,7 @@ public class MdsalUtilsTest { doReturn(CommitInfo.emptyFluentFuture()).when(writeTransaction).commit(); boolean result = mdsalUtils.merge(LogicalDatastoreType.CONFIGURATION, - InstanceIdentifier.create(NetworkTopology.class), mock(NetworkTopology.class)); + DataObjectIdentifier.builder(NetworkTopology.class).build(), mock(NetworkTopology.class)); verify(writeTransaction, times(1)).mergeParentStructureMerge(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class), any(DataObject.class)); @@ -82,7 +81,7 @@ public class MdsalUtilsTest { doReturn(CommitInfo.emptyFluentFuture()).when(writeTransaction).commit(); boolean result = mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, - InstanceIdentifier.create(NetworkTopology.class), mock(NetworkTopology.class)); + DataObjectIdentifier.builder(NetworkTopology.class).build(), mock(NetworkTopology.class)); verify(writeTransaction, times(1)).mergeParentStructurePut(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class), any(DataObject.class)); @@ -99,7 +98,7 @@ public class MdsalUtilsTest { doReturn(FluentFutures.immediateFluentFuture(Optional.of(obj))).when(readTransaction).read( any(LogicalDatastoreType.class), any(DataObjectIdentifier.class)); NetworkTopology result = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION, - InstanceIdentifier.create(NetworkTopology.class)); + DataObjectIdentifier.builder(NetworkTopology.class).build()); verify(readTransaction, times(1)).read(any(LogicalDatastoreType.class), any(DataObjectIdentifier.class)); verify(readTransaction, times(1)).close(); diff --git a/utils/ovsdb-it-utils/src/main/java/org/opendaylight/ovsdb/utils/ovsdb/it/utils/DockerOvs.java b/utils/ovsdb-it-utils/src/main/java/org/opendaylight/ovsdb/utils/ovsdb/it/utils/DockerOvs.java index 6dbcd694a..3a63d296f 100644 --- a/utils/ovsdb-it-utils/src/main/java/org/opendaylight/ovsdb/utils/ovsdb/it/utils/DockerOvs.java +++ b/utils/ovsdb-it-utils/src/main/java/org/opendaylight/ovsdb/utils/ovsdb/it/utils/DockerOvs.java @@ -295,7 +295,7 @@ public final class DockerOvs implements AutoCloseable { } } - private String[] removeFirstEl(String[] arr) { + private static String[] removeFirstEl(String[] arr) { return Arrays.copyOfRange(arr, 1, arr.length); } @@ -362,7 +362,7 @@ public final class DockerOvs implements AutoCloseable { return dockerComposeServices.size(); } - private String getOvsNumString(int numOvs) { + private static String getOvsNumString(int numOvs) { if (numOvs == 0) { return "ovs1"; } else { diff --git a/utils/ovsdb-it-utils/src/main/java/org/opendaylight/ovsdb/utils/ovsdb/it/utils/NodeInfo.java b/utils/ovsdb-it-utils/src/main/java/org/opendaylight/ovsdb/utils/ovsdb/it/utils/NodeInfo.java index 0a522ee56..6edebd7c9 100644 --- a/utils/ovsdb-it-utils/src/main/java/org/opendaylight/ovsdb/utils/ovsdb/it/utils/NodeInfo.java +++ b/utils/ovsdb-it-utils/src/main/java/org/opendaylight/ovsdb/utils/ovsdb/it/utils/NodeInfo.java @@ -19,7 +19,8 @@ import org.opendaylight.ovsdb.utils.mdsal.utils.NotifyingDataChangeListener; import org.opendaylight.ovsdb.utils.southbound.utils.SouthboundUtils; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfo; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; +import org.opendaylight.yangtools.binding.DataObjectIdentifier.WithKey; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,8 +33,8 @@ public class NodeInfo { public static final String INTEGRATION_BRIDGE_NAME = "br-int"; private final ConnectionInfo connectionInfo; - private final InstanceIdentifier ovsdbIid; - private final InstanceIdentifier bridgeIid; + private final WithKey ovsdbIid; + private final WithKey bridgeIid; private final List waitList; private final OvsdbItUtils itUtils; diff --git a/utils/southbound-utils/src/main/java/org/opendaylight/ovsdb/utils/southbound/utils/SouthboundUtils.java b/utils/southbound-utils/src/main/java/org/opendaylight/ovsdb/utils/southbound/utils/SouthboundUtils.java index 823795836..26ba6a7a6 100644 --- a/utils/southbound-utils/src/main/java/org/opendaylight/ovsdb/utils/southbound/utils/SouthboundUtils.java +++ b/utils/southbound-utils/src/main/java/org/opendaylight/ovsdb/utils/southbound/utils/SouthboundUtils.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.ovsdb.utils.config.ConfigProperties; import org.opendaylight.ovsdb.utils.mdsal.utils.MdsalUtils; @@ -116,12 +117,12 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey; import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; +import org.opendaylight.yangtools.binding.DataObjectIdentifier.WithKey; import org.opendaylight.yangtools.binding.Key; import org.opendaylight.yangtools.binding.KeyStep; import org.opendaylight.yangtools.binding.NodeStep; import org.opendaylight.yangtools.binding.PropertyIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; @@ -130,14 +131,14 @@ import org.slf4j.LoggerFactory; public class SouthboundUtils { private abstract static class UtilsProvider { - abstract T read(LogicalDatastoreType store, InstanceIdentifier path); + abstract T read(LogicalDatastoreType store, DataObjectIdentifier path); - abstract boolean delete(LogicalDatastoreType store, InstanceIdentifier path); + abstract boolean delete(LogicalDatastoreType store, DataObjectIdentifier path); - abstract boolean put(LogicalDatastoreType store, InstanceIdentifier path, + abstract boolean put(LogicalDatastoreType store, DataObjectIdentifier path, T createNode); - abstract boolean merge(LogicalDatastoreType store, InstanceIdentifier path, T data); + abstract boolean merge(LogicalDatastoreType store, DataObjectIdentifier path, T data); } private static final class MdsalUtilsProvider extends UtilsProvider { @@ -148,22 +149,22 @@ public class SouthboundUtils { } @Override - T read(LogicalDatastoreType store, InstanceIdentifier path) { + T read(LogicalDatastoreType store, DataObjectIdentifier path) { return mdsalUtils.read(store, path); } @Override - boolean put(LogicalDatastoreType store, InstanceIdentifier path, T data) { + boolean put(LogicalDatastoreType store, DataObjectIdentifier path, T data) { return mdsalUtils.put(store, path, data); } @Override - boolean delete(LogicalDatastoreType store, InstanceIdentifier path) { + boolean delete(LogicalDatastoreType store, DataObjectIdentifier path) { return mdsalUtils.delete(store, path); } @Override - boolean merge(LogicalDatastoreType store, InstanceIdentifier path, T data) { + boolean merge(LogicalDatastoreType store, DataObjectIdentifier path, T data) { return mdsalUtils.merge(store, path, data); } } @@ -254,47 +255,49 @@ public class SouthboundUtils { return new OvsdbNodeAugmentationBuilder().setConnectionInfo(key).build(); } - public static InstanceIdentifier createInstanceIdentifier(NodeId nodeId) { - return InstanceIdentifier - .create(NetworkTopology.class) + public static @NonNull WithKey createInstanceIdentifier(NodeId nodeId) { + return DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(OVSDB_TOPOLOGY_ID)) - .child(Node.class,new NodeKey(nodeId)); + .child(Node.class, new NodeKey(nodeId)) + .build(); } - public static InstanceIdentifier createInstanceIdentifier(NodeKey ovsdbNodeKey, String bridgeName) { + public static @NonNull WithKey createInstanceIdentifier(NodeKey ovsdbNodeKey, String bridgeName) { return createInstanceIdentifier(createManagedNodeId(ovsdbNodeKey.getNodeId(), bridgeName)); } - public static InstanceIdentifier createInstanceIdentifier(ConnectionInfo key) { + public static @NonNull WithKey createInstanceIdentifier(ConnectionInfo key) { return createInstanceIdentifier(key.getRemoteIp(), key.getRemotePort()); } - public static InstanceIdentifier createInstanceIdentifier(IpAddress ip, PortNumber port) { - InstanceIdentifier path = InstanceIdentifier - .create(NetworkTopology.class) + public static @NonNull WithKey createInstanceIdentifier(IpAddress ip, PortNumber port) { + var path = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(OVSDB_TOPOLOGY_ID)) - .child(Node.class,createNodeKey(ip,port)); + .child(Node.class, createNodeKey(ip,port)) + .build(); LOG.debug("Created ovsdb path: {}",path); return path; } - public static InstanceIdentifier createInstanceIdentifier(ConnectionInfo key, OvsdbBridgeName bridgeName) { + public static @NonNull WithKey createInstanceIdentifier(ConnectionInfo key, + OvsdbBridgeName bridgeName) { return createInstanceIdentifier(createManagedNodeId(key, bridgeName)); } - public static InstanceIdentifier createInstanceIdentifier(ConnectionInfo key, String bridgeName) { + public static @NonNull WithKey createInstanceIdentifier(ConnectionInfo key, String bridgeName) { return createInstanceIdentifier(key, new OvsdbBridgeName(bridgeName)); } - public InstanceIdentifier createTerminationPointInstanceIdentifier(Node node, String portName) { + public @NonNull WithKey createTerminationPointInstanceIdentifier( + Node node, String portName) { - InstanceIdentifier terminationPointPath = InstanceIdentifier - .create(NetworkTopology.class) + var terminationPointPath = DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(OVSDB_TOPOLOGY_ID)) .child(Node.class,node.key()) - .child(TerminationPoint.class, new TerminationPointKey(new TpId(portName))); + .child(TerminationPoint.class, new TerminationPointKey(new TpId(portName))) + .build(); - LOG.debug("Termination point InstanceIdentifier generated : {}",terminationPointPath); + LOG.debug("Termination point InstanceIdentifier generated : {}", terminationPointPath); return terminationPointPath; } @@ -303,8 +306,7 @@ public class SouthboundUtils { } public static NodeId createManagedNodeId(NodeId ovsdbNodeId, String bridgeName) { - return new NodeId(ovsdbNodeId.getValue() - + "/" + BRIDGE_URI_PREFIX + "/" + bridgeName); + return new NodeId(ovsdbNodeId.getValue() + "/" + BRIDGE_URI_PREFIX + "/" + bridgeName); } public static NodeId createManagedNodeId(ConnectionInfo key, OvsdbBridgeName bridgeName) { @@ -312,13 +314,11 @@ public class SouthboundUtils { } public static NodeId createManagedNodeId(IpAddress ip, PortNumber port, OvsdbBridgeName bridgeName) { - return new NodeId(createNodeId(ip,port).getValue() - + "/" + BRIDGE_URI_PREFIX + "/" + bridgeName.getValue()); + return new NodeId(createNodeId(ip,port).getValue() + "/" + BRIDGE_URI_PREFIX + "/" + bridgeName.getValue()); } - public static NodeId createManagedNodeId(InstanceIdentifier iid) { - NodeKey nodeKey = iid.firstKeyOf(Node.class); - return nodeKey.getNodeId(); + public static NodeId createManagedNodeId(DataObjectIdentifier iid) { + return iid.getFirstKeyOf(Node.class).getNodeId(); } public OvsdbNodeAugmentation extractOvsdbNode(Node node) { @@ -491,8 +491,7 @@ public class SouthboundUtils { * @return store type data store contents */ public Node getBridgeNode(ConnectionInfo connectionInfo, String bridgeName, LogicalDatastoreType store) { - InstanceIdentifier bridgeIid = createInstanceIdentifier(connectionInfo, new OvsdbBridgeName(bridgeName)); - return provider.read(store, bridgeIid); + return provider.read(store, createInstanceIdentifier(connectionInfo, new OvsdbBridgeName(bridgeName))); } public Node getBridgeNode(Node node, String bridgeName) { @@ -515,9 +514,7 @@ public class SouthboundUtils { Node bridgeNode = null; ConnectionInfo connectionInfo = getConnectionInfo(ovsdbNode); if (connectionInfo != null) { - InstanceIdentifier bridgeIid = - createInstanceIdentifier(node.key(), name); - bridgeNode = provider.read(LogicalDatastoreType.OPERATIONAL, bridgeIid); + bridgeNode = provider.read(LogicalDatastoreType.OPERATIONAL, createInstanceIdentifier(node.key(), name)); } return bridgeNode; } @@ -537,9 +534,8 @@ public class SouthboundUtils { Node ovsdbNode = null; OvsdbBridgeAugmentation bridgeAugmentation = extractBridgeAugmentation(bridgeNode); if (bridgeAugmentation != null) { - InstanceIdentifier ovsdbNodeIid = - ((DataObjectIdentifier) bridgeAugmentation.getManagedBy().getValue()).toLegacy(); - ovsdbNode = provider.read(LogicalDatastoreType.OPERATIONAL, ovsdbNodeIid); + ovsdbNode = provider.read(LogicalDatastoreType.OPERATIONAL, + ((DataObjectIdentifier) bridgeAugmentation.getManagedBy().getValue())); } else { LOG.debug("readOvsdbNode: Provided node is not a bridge node : {}",bridgeNode); } @@ -586,7 +582,7 @@ public class SouthboundUtils { * @return success of bridge addition * @throws InterruptedException */ - public boolean addBridge(final ConnectionInfo connectionInfo, InstanceIdentifier bridgeIid, + public boolean addBridge(final ConnectionInfo connectionInfo, DataObjectIdentifier bridgeIid, final String bridgeName, NodeId bridgeNodeId, final boolean setProtocolEntries, final OvsdbFailModeBase failMode, final boolean setManagedBy, final DatapathTypeBase dpType, @@ -686,10 +682,10 @@ public class SouthboundUtils { ovsdbBridgeAugmentationBuilder.setDatapathType(DatapathTypeNetdev.VALUE); } - InstanceIdentifier bridgeIid = createInstanceIdentifier(ovsdbNode.key(), bridgeName); + var bridgeIid = createInstanceIdentifier(ovsdbNode.key(), bridgeName); Node node = new NodeBuilder() .addAugmentation(ovsdbBridgeAugmentationBuilder.build()) - .setNodeId(createManagedNodeId(bridgeIid)) + .setNodeId(bridgeIid.key().getNodeId()) .build(); boolean result = provider.put(LogicalDatastoreType.CONFIGURATION, bridgeIid, node); LOG.info("addBridge: result: {}", result); @@ -731,7 +727,7 @@ public class SouthboundUtils { LOG.debug("setBridgeController: ovsdbNode: {}, bridgeNode: {}, controller(s): {}", ovsdbNode, bridgeName, controllers); - InstanceIdentifier bridgeNodeIid = createInstanceIdentifier(ovsdbNode.key(), bridgeName); + var bridgeNodeIid = createInstanceIdentifier(ovsdbNode.key(), bridgeName); Node bridgeNode = provider.read(LogicalDatastoreType.CONFIGURATION, bridgeNodeIid); if (bridgeNode == null) { LOG.info("setBridgeController could not find bridge in configuration {}", bridgeNodeIid); @@ -758,7 +754,7 @@ public class SouthboundUtils { return true; } - InstanceIdentifier bridgeIid = createInstanceIdentifier(ovsdbNode.key(), bridgeName); + var bridgeIid = createInstanceIdentifier(ovsdbNode.key(), bridgeName); return provider.merge(LogicalDatastoreType.CONFIGURATION, bridgeIid, new NodeBuilder(bridgeNode) .addAugmentation(new OvsdbBridgeAugmentationBuilder(bridgeAug) .setControllerEntry(newControllerEntries) @@ -768,8 +764,7 @@ public class SouthboundUtils { private static void setManagedBy(final OvsdbBridgeAugmentationBuilder ovsdbBridgeAugmentationBuilder, final ConnectionInfo connectionInfo) { - InstanceIdentifier connectionNodePath = createInstanceIdentifier(connectionInfo); - ovsdbBridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(connectionNodePath.toIdentifier())); + ovsdbBridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(createInstanceIdentifier(connectionInfo))); } public boolean addTerminationPoint( @@ -806,9 +801,9 @@ public class SouthboundUtils { tpAugmentationBuilder.setInterfaceExternalIds(builder.build()); } - InstanceIdentifier tpIid = createTerminationPointInstanceIdentifier(bridgeNode, portName); + var tpIid = createTerminationPointInstanceIdentifier(bridgeNode, portName); return provider.merge(LogicalDatastoreType.CONFIGURATION, tpIid, new TerminationPointBuilder() - .withKey(InstanceIdentifier.keyOf(tpIid)) + .withKey(tpIid.key()) .addAugmentation(tpAugmentationBuilder.build()) .build()); } @@ -828,15 +823,15 @@ public class SouthboundUtils { tpAugmentationBuilder.setOptions(buildOptions(options)); - InstanceIdentifier tpIid = createTerminationPointInstanceIdentifier(bridgeNode, portName); + var tpIid = createTerminationPointInstanceIdentifier(bridgeNode, portName); return provider.merge(LogicalDatastoreType.CONFIGURATION, tpIid, new TerminationPointBuilder() - .withKey(InstanceIdentifier.keyOf(tpIid)) + .withKey(tpIid.key()) .addAugmentation(tpAugmentationBuilder.build()) .build()); } public Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type) { - InstanceIdentifier tpIid = createTerminationPointInstanceIdentifier(bridgeNode, portName); + var tpIid = createTerminationPointInstanceIdentifier(bridgeNode, portName); OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); @@ -845,7 +840,7 @@ public class SouthboundUtils { tpAugmentationBuilder.setInterfaceType(OVSDB_INTERFACE_TYPE_MAP.get(type)); } return provider.merge(LogicalDatastoreType.CONFIGURATION, tpIid, new TerminationPointBuilder() - .withKey(InstanceIdentifier.keyOf(tpIid)) + .withKey(tpIid.key()) .addAugmentation(tpAugmentationBuilder.build()) .build()); } @@ -1037,8 +1032,7 @@ public class SouthboundUtils { case PropertyIdentifier pi -> pi.container(); }; - InstanceIdentifier bridgeIid = iid.toLegacy(); - for (var bridgeIidPathArg : bridgeIid.getPathArguments()) { + for (var bridgeIidPathArg : iid.steps()) { if (bridgeIidPathArg instanceof KeyStep identifiableItem) { Key key = identifiableItem.key(); if (key instanceof NodeKey nodeKey) { @@ -1061,9 +1055,8 @@ public class SouthboundUtils { public OvsdbBridgeAugmentation getBridgeFromConfig(Node node, String bridge) { OvsdbBridgeAugmentation ovsdbBridgeAugmentation = null; - InstanceIdentifier bridgeIid = - createInstanceIdentifier(node.key(), bridge); - Node bridgeNode = provider.read(LogicalDatastoreType.CONFIGURATION, bridgeIid); + Node bridgeNode = provider.read(LogicalDatastoreType.CONFIGURATION, + createInstanceIdentifier(node.key(), bridge)); if (bridgeNode != null) { ovsdbBridgeAugmentation = bridgeNode.augmentation(OvsdbBridgeAugmentation.class); } @@ -1159,10 +1152,11 @@ public class SouthboundUtils { LOG.error("readTerminationPointAugmentations: Node value is null"); return Collections.emptyList(); } - Node operNode = provider.read(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier - .create(NetworkTopology.class) + Node operNode = provider.read(LogicalDatastoreType.OPERATIONAL, + DataObjectIdentifier.builder(NetworkTopology.class) .child(Topology.class, new TopologyKey(OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(node.getNodeId()))); + .child(Node.class, new NodeKey(node.getNodeId())) + .build()); if (operNode != null) { return extractTerminationPointAugmentations(operNode); } @@ -1175,9 +1169,10 @@ public class SouthboundUtils { * @return a list of nodes or null if the topology could not found */ public Map getOvsdbNodes() { - InstanceIdentifier inst = InstanceIdentifier.create(NetworkTopology.class).child(Topology.class, - new TopologyKey(OVSDB_TOPOLOGY_ID)); - Topology topology = provider.read(LogicalDatastoreType.OPERATIONAL, inst); + Topology topology = provider.read(LogicalDatastoreType.OPERATIONAL, + DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(OVSDB_TOPOLOGY_ID)) + .build()); return topology != null ? topology.getNode() : null; } @@ -1251,7 +1246,7 @@ public class SouthboundUtils { return null; } - public String getDatapathIdFromNodeInstanceId(InstanceIdentifier nodeInstanceId) { + public String getDatapathIdFromNodeInstanceId(DataObjectIdentifier nodeInstanceId) { Node node = provider.read(LogicalDatastoreType.OPERATIONAL, nodeInstanceId); String dpId = node != null ? getDataPathIdStr(node) : null; if (dpId != null) { -- 2.34.1 From 7ffc2eefb4e147383e8ee5cb25bb6156ab0a82cc Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 2 Oct 2026 21:35:33 +0200 Subject: [PATCH 2/5] Migrate user of Sets.newConcurrentHashSet() Use ConcurrentHashMap.newKeySet(); Change-Id: I196eb8f4dd55b89b7ca9f8b843910eee5d4edd4e Signed-off-by: Robert Varga --- .../opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java index cebde898a..7097398f4 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java @@ -7,7 +7,6 @@ */ package org.opendaylight.ovsdb.hwvtepsouthbound; -import com.google.common.collect.Sets; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; @@ -372,7 +371,7 @@ public class HwvtepDeviceInfo { if (reference == null || tep == null) { return; } - tepIdReferences.computeIfAbsent(tep, (tepId) -> Sets.newConcurrentHashSet()); + tepIdReferences.computeIfAbsent(tep, (tepId) -> ConcurrentHashMap.newKeySet()); tepIdReferences.get(tep).add(reference); } -- 2.34.1 From fbd66ab951eb2e8c3ebaec7d225c0b98fdd7cc8b Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 2 Oct 2026 21:58:11 +0200 Subject: [PATCH 3/5] Add bundle-parent Upgraded binding-parent is bringing in a number of dependencies that will end up being unused. Introduce a bundle-parent, which does not bring that baggage. Change-Id: Icbb825605f7d6dc3e9425796b5f02bb447a026b8 Signed-off-by: Robert Varga --- commons/bundle-parent/pom.xml | 53 +++++++++++++++++++++++++++++++++++ commons/pom.xml | 1 + library/impl/pom.xml | 4 +-- 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 commons/bundle-parent/pom.xml diff --git a/commons/bundle-parent/pom.xml b/commons/bundle-parent/pom.xml new file mode 100644 index 000000000..6eb626f25 --- /dev/null +++ b/commons/bundle-parent/pom.xml @@ -0,0 +1,53 @@ + + + + 4.0.0 + + org.opendaylight.odlparent + bundle-parent + 14.3.1 + + + + org.opendaylight.ovsdb + bundle-parent + 1.23.0-SNAPSHOT + pom + + + + + org.opendaylight.ovsdb + ovsdb-binding-parent + 1.23.0-SNAPSHOT + pom + import + + + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + + checkstyle.violationSeverity=error + + + + com.github.spotbugs + spotbugs-maven-plugin + + true + + + + + diff --git a/commons/pom.xml b/commons/pom.xml index 537125f54..99beddc11 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -32,6 +32,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html it binding-parent + bundle-parent - odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal - odl-mdsal-model-odl-l2-types + odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal + odl-mdsal-model-odl-l2-types diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml index 16f5a6b94..469df1a79 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 15.0.2 @@ -30,7 +30,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.netconf netconf-artifacts - 11.0.0 + 12.0.1 import pom @@ -47,7 +47,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.netconf - odl-restconf + odl-restconf-nb xml features diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/src/main/feature/feature.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/src/main/feature/feature.xml index 3edbc4c33..b36005d43 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/src/main/feature/feature.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/src/main/feature/feature.xml @@ -8,6 +8,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html --> - odl-restconf + odl-restconf-nb diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-test/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-test/pom.xml index 6da7dfe90..384d14c6e 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-test/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-test/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 15.0.2 diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-ui/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-ui/pom.xml index a312d48b8..6d040d1fb 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-ui/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-ui/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 15.0.2 @@ -30,7 +30,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.netconf netconf-artifacts - 11.0.0 + 12.0.1 import pom diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-ui/src/main/feature/feature.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-ui/src/main/feature/feature.xml index aa15772a2..af2a847ef 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-ui/src/main/feature/feature.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-ui/src/main/feature/feature.xml @@ -8,6 +8,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html --> - odl-restconf-openapi + odl-restconf-openapi diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound/pom.xml index bfe41620b..fa8ba1680 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 15.0.2 diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/pom.xml index 46b09c9bd..b42e80856 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent odlparent-lite - 14.3.1 + 15.0.2 org.opendaylight.ovsdb diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionManager.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionManager.java index c1a629868..ab42628f9 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionManager.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionManager.java @@ -512,7 +512,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo hwvtepConnectionInstance.setControllerTxHistory(controllerLog); hwvtepConnectionInstance.setDeviceUpdateHistory(deviceLog); } - Entity deviceEntity = new Entity(ENTITY_TYPE, iid.toLegacy()); + Entity deviceEntity = new Entity(ENTITY_TYPE, iid); LOG.debug("Entity {} created for device connection {}", deviceEntity, hwvtepConnectionInstance.getConnectionInfo()); return deviceEntity; @@ -524,8 +524,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo } public void reconcileConnection(final DataObjectIdentifier iid, final HwvtepGlobalAugmentation hwvtepNode) { - retryConnection(iid, hwvtepNode, - ConnectionReconciliationTriggers.ON_CONTROLLER_INITIATED_CONNECTION_FAILURE); + retryConnection(iid, hwvtepNode, ConnectionReconciliationTriggers.ON_CONTROLLER_INITIATED_CONNECTION_FAILURE); } public void stopConnectionReconciliationIfActive(final DataObjectIdentifier iid, diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java index 7097398f4..e35705609 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDeviceInfo.java @@ -56,20 +56,20 @@ public class HwvtepDeviceInfo { private static final Logger LOG = LoggerFactory.getLogger(HwvtepDeviceInfo.class); - private Map>, Map> availableInOperDs = + private Map>, Map> availableInOperDs = new ConcurrentHashMap<>(); - public void markAvailableInOperDs(Class> cls, DataObjectIdentifier key) { + public void markAvailableInOperDs(Class> cls, DataObjectIdentifier key) { availableInOperDs.putIfAbsent(cls, new ConcurrentHashMap<>()); availableInOperDs.get(cls).put(key, Boolean.TRUE); } - public Boolean isAvailableInOperDs(Class> cls, DataObjectIdentifier key) { + public Boolean isAvailableInOperDs(Class> cls, DataObjectIdentifier key) { availableInOperDs.putIfAbsent(cls, new ConcurrentHashMap<>()); return availableInOperDs.get(cls).getOrDefault(key, Boolean.FALSE); } - public Boolean clearOperDsAvailability(Class> cls, DataObjectIdentifier key) { + public Boolean clearOperDsAvailability(Class> cls, DataObjectIdentifier key) { availableInOperDs.putIfAbsent(cls, new ConcurrentHashMap<>()); return availableInOperDs.get(cls).remove(key); } @@ -139,14 +139,15 @@ public class HwvtepDeviceInfo { Map, RemoteMcastMacs>> logicalSwitchVsMcasts = new ConcurrentHashMap<>(); private final Map physicalSwitches = new ConcurrentHashMap<>(); private final Map mapTunnelToPhysicalSwitch = new ConcurrentHashMap<>(); - private final Map>, Map> opKeyVsData = + private final Map>, Map> opKeyVsData = + new ConcurrentHashMap<>(); + private final Map>, Map> uuidVsData = new ConcurrentHashMap<>(); - private final Map>, Map> uuidVsData = new ConcurrentHashMap<>(); private final HwvtepConnectionInstance connectionInstance; private final DependencyQueue dependencyQueue; private Map iidInQueueCount = new ConcurrentHashMap<>(); - private Map>, Map> configKeyVsData = + private Map>, Map> configKeyVsData = new ConcurrentHashMap<>(); private TransactionHistory controllerTxHistory = null; private TransactionHistory deviceUpdateHistory = null; @@ -226,33 +227,33 @@ public class HwvtepDeviceInfo { return mapTunnelToPhysicalSwitch; } - public boolean isKeyInTransit(Class> cls, DataObjectIdentifier key) { + public boolean isKeyInTransit(Class> cls, DataObjectIdentifier key) { DeviceData deviceData = HwvtepSouthboundUtil.getData(opKeyVsData, cls, key); return deviceData != null && DeviceDataStatus.IN_TRANSIT == deviceData.status; } - public boolean isConfigDataAvailable(Class> cls, DataObjectIdentifier key) { + public boolean isConfigDataAvailable(Class> cls, DataObjectIdentifier key) { return HwvtepSouthboundUtil.getData(configKeyVsData, cls, key) != null; } - public void updateConfigData(Class> cls, DataObjectIdentifier key, Object data) { + public void updateConfigData(Class> cls, DataObjectIdentifier key, Object data) { HwvtepSouthboundUtil.updateData(configKeyVsData, cls, key, new DeviceData(key, null, data, DeviceDataStatus.AVAILABLE)); } - public DeviceData getConfigData(Class> cls, DataObjectIdentifier key) { + public DeviceData getConfigData(Class> cls, DataObjectIdentifier key) { return HwvtepSouthboundUtil.getData(configKeyVsData, cls, key); } - public Map>, Map> getConfigData() { + public Map>, Map> getConfigData() { return Collections.unmodifiableMap(configKeyVsData); } - public void clearConfigData(Class> cls, DataObjectIdentifier key) { + public void clearConfigData(Class> cls, DataObjectIdentifier key) { HwvtepSouthboundUtil.clearData(configKeyVsData, cls, key); } - public void markKeyAsInTransit(Class> cls, DataObjectIdentifier key) { + public void markKeyAsInTransit(Class> cls, DataObjectIdentifier key) { LOG.debug("Marking device data as intransit {}", key); DeviceData deviceData = getDeviceOperData(cls, key); UUID uuid = null; @@ -266,7 +267,7 @@ public class HwvtepDeviceInfo { new DeviceData(key, uuid, data, DeviceDataStatus.IN_TRANSIT)); } - public void updateDeviceOperData(Class> cls, DataObjectIdentifier key, + public void updateDeviceOperData(Class> cls, DataObjectIdentifier key, UUID uuid, Object data) { LOG.debug("Updating device data {}", key); DeviceData deviceData = new DeviceData(key, uuid, data, DeviceDataStatus.AVAILABLE); @@ -274,7 +275,7 @@ public class HwvtepDeviceInfo { HwvtepSouthboundUtil.updateData(uuidVsData, cls, uuid, deviceData); } - public void clearDeviceOperData(Class> cls, DataObjectIdentifier key) { + public void clearDeviceOperData(Class> cls, DataObjectIdentifier key) { DeviceData deviceData = HwvtepSouthboundUtil.getData(opKeyVsData, cls, key); if (deviceData != null && deviceData.uuid != null) { HwvtepSouthboundUtil.clearData(uuidVsData, cls, deviceData.uuid); @@ -282,7 +283,7 @@ public class HwvtepDeviceInfo { HwvtepSouthboundUtil.clearData(opKeyVsData, cls, key); } - public void clearDeviceOperData(Class> cls) { + public void clearDeviceOperData(Class> cls) { Map iids = opKeyVsData.get(cls); if (iids != null && !iids.isEmpty()) { Iterator> it = iids.entrySet().iterator(); @@ -296,7 +297,7 @@ public class HwvtepDeviceInfo { } } - public void clearDeviceOperUUID(Class> cls, DataObjectIdentifier key, UUID uuid) { + public void clearDeviceOperUUID(Class> cls, DataObjectIdentifier key, UUID uuid) { LOG.debug("Clearing device data {}", key); if (uuidVsData.containsKey(cls) && uuidVsData.get(cls).containsKey(uuid)) { LOG.debug("Remove {} {} from device data.", connectionInstance.getNodeId().getValue(), cls.getSimpleName()); @@ -305,19 +306,19 @@ public class HwvtepDeviceInfo { HwvtepSouthboundUtil.clearData(opKeyVsData, cls, key); } - public DeviceData getDeviceOperData(Class> cls, UUID uuid) { + public DeviceData getDeviceOperData(Class> cls, UUID uuid) { return HwvtepSouthboundUtil.getData(uuidVsData, cls, uuid); } - public DeviceData getDeviceOperData(Class> cls, DataObjectIdentifier key) { + public DeviceData getDeviceOperData(Class> cls, DataObjectIdentifier key) { return HwvtepSouthboundUtil.getData(opKeyVsData, cls, key); } - public Map getDeviceOperData(Class> cls) { + public Map getDeviceOperData(Class> cls) { return opKeyVsData.get(cls); } - public DataObjectIdentifier getDeviceOperKey(final Class> cls, final UUID uuid) { + public DataObjectIdentifier getDeviceOperKey(final Class> cls, final UUID uuid) { DeviceData deviceData = HwvtepSouthboundUtil.getData(uuidVsData, cls, uuid); if (deviceData != null) { return deviceData.getKey(); @@ -325,7 +326,7 @@ public class HwvtepDeviceInfo { return null; } - public UUID getUUID(Class> cls, DataObjectIdentifier key) { + public UUID getUUID(Class> cls, DataObjectIdentifier key) { DeviceData data = HwvtepSouthboundUtil.getData(opKeyVsData, cls, key); if (data != null) { return data.uuid; @@ -333,7 +334,7 @@ public class HwvtepDeviceInfo { return null; } - public > void addJobToQueue(DependentJob job) { + public > void addJobToQueue(DependentJob job) { dependencyQueue.addToQueue(job); } @@ -349,7 +350,7 @@ public class HwvtepDeviceInfo { dependencyQueue.submit(() -> connectionInstance.transact(transactCommand)); } - public void clearInTransit(Class> cls, DataObjectIdentifier key) { + public void clearInTransit(Class> cls, DataObjectIdentifier key) { DeviceData deviceData = getDeviceOperData(cls, key); if (deviceData != null && deviceData.isInTransitState()) { if (deviceData.getData() != null) { @@ -452,7 +453,7 @@ public class HwvtepDeviceInfo { return connectionInstance; } - public void setConfigKeyVsData(Map>, Map>, Map> configKeyVsData) { this.configKeyVsData = configKeyVsData; } @@ -473,11 +474,11 @@ public class HwvtepDeviceInfo { deviceUpdateHistory.addToHistory(transactionType, object); } - public Map>, Map> getOperData() { + public Map>, Map> getOperData() { return Collections.unmodifiableMap(opKeyVsData); } - public Map>, Map> getUuidData() { + public Map>, Map> getUuidData() { return Collections.unmodifiableMap(uuidVsData); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundMapper.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundMapper.java index f57c09c16..3fd05c976 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundMapper.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundMapper.java @@ -148,9 +148,8 @@ public final class HwvtepSouthboundMapper { final VlanBindings vlanBindings) { return tpPath.toBuilder() .augmentation(HwvtepPhysicalPortAugmentation.class) - .child(VlanBindings.class, new VlanBindingsKey(vlanBindings.key())) + .child(VlanBindings.class, vlanBindings.key()) .build(); - } public static DataObjectReference createInstanceIdentifier() { diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundUtil.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundUtil.java index f46d4bb72..f5b36e0a2 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundUtil.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundUtil.java @@ -35,8 +35,8 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; +import org.opendaylight.yangtools.binding.DataObjectReference; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.data.impl.codec.DeserializationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -71,12 +71,12 @@ public final class HwvtepSouthboundUtil { } // FIXME: this should be an instance method - public static String serializeInstanceIdentifier(InstanceIdentifier iid) { + public static String serializeInstanceIdentifier(DataObjectReference iid) { return instanceIdentifierCodec.serialize(iid); } // FIXME: this should be an instance method - public static InstanceIdentifier deserializeInstanceIdentifier(String iidString) { + public static DataObjectReference deserializeInstanceIdentifier(String iidString) { try { return instanceIdentifierCodec.bindingDeserializer(iidString); } catch (DeserializationException e) { @@ -174,9 +174,7 @@ public final class HwvtepSouthboundUtil { if (optional != null && optional.isPresent()) { HwvtepGlobalAugmentation hwvtepNode = null; Node node = optional.orElseThrow(); - if (node instanceof HwvtepGlobalAugmentation) { - hwvtepNode = (HwvtepGlobalAugmentation) node; - } else if (node != null) { + if (node != null) { hwvtepNode = node.augmentation(HwvtepGlobalAugmentation.class); } if (hwvtepNode != null) { @@ -205,8 +203,8 @@ public final class HwvtepSouthboundUtil { LOG.debug(SCHEMA_VERSION_MISMATCH, column, table, "hw_vtep", ex.getMessage()); } - public static void updateData(Map>, Map> map, - Class> cls, K key, D data) { + public static void updateData(Map>, Map> map, + Class> cls, K key, D data) { LOG.debug("Updating data {} {} {}", cls, key, data); if (key == null) { return; @@ -217,8 +215,8 @@ public final class HwvtepSouthboundUtil { map.get(cls).put(key, data); } - public static D getData(Map>, Map> map, - Class> cls, K key) { + public static D getData(Map>, Map> map, + Class> cls, K key) { if (key == null) { return null; } @@ -228,8 +226,8 @@ public final class HwvtepSouthboundUtil { return null; } - public static boolean containsKey(Map>, Map> map, - Class> cls, K key) { + public static boolean containsKey(Map>, Map> map, + Class> cls, K key) { if (key == null) { return false; } @@ -239,8 +237,8 @@ public final class HwvtepSouthboundUtil { return false; } - public static void clearData(Map>, Map> map, - Class> cls, K key) { + public static void clearData(Map>, Map> map, + Class> cls, K key) { LOG.debug("Clearing data {} {}", cls, key); if (key == null) { return; diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepTableReader.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepTableReader.java index aa1cd1f3f..481ae7e36 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepTableReader.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepTableReader.java @@ -96,7 +96,7 @@ public class HwvtepTableReader { TerminationPoint.class, PhysicalLocator.class, VlanBindings.class, PhysicalPort.class); - private final ImmutableMap>, WhereClauseGetter> whereClauseGetters; + private final ImmutableMap>, WhereClauseGetter> whereClauseGetters; private final ImmutableClassToInstanceMap> tables; private final HwvtepConnectionInstance connectionInstance; @@ -111,7 +111,7 @@ public class HwvtepTableReader { } final Builder> tableBuilder = ImmutableClassToInstanceMap.>builder(); - final ImmutableMap.Builder>, WhereClauseGetter> whereBuilder = + final ImmutableMap.Builder>, WhereClauseGetter> whereBuilder = ImmutableMap.builderWithExpectedSize(4); if (dbSchema != null) { @@ -250,7 +250,7 @@ public class HwvtepTableReader { } @SuppressWarnings("checkstyle:IllegalCatch") - public Optional getHwvtepTableEntryUUID(final Class> cls, + public Optional getHwvtepTableEntryUUID(final Class> cls, final DataObjectIdentifier iid, final UUID existingUUID) { final TypedDatabaseSchema dbSchema; @@ -314,7 +314,7 @@ public class HwvtepTableReader { } @SuppressWarnings("checkstyle:IllegalCatch") - public List getHwvtepTableEntries(final Class> cls) { + public List getHwvtepTableEntries(final Class> cls) { final TypedDatabaseSchema dbSchema; try { dbSchema = connectionInstance.getSchema(HwvtepSchemaConstants.HARDWARE_VTEP).get(); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/InstanceIdentifierCodec.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/InstanceIdentifierCodec.java index 4f1b52734..12bd38560 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/InstanceIdentifierCodec.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/InstanceIdentifierCodec.java @@ -9,8 +9,8 @@ package org.opendaylight.ovsdb.hwvtepsouthbound; import java.util.Optional; import org.opendaylight.mdsal.dom.api.DOMSchemaService; +import org.opendaylight.yangtools.binding.DataObjectReference; import org.opendaylight.yangtools.binding.data.codec.api.BindingNormalizedNodeSerializer; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -67,21 +67,20 @@ public final class InstanceIdentifierCodec extends AbstractStringInstanceIdentif } // FIXME: ... and then this is a separate service built on top of dynamic lifecycle. - public String serialize(final InstanceIdentifier iid) { + public String serialize(final DataObjectReference iid) { YangInstanceIdentifier normalizedIid = bindingNormalizedNodeSerializer.toYangInstanceIdentifier(iid); return serialize(normalizedIid); } - public YangInstanceIdentifier getYangInstanceIdentifier(final InstanceIdentifier iid) { + public YangInstanceIdentifier getYangInstanceIdentifier(final DataObjectReference iid) { return bindingNormalizedNodeSerializer.toYangInstanceIdentifier(iid); } - public InstanceIdentifier bindingDeserializer(final String iidString) throws DeserializationException { + public DataObjectReference bindingDeserializer(final String iidString) throws DeserializationException { return bindingDeserializer(deserialize(iidString)); } - public InstanceIdentifier bindingDeserializer(final YangInstanceIdentifier yangIID) { - final var ref = bindingNormalizedNodeSerializer.fromYangInstanceIdentifier(yangIID); - return ref != null ? ref.toLegacy() : null; + public DataObjectReference bindingDeserializer(final YangInstanceIdentifier yangIID) { + return bindingNormalizedNodeSerializer.fromYangInstanceIdentifier(yangIID); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/cli/HwvtepCacheDisplayCmd.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/cli/HwvtepCacheDisplayCmd.java index aba4a3a49..5bc0a625c 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/cli/HwvtepCacheDisplayCmd.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/cli/HwvtepCacheDisplayCmd.java @@ -108,9 +108,9 @@ public class HwvtepCacheDisplayCmd implements Action { printStream.println(SECTION_SEPERATOR); } - private static void printEntry(PrintStream console, Map.Entry>, + private static void printEntry(PrintStream console, Map.Entry>, Map> entry) { - Class> cls = entry.getKey(); + Class> cls = entry.getKey(); var map = entry.getValue(); String clsName = cls.getSimpleName(); console.println(clsName + " - "); @@ -146,14 +146,14 @@ public class HwvtepCacheDisplayCmd implements Action { private static void printLogicalSwitches(PrintStream console, HwvtepDeviceInfo.DeviceData deviceData) { var ls = deviceData.getKey(); - console.print(ls.firstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue()); + console.print(ls.getFirstKeyOf(LogicalSwitches.class).getHwvtepNodeName().getValue()); } private static void printRemoteMcasts(PrintStream console, HwvtepDeviceInfo.DeviceData deviceData) { var remoteMcastMacsIid = deviceData.getKey(); - String macAddress = remoteMcastMacsIid.firstKeyOf(RemoteMcastMacs.class).getMacEntryKey().getValue(); + String macAddress = remoteMcastMacsIid.getFirstKeyOf(RemoteMcastMacs.class).getMacEntryKey().getValue(); String logicalSwitchRef = - getLogicalSwitchRef(remoteMcastMacsIid.firstKeyOf(RemoteMcastMacs.class).getLogicalSwitchRef()); + getLogicalSwitchRef(remoteMcastMacsIid.getFirstKeyOf(RemoteMcastMacs.class).getLogicalSwitchRef()); StringBuilder macEntryDetails = new StringBuilder(macAddress).append(" LogicalSwitchRef ") .append(logicalSwitchRef); console.print(macEntryDetails); @@ -161,9 +161,9 @@ public class HwvtepCacheDisplayCmd implements Action { private static void printRemoteUcasts(PrintStream console, HwvtepDeviceInfo.DeviceData deviceData) { var remoteUcastMacsIid = deviceData.getKey(); - String macAddress = remoteUcastMacsIid.firstKeyOf(RemoteUcastMacs.class).getMacEntryKey().getValue(); + String macAddress = remoteUcastMacsIid.getFirstKeyOf(RemoteUcastMacs.class).getMacEntryKey().getValue(); String logicalSwitchRef = - getLogicalSwitchRef(remoteUcastMacsIid.firstKeyOf(RemoteUcastMacs.class).getLogicalSwitchRef()); + getLogicalSwitchRef(remoteUcastMacsIid.getFirstKeyOf(RemoteUcastMacs.class).getLogicalSwitchRef()); StringBuilder macEntryDetails = new StringBuilder(macAddress).append(" LogicalSwitchRef ") .append(logicalSwitchRef); console.print(macEntryDetails); @@ -176,7 +176,7 @@ public class HwvtepCacheDisplayCmd implements Action { private static void printTerminationPoint(PrintStream console, HwvtepDeviceInfo.DeviceData deviceData) { var terminationPointIid = deviceData.getKey(); - console.print(terminationPointIid.firstKeyOf(TerminationPoint.class).getTpId().getValue()); + console.print(terminationPointIid.getFirstKeyOf(TerminationPoint.class).getTpId().getValue()); try { PhysicalPort physicalPort = (PhysicalPort) deviceData.getData(); console.print(" " + physicalPort.getVlanBindingsColumn().getData().keySet()); @@ -187,7 +187,7 @@ public class HwvtepCacheDisplayCmd implements Action { private static void printNode(PrintStream console, HwvtepDeviceInfo.DeviceData deviceData) { var ls = deviceData.getKey(); - console.print(ls.firstKeyOf(Node.class).getNodeId().getValue()); + console.print(ls.getFirstKeyOf(Node.class).getNodeId().getValue()); } private static void printCommon(PrintStream console, HwvtepDeviceInfo.DeviceData deviceData) { @@ -201,9 +201,9 @@ public class HwvtepCacheDisplayCmd implements Action { console.println(deviceData.getUuid()); } - private static void printEntryUUID(PrintStream console, Map.Entry>, Map>, Map> entry) { - Class> cls = entry.getKey(); + Class> cls = entry.getKey(); Map map = entry.getValue(); String clsName = cls.getSimpleName(); console.println(clsName + " - "); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/AbstractTransactCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/AbstractTransactCommand.java index f43e85058..559334f33 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/AbstractTransactCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/AbstractTransactCommand.java @@ -44,8 +44,8 @@ import org.opendaylight.yangtools.binding.PropertyIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class AbstractTransactCommand, I extends Key, - A extends Augmentation> implements TransactCommand { +public abstract class AbstractTransactCommand, I extends Key, + A extends Augmentation> implements TransactCommand { private static final Logger LOG = LoggerFactory.getLogger(AbstractTransactCommand.class); protected static final UUID TXUUID = new UUID("TXUUID"); @@ -80,14 +80,14 @@ public abstract class AbstractTransactCommand, I ext return getOperationalState().getConnectionInstance().ops(); } - void updateCurrentTxDeleteData(final Class> cls, final DataObjectIdentifier key, + void updateCurrentTxDeleteData(final Class> cls, final DataObjectIdentifier key, final T data) { hwvtepOperationalState.updateCurrentTxDeleteData(cls, key); markKeyAsInTransit(cls, key); addToUpdates(key, data); } - void updateCurrentTxData(final Class> cls, final DataObjectIdentifier key, + void updateCurrentTxData(final Class> cls, final DataObjectIdentifier key, final UUID uuid, final T data) { hwvtepOperationalState.updateCurrentTxData(cls, key, uuid); markKeyAsInTransit(cls, key); @@ -98,8 +98,8 @@ public abstract class AbstractTransactCommand, I ext T oldData = null; Type type = getClass().getGenericSuperclass(); Type classType = ((ParameterizedType) type).getActualTypeArguments()[0]; - if (getConfigData((Class>) classType, key) != null) { - oldData = (T) getConfigData((Class>) classType, key).getData(); + if (getConfigData((Class>) classType, key) != null) { + oldData = (T) getConfigData((Class>) classType, key).getData(); } updates.add(new MdsalUpdate<>(key, data, oldData)); } @@ -117,7 +117,7 @@ public abstract class AbstractTransactCommand, I ext Map confingDependencies = Map.of(); if (isDeleteCmd()) { - if (deviceInfo.isKeyInTransit((Class>) classType, key)) { + if (deviceInfo.isKeyInTransit((Class>) classType, key)) { inTransitDependencies = new HashMap<>(); inTransitDependencies.put(classType, List.of(key)); } @@ -128,7 +128,7 @@ public abstract class AbstractTransactCommand, I ext confingDependencies.remove(TerminationPoint.class); //If this key itself is in transit wait for the response of this key itself - if (deviceInfo.isKeyInTransit((Class>) classType, key) + if (deviceInfo.isKeyInTransit((Class>) classType, key) || deviceInfo.isKeyInDependencyQueue(key)) { inTransitDependencies.put(classType, List.of(key)); } @@ -138,9 +138,9 @@ public abstract class AbstractTransactCommand, I ext && HwvtepSouthboundUtil.isEmptyMap(inTransitDependencies)) { doDeviceTransaction(transaction, nodeIid, data, key, extraData); if (isDeleteCmd()) { - getDeviceInfo().clearConfigData((Class>) classType, key); + getDeviceInfo().clearConfigData((Class>) classType, key); } else { - getDeviceInfo().updateConfigData((Class>) classType, key, data); + getDeviceInfo().updateConfigData((Class>) classType, key, data); } } @@ -154,7 +154,7 @@ public abstract class AbstractTransactCommand, I ext final TransactionBuilder transactionBuilder) { clone.hwvtepOperationalState = operationalState; HwvtepDeviceInfo.DeviceData deviceData = - getDeviceInfo().getConfigData((Class>)getClassType(), key); + getDeviceInfo().getConfigData((Class>)getClassType(), key); T latest = data; if (deviceData != null && deviceData.getData() != null) { latest = (T) deviceData.getData(); @@ -191,7 +191,7 @@ public abstract class AbstractTransactCommand, I ext final TransactionBuilder transactionBuilder) { clone.hwvtepOperationalState = operationalState; HwvtepDeviceInfo.DeviceData deviceData = getDeviceInfo() - .getConfigData((Class>)getClassType(), key); + .getConfigData((Class>)getClassType(), key); T latest = data; if (deviceData != null && deviceData.getData() != null) { latest = (T) deviceData.getData(); @@ -234,10 +234,7 @@ public abstract class AbstractTransactCommand, I ext return null; } ParameterizedType parameterizedType = (ParameterizedType) getClass().getGenericSuperclass(); - Class> augType = - (Class>) parameterizedType.getActualTypeArguments()[1]; - Augmentation augmentation = node.augmentation(augType); - return (A) augmentation; + return node.augmentation((Class) parameterizedType.getActualTypeArguments()[1]); } protected Map getData(final A augmentation) { @@ -266,7 +263,8 @@ public abstract class AbstractTransactCommand, I ext if (!Objects.equals(hwvtepOperationalState.getConnectionInstance().getInstanceIdentifier(), key)) { continue; } - Class> classType = (Class>) getClassType(); + Class> classType = + (Class>) getClassType(); List removed; if (getOperationalState().isInReconciliation()) { removed = getRemoved(change); @@ -290,7 +288,8 @@ public abstract class AbstractTransactCommand, I ext if (!Objects.equals(hwvtepOperationalState.getConnectionInstance().getInstanceIdentifier(), key)) { continue; } - Class> classType = (Class>) getClassType(); + Class> classType = + (Class>) getClassType(); List updated = null; if (getOperationalState().isInReconciliation()) { updated = getUpdated(change); @@ -443,7 +442,7 @@ public abstract class AbstractTransactCommand, I ext getOperationalState().getDeviceInfo().addToControllerTx(transactionType, element); } - public HwvtepDeviceInfo.DeviceData fetchDeviceData(final Class> cls, + public HwvtepDeviceInfo.DeviceData fetchDeviceData(final Class> cls, final DataObjectIdentifier key) { HwvtepDeviceInfo.DeviceData deviceData = getDeviceOpData(cls, key); if (deviceData == null) { @@ -460,30 +459,30 @@ public abstract class AbstractTransactCommand, I ext return deviceData; } - public > void addJobToQueue(final DependentJob job) { + public > void addJobToQueue(final DependentJob job) { hwvtepOperationalState.getDeviceInfo().putKeyInDependencyQueue(job.getKey()); hwvtepOperationalState.getDeviceInfo().addJobToQueue(job); } - public void markKeyAsInTransit(final Class> cls, final DataObjectIdentifier key) { + public void markKeyAsInTransit(final Class> cls, final DataObjectIdentifier key) { hwvtepOperationalState.getDeviceInfo().markKeyAsInTransit(cls, key); } - public HwvtepDeviceInfo.DeviceData getDeviceOpData(final Class> cls, + public HwvtepDeviceInfo.DeviceData getDeviceOpData(final Class> cls, final DataObjectIdentifier key) { return getOperationalState().getDeviceInfo().getDeviceOperData(cls, key); } - public void clearConfigData(final Class> cls, final DataObjectIdentifier key) { + public void clearConfigData(final Class> cls, final DataObjectIdentifier key) { hwvtepOperationalState.getDeviceInfo().clearConfigData(cls, key); } - public HwvtepDeviceInfo.DeviceData getConfigData(final Class> cls, + public HwvtepDeviceInfo.DeviceData getConfigData(final Class> cls, final DataObjectIdentifier key) { return hwvtepOperationalState.getDeviceInfo().getConfigData(cls, key); } - public void updateConfigData(final Class> cls, final DataObjectIdentifier key, + public void updateConfigData(final Class> cls, final DataObjectIdentifier key, final Object data) { hwvtepOperationalState.getDeviceInfo().updateConfigData(cls, key, data); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependentJob.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependentJob.java index 03f3991fd..864fa8616 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependentJob.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependentJob.java @@ -23,7 +23,7 @@ import org.opendaylight.yangtools.binding.EntryObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class DependentJob> { +public abstract class DependentJob> { private static final Logger LOG = LoggerFactory.getLogger(DependentJob.class); private static final Predicate DATA_INTRANSIT = @@ -131,7 +131,7 @@ public abstract class DependentJob> { public void onSuccess() { } - public abstract static class ConfigWaitingJob> extends DependentJob { + public abstract static class ConfigWaitingJob> extends DependentJob { public ConfigWaitingJob(DataObjectIdentifier key, T data, Map, List> dependencies) { @@ -148,7 +148,7 @@ public abstract class DependentJob> { } } - public abstract static class OpWaitingJob> extends DependentJob { + public abstract static class OpWaitingJob> extends DependentJob { public OpWaitingJob(DataObjectIdentifier key, T data, Map, List> dependencies, diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/EmptyDependencyGetter.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/EmptyDependencyGetter.java index b09c476e3..7ae893509 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/EmptyDependencyGetter.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/EmptyDependencyGetter.java @@ -9,8 +9,8 @@ package org.opendaylight.ovsdb.hwvtepsouthbound.transact; import java.util.Collections; import java.util.List; +import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public final class EmptyDependencyGetter extends UnMetDependencyGetter { @@ -20,12 +20,12 @@ public final class EmptyDependencyGetter extends UnMetDependencyGetter { } @Override - public List> getLogicalSwitchDependencies(EntryObject data) { + public List> getLogicalSwitchDependencies(EntryObject data) { return Collections.emptyList(); } @Override - public List> getTerminationPointDependencies(EntryObject data) { + public List> getTerminationPointDependencies(EntryObject data) { return Collections.emptyList(); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/HwvtepOperationalState.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/HwvtepOperationalState.java index dcbcdf2ae..992838100 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/HwvtepOperationalState.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/HwvtepOperationalState.java @@ -69,9 +69,9 @@ public class HwvtepOperationalState { HashMap, UUID> inflightLocators = new HashMap<>(); private final HwvtepDeviceInfo deviceInfo; private final HwvtepConnectionInstance connectionInstance; - private final Map>, Map> currentTxUUIDs = + private final Map>, Map> currentTxUUIDs = new ConcurrentHashMap<>(); - private final Map>, Map> currentTxDeletedKeys = + private final Map>, Map> currentTxDeletedKeys = new ConcurrentHashMap<>(); /* stores the modified and deleted data for each child type of each node id @@ -80,8 +80,9 @@ public class HwvtepOperationalState { child type is the child of hwvtep Global augmentation */ private Map, - Pair>, List>>, - Map>, List>>>> modifiedData = new HashMap<>(); + Pair>, List>>, + Map>, List>>>> modifiedData = + new HashMap<>(); private boolean inReconciliation = false; private final DataBroker db; private final Collection> changes; @@ -309,34 +310,35 @@ public class HwvtepOperationalState { return deviceInfo; } - public void updateCurrentTxData(final Class> cls, final DataObjectIdentifier key, + public void updateCurrentTxData(final Class> cls, final DataObjectIdentifier key, final UUID uuid) { HwvtepSouthboundUtil.updateData(currentTxUUIDs, cls, key, uuid); } - public void updateCurrentTxDeleteData(final Class> cls, + public void updateCurrentTxDeleteData(final Class> cls, final DataObjectIdentifier key) { HwvtepSouthboundUtil.updateData(currentTxDeletedKeys, cls, key, Boolean.TRUE); } - public UUID getUUIDFromCurrentTx(final Class> cls, final DataObjectIdentifier key) { + public UUID getUUIDFromCurrentTx(final Class> cls, final DataObjectIdentifier key) { return HwvtepSouthboundUtil.getData(currentTxUUIDs, cls, key); } - public boolean isKeyPartOfCurrentTx(final Class> cls, final DataObjectIdentifier key) { + public boolean isKeyPartOfCurrentTx(final Class> cls, + final DataObjectIdentifier key) { return HwvtepSouthboundUtil.containsKey(currentTxUUIDs, cls, key); } - public Set getDeletedKeysInCurrentTx(final Class> cls) { + public Set getDeletedKeysInCurrentTx(final Class> cls) { if (currentTxDeletedKeys.containsKey(cls)) { return currentTxDeletedKeys.get(cls).keySet(); } return Collections.emptySet(); } - public List> getUpdatedData(final DataObjectIdentifier key, - final Class> cls) { - List> result = null; + public List> getUpdatedData(final DataObjectIdentifier key, + final Class> cls) { + List> result = null; if (modifiedData.get(key) != null && modifiedData.get(key).getLeft() != null) { result = modifiedData.get(key).getLeft().get(cls); } @@ -346,9 +348,9 @@ public class HwvtepOperationalState { return result; } - public List> getDeletedData(final DataObjectIdentifier key, - final Class> cls) { - List> result = null; + public List> getDeletedData(final DataObjectIdentifier key, + final Class> cls) { + List> result = null; if (modifiedData.get(key) != null && modifiedData.get(key).getRight() != null) { result = modifiedData.get(key).getRight().get(cls); } @@ -359,8 +361,8 @@ public class HwvtepOperationalState { } public void setModifiedData(final Map, - Pair>, List>>, - Map>, List>>>> modifiedData) { + Pair>, List>>, + Map>, List>>>> modifiedData) { this.modifiedData = modifiedData; } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/MdsalUpdate.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/MdsalUpdate.java index 42cccf6c2..48c8065b9 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/MdsalUpdate.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/MdsalUpdate.java @@ -10,7 +10,7 @@ package org.opendaylight.ovsdb.hwvtepsouthbound.transact; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -public class MdsalUpdate> { +public class MdsalUpdate> { private DataObjectIdentifier key; private T newData; diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommand.java index a50a16317..944db40b0 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommand.java @@ -12,7 +12,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -public interface TransactCommand> { +public interface TransactCommand> { void execute(TransactionBuilder transaction); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommandAggregator.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommandAggregator.java index 408a33204..01e7d48ca 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommandAggregator.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactCommandAggregator.java @@ -26,12 +26,8 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yangtools.binding.DataObject; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class TransactCommandAggregator implements TransactCommand { - private static final Logger LOG = LoggerFactory.getLogger(TransactCommandAggregator.class); - private final List commands = new ArrayList<>(); private final AtomicInteger retryCount = new AtomicInteger(HwvtepSouthboundConstants.CHAIN_RETRY_COUNT); private final HwvtepOperationalState operationalState; @@ -41,8 +37,8 @@ public class TransactCommandAggregator implements TransactCommand { child type is the child of hwvtep Global augmentation */ private final Map, - Pair>, List>>, - Map>, List>>>> modifiedData = new HashMap<>(); + Pair>, List>>, + Map>, List>>>> modifiedData = new HashMap<>(); public TransactCommandAggregator(HwvtepOperationalState state, Collection> changes) { @@ -90,8 +86,8 @@ public class TransactCommandAggregator implements TransactCommand { for (DataTreeModification change : changes) { final DataObjectIdentifier key = change.path(); final DataObjectModification mod = change.getRootNode(); - final Map>, List>> updatedData = new HashMap<>(); - final Map>, List>> deletedData = new HashMap<>(); + final Map>, List>> updatedData = new HashMap<>(); + final Map>, List>> deletedData = new HashMap<>(); extractDataChanged(key, mod, updatedData, deletedData); modifiedData.put(key, Pair.of(updatedData, deletedData)); operationalState.setModifiedData(modifiedData); @@ -105,15 +101,15 @@ public class TransactCommandAggregator implements TransactCommand { } private static boolean isMacOnlyUpdate( - final Map>, List>> updatedData, - final Map>, List>> deletedData) { + final Map>, List>> updatedData, + final Map>, List>> deletedData) { return updatedData.containsKey(RemoteUcastMacs.class) && updatedData.size() == 1 || deletedData.containsKey(RemoteUcastMacs.class) && deletedData.size() == 1; } private static void extractDataChanged(final DataObjectIdentifier key, final DataObjectModification mod, - final Map>, List>> updatedData, - final Map>, List>> deletedData) { + final Map>, List>> updatedData, + final Map>, List>> deletedData) { extractDataChanged(mod.modifiedChildren(), updatedData, deletedData); DataObjectModification aug = mod.getModifiedAugmentation( @@ -130,18 +126,18 @@ public class TransactCommandAggregator implements TransactCommand { private static void extractDataChanged( final Collection> children, - final Map>, List>> updatedData, - final Map>, List>> deletedData) { + final Map>, List>> updatedData, + final Map>, List>> deletedData) { if (children == null) { return; } for (DataObjectModification child : children) { - Class> childClass = (Class>) child.dataType(); + Class> childClass = (Class>) child.dataType(); switch (child.modificationType()) { case WRITE: case SUBTREE_MODIFIED: DataObject dataAfter = child.dataAfter(); - if (!(dataAfter instanceof EntryObject identifiable)) { + if (!(dataAfter instanceof EntryObject identifiable)) { continue; } DataObject before = child.dataBefore(); @@ -157,7 +153,7 @@ public class TransactCommandAggregator implements TransactCommand { break; case DELETE: DataObject dataBefore = child.dataBefore(); - if (!(dataBefore instanceof EntryObject identifiable)) { + if (!(dataBefore instanceof EntryObject identifiable)) { continue; } addToUpdatedData(deletedData, childClass, identifiable); @@ -168,8 +164,9 @@ public class TransactCommandAggregator implements TransactCommand { } } - private static void addToUpdatedData(Map>, List>> updatedData, - Class> childClass, EntryObject identifiable) { + private static void addToUpdatedData( + Map>, List>> updatedData, + Class> childClass, EntryObject identifiable) { updatedData.computeIfAbsent(childClass, (cls) -> new ArrayList<>()); updatedData.get(childClass).add(identifiable); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetter.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetter.java index e35844314..a01cb624a 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetter.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetter.java @@ -11,7 +11,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; @@ -26,7 +25,7 @@ import org.opendaylight.yangtools.binding.EntryObject; /** * Utility class to retrieve the unmet dependencies (config/operational) of the given object. */ -public abstract class UnMetDependencyGetter> { +public abstract class UnMetDependencyGetter> { private final ConfigDependencyGetter configDependencyGetter = new ConfigDependencyGetter(); private final InTransitDependencyGetter inTransitDependencyGetter = new InTransitDependencyGetter(); @@ -39,7 +38,7 @@ public abstract class UnMetDependencyGetter> { * @param data The data object * @return The depenencies */ - public Map>, List> getInTransitDependencies( + public Map>, List> getInTransitDependencies( HwvtepOperationalState opState, T data) { return inTransitDependencyGetter.retrieveUnMetDependencies(opState, opState.getDeviceInfo(), data); } @@ -52,23 +51,23 @@ public abstract class UnMetDependencyGetter> { * @param data The data object * @return the depenencies */ - public Map>, List> getUnMetConfigDependencies( + public Map>, List> getUnMetConfigDependencies( HwvtepOperationalState opState, T data) { return configDependencyGetter.retrieveUnMetDependencies(opState, opState.getDeviceInfo(), data); } abstract class DependencyGetter { - Map>, List> retrieveUnMetDependencies( + Map>, List> retrieveUnMetDependencies( HwvtepOperationalState opState, HwvtepDeviceInfo deviceInfo, T data) { - Map>, List> result = new HashMap<>(); - Map>, List>> allKeys = new HashMap<>(); + Map>, List> result = new HashMap<>(); + Map>, List>> allKeys = new HashMap<>(); allKeys.put(LogicalSwitches.class, getLogicalSwitchDependencies(data)); allKeys.put(TerminationPoint.class, getTerminationPointDependencies(data)); - for (Entry>, List>> entry : allKeys.entrySet()) { - Class> cls = entry.getKey(); + for (var entry : allKeys.entrySet()) { + Class> cls = entry.getKey(); List> keysToCheck = entry.getValue(); for (DataObjectIdentifier key : keysToCheck) { if (!isDependencyMet(opState, deviceInfo, cls, key)) { @@ -79,9 +78,9 @@ public abstract class UnMetDependencyGetter> { return result; } - Map>, List> addToResultMap( - Map>, List> result, - Class> cls, DataObjectIdentifier key) { + Map>, List> addToResultMap( + Map>, List> result, + Class> cls, DataObjectIdentifier key) { if (null == result) { result = new HashMap<>(); } @@ -93,19 +92,19 @@ public abstract class UnMetDependencyGetter> { } abstract boolean isDependencyMet(HwvtepOperationalState opState, HwvtepDeviceInfo deviceInfo, - Class> cls, DataObjectIdentifier key); + Class> cls, DataObjectIdentifier key); } class ConfigDependencyGetter extends DependencyGetter { @Override boolean isDependencyMet(HwvtepOperationalState opState, HwvtepDeviceInfo deviceInfo, - Class> cls, + Class> cls, DataObjectIdentifier key) { return deviceInfo.isConfigDataAvailable(cls, key) || isConfigDataAvailable(opState, cls, key); } boolean isConfigDataAvailable(HwvtepOperationalState opState, - Class> cls, + Class> cls, DataObjectIdentifier key) { DataBroker db = opState.getConnectionInstance().getDataBroker(); Optional data = HwvtepSouthboundUtil.readNode(db, LogicalDatastoreType.CONFIGURATION, key); @@ -120,7 +119,7 @@ public abstract class UnMetDependencyGetter> { class InTransitDependencyGetter extends DependencyGetter { @Override boolean isDependencyMet(HwvtepOperationalState opState, HwvtepDeviceInfo deviceInfo, - Class> cls, DataObjectIdentifier key) { + Class> cls, DataObjectIdentifier key) { return opState.isKeyPartOfCurrentTx(cls, key) || !deviceInfo.isKeyInTransit(cls, key); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/AbstractTransactionCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/AbstractTransactionCommand.java index 356c853ff..277d84160 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/AbstractTransactionCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/AbstractTransactionCommand.java @@ -31,8 +31,8 @@ public abstract class AbstractTransactionCommand implement private final TableUpdates updates; private final DatabaseSchema dbSchema; protected final HwvtepConnectionInstance key; - protected Set>, DataObjectIdentifier>> addedKeys = new HashSet<>(); - protected Set>, DataObjectIdentifier>> deletedKeys = new HashSet<>(); + protected Set>, DataObjectIdentifier>> addedKeys = new HashSet<>(); + protected Set>, DataObjectIdentifier>> deletedKeys = new HashSet<>(); protected HwvtepDeviceInfo deviceInfo; @@ -69,12 +69,12 @@ public abstract class AbstractTransactionCommand implement deviceInfo.addToDeviceUpdate(transactionType, element); } - public void clearDeviceOpUUID(Class> cls, DataObjectIdentifier iid, UUID uuid) { + public void clearDeviceOpUUID(Class> cls, DataObjectIdentifier iid, UUID uuid) { deviceInfo.clearDeviceOperUUID(cls, iid, uuid); } - public void addToDeleteTx(ReadWriteTransaction tx, Class> cls, DataObjectIdentifier iid, - UUID uuid) { + public void addToDeleteTx(ReadWriteTransaction tx, Class> cls, + DataObjectIdentifier iid, UUID uuid) { if (deviceInfo.isAvailableInOperDs(cls, iid)) { tx.delete(LogicalDatastoreType.OPERATIONAL, iid); } @@ -82,7 +82,7 @@ public abstract class AbstractTransactionCommand implement clearDeviceOpUUID(cls, iid, uuid); } - public void addToUpdateTx(Class> cls, DataObjectIdentifier iid, UUID uuid, + public void addToUpdateTx(Class> cls, DataObjectIdentifier iid, UUID uuid, Object southboundData) { addedKeys.add(Pair.of(cls, iid)); deviceInfo.updateDeviceOperData(cls, iid, uuid, southboundData); diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalDataChangeListener.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalDataChangeListener.java index a496b842c..7e3ca5f1c 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalDataChangeListener.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalDataChangeListener.java @@ -72,7 +72,7 @@ public class HwvtepOperationalDataChangeListener implements DataTreeChangeListen } private void updateDeviceOpData(DataObjectIdentifier key, DataObjectModification mod) { - Class> childClass = (Class>) mod.dataType(); + Class> childClass = (Class>) mod.dataType(); var instanceIdentifier = getKey(key, mod, mod.dataAfter()); switch (mod.modificationType()) { case WRITE: diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/TransactionInvokerImplTest.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/TransactionInvokerImplTest.java index 7e287bdf4..c712588c7 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/TransactionInvokerImplTest.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/TransactionInvokerImplTest.java @@ -35,7 +35,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -106,9 +105,9 @@ public class TransactionInvokerImplTest extends AbstractConcurrentDataBrokerTest sleepingPillStartedLatch.await(5, TimeUnit.SECONDS); //Now add the commands which will be picked up in one lot - invoker.invoke(new AddNodeCmd(nodeIid1.toLegacy(), ft1)); + invoker.invoke(new AddNodeCmd(nodeIid1, ft1)); invoker.invoke(nullPointerPill); - invoker.invoke(new AddNodeCmd(nodeIid2.toLegacy(), ft2)); + invoker.invoke(new AddNodeCmd(nodeIid2, ft2)); sleepingPillEndLatch.countDown(); @@ -120,7 +119,7 @@ public class TransactionInvokerImplTest extends AbstractConcurrentDataBrokerTest nullPointerPillStart.await(5, TimeUnit.SECONDS); //make sure that any commands which are submitted after the previous failure run smoothly - invoker.invoke(new AddNodeCmd(nodeIid3.toLegacy(), ft3)); + invoker.invoke(new AddNodeCmd(nodeIid3, ft3)); ft3.get(5, TimeUnit.SECONDS); } @@ -136,9 +135,9 @@ public class TransactionInvokerImplTest extends AbstractConcurrentDataBrokerTest } private static class AddNodeCmd extends DefaultTransactionComamndImpl { - InstanceIdentifier iid; + DataObjectIdentifier iid; - AddNodeCmd(final InstanceIdentifier iid, final SettableFuture ft) { + AddNodeCmd(final DataObjectIdentifier iid, final SettableFuture ft) { super(ft); this.iid = iid; } @@ -146,24 +145,23 @@ public class TransactionInvokerImplTest extends AbstractConcurrentDataBrokerTest @Override public void execute(final ReadWriteTransaction transaction) { NodeBuilder nodeBuilder = new NodeBuilder(); - nodeBuilder.setNodeId(iid.firstKeyOf(Node.class).getNodeId()); + nodeBuilder.setNodeId(iid.getFirstKeyOf(Node.class).getNodeId()); nodeBuilder.addAugmentation(new HwvtepGlobalAugmentationBuilder().build()); - transaction.mergeParentStructurePut(LogicalDatastoreType.CONFIGURATION, iid.toIdentifier(), - nodeBuilder.build()); + transaction.mergeParentStructurePut(LogicalDatastoreType.CONFIGURATION, iid, nodeBuilder.build()); } } private static class DeleteNodeCmd extends DefaultTransactionComamndImpl { - InstanceIdentifier iid; + DataObjectIdentifier iid; - DeleteNodeCmd(final InstanceIdentifier iid, final SettableFuture ft) { + DeleteNodeCmd(final DataObjectIdentifier iid, final SettableFuture ft) { super(ft); this.iid = iid; } @Override public void execute(final ReadWriteTransaction transaction) { - transaction.delete(LogicalDatastoreType.CONFIGURATION, iid.toIdentifier()); + transaction.delete(LogicalDatastoreType.CONFIGURATION, iid); } } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependencyQueueTest.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependencyQueueTest.java index ed444cf65..ddc889208 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependencyQueueTest.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/DependencyQueueTest.java @@ -25,7 +25,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitchesKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacs; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacsKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.EntryObject; @@ -43,7 +42,7 @@ public class DependencyQueueTest extends DataChangeListenerTestBase { RemoteMcastMacs mac; DataObjectIdentifier macIid; DataObjectIdentifier lsIid; - Map>, List> unMetDependencies; + Map>, List> unMetDependencies; void setupForTest() throws Exception { mcastMacDataValidator = McastMacsRemoteUpdateCommand.MCAST_MAC_DATA_VALIDATOR; @@ -54,7 +53,7 @@ public class DependencyQueueTest extends DataChangeListenerTestBase { .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName("ls0"))) .build(); macIid = nodeIid.toBuilder().augmentation(HwvtepGlobalAugmentation.class) - .child(RemoteMcastMacs.class, new RemoteMcastMacsKey(mac.key())) + .child(RemoteMcastMacs.class, mac.key()) .build(); } diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetterTest.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetterTest.java index 65774e31f..e6224121a 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetterTest.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/UnMetDependencyGetterTest.java @@ -34,7 +34,7 @@ public class UnMetDependencyGetterTest extends DataChangeListenerTestBase { HwvtepOperationalState opState; RemoteMcastMacs mac; DataObjectIdentifier lsIid; - Map>, List> unMetDependencies; + Map>, List> unMetDependencies; void setupForTest() { mcastMacDataValidator = McastMacsRemoteUpdateCommand.MCAST_MAC_DATA_VALIDATOR; diff --git a/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml index f6ff6880b..a3a1380f7 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml @@ -9,7 +9,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent karaf4-parent - 14.3.1 + 15.0.2 4.0.0 diff --git a/hwvtepsouthbound/pom.xml b/hwvtepsouthbound/pom.xml index 3ff01ae8a..82127df5c 100644 --- a/hwvtepsouthbound/pom.xml +++ b/hwvtepsouthbound/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent odlparent-lite - 14.3.1 + 15.0.2 diff --git a/library/artifacts/pom.xml b/library/artifacts/pom.xml index e9058de27..a6413f571 100644 --- a/library/artifacts/pom.xml +++ b/library/artifacts/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 15.0.2 diff --git a/library/features/features/pom.xml b/library/features/features/pom.xml index c661acec6..4e25b61b1 100644 --- a/library/features/features/pom.xml +++ b/library/features/features/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent feature-repo-parent - 14.3.1 + 15.0.2 diff --git a/library/features/odl-ovsdb-library/pom.xml b/library/features/odl-ovsdb-library/pom.xml index cc991b60f..770fb9939 100644 --- a/library/features/odl-ovsdb-library/pom.xml +++ b/library/features/odl-ovsdb-library/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 15.0.2 @@ -41,7 +41,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.aaa odl-aaa-cert - 0.23.2 + 0.24.1 xml features diff --git a/library/features/odl-ovsdb-library/src/main/feature/feature.xml b/library/features/odl-ovsdb-library/src/main/feature/feature.xml index c80abc3b4..93cc91b1e 100644 --- a/library/features/odl-ovsdb-library/src/main/feature/feature.xml +++ b/library/features/odl-ovsdb-library/src/main/feature/feature.xml @@ -8,9 +8,9 @@ and is available at http://www.eclipse.org/legal/epl-v10.html --> - odl-jackson-2 - odl-netty-4 - odl-aaa-cert + odl-jackson-2 + odl-netty-4 + odl-aaa-cert mvn:org.opendaylight.ovsdb/library/${project.version}/cfg/config diff --git a/library/features/pom.xml b/library/features/pom.xml index ffde3d136..c3f593dda 100644 --- a/library/features/pom.xml +++ b/library/features/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent odlparent-lite - 14.3.1 + 15.0.2 org.opendaylight.ovsdb diff --git a/library/karaf/pom.xml b/library/karaf/pom.xml index c6435fe34..07580bedf 100644 --- a/library/karaf/pom.xml +++ b/library/karaf/pom.xml @@ -9,7 +9,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent karaf4-parent - 14.3.1 + 15.0.2 4.0.0 diff --git a/library/pom.xml b/library/pom.xml index 7a9c5196d..1b216f6e3 100644 --- a/library/pom.xml +++ b/library/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 15.0.2 diff --git a/pom.xml b/pom.xml index 0e3efeb53..4d75352dc 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 15.0.2 diff --git a/schemas/pom.xml b/schemas/pom.xml index f9c22d28d..4d8cc8f3d 100644 --- a/schemas/pom.xml +++ b/schemas/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 15.0.2 diff --git a/southbound/pom.xml b/southbound/pom.xml index 4432008bf..1ae8bc46d 100644 --- a/southbound/pom.xml +++ b/southbound/pom.xml @@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent odlparent-lite - 14.3.1 + 15.0.2 diff --git a/southbound/southbound-artifacts/pom.xml b/southbound/southbound-artifacts/pom.xml index ec2c9ea13..e5f03c576 100644 --- a/southbound/southbound-artifacts/pom.xml +++ b/southbound/southbound-artifacts/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 15.0.2 diff --git a/southbound/southbound-features/features/pom.xml b/southbound/southbound-features/features/pom.xml index 7528a9f63..ef35b85f0 100644 --- a/southbound/southbound-features/features/pom.xml +++ b/southbound/southbound-features/features/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent feature-repo-parent - 14.3.1 + 15.0.2 diff --git a/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml index 161cdc8a2..b26aa53ff 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 15.0.2 @@ -29,7 +29,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 16.0.3 + 17.0.1 pom import diff --git a/southbound/southbound-features/odl-ovsdb-southbound-api/src/main/feature/feature.xml b/southbound/southbound-features/odl-ovsdb-southbound-api/src/main/feature/feature.xml index d485a2639..7db3d45dd 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-api/src/main/feature/feature.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-api/src/main/feature/feature.xml @@ -8,7 +8,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html --> - odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal - odl-mdsal-model-odl-l2-types + odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal + odl-mdsal-model-odl-l2-types diff --git a/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml index 9e8242112..ea7b861ef 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 15.0.2 @@ -30,7 +30,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.netconf netconf-artifacts - 11.0.0 + 12.0.1 import pom @@ -47,7 +47,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.netconf - odl-restconf + odl-restconf-nb xml features diff --git a/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/src/main/feature/feature.xml b/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/src/main/feature/feature.xml index bc30bc4db..6e746f784 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/src/main/feature/feature.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/src/main/feature/feature.xml @@ -8,6 +8,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html --> - odl-restconf + odl-restconf-nb diff --git a/southbound/southbound-features/odl-ovsdb-southbound-impl-ui/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-impl-ui/pom.xml index 89907a1bc..f7971f856 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-impl-ui/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-impl-ui/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 15.0.2 @@ -30,7 +30,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.netconf netconf-artifacts - 11.0.0 + 12.0.1 import pom diff --git a/southbound/southbound-features/odl-ovsdb-southbound-impl-ui/src/main/feature/feature.xml b/southbound/southbound-features/odl-ovsdb-southbound-impl-ui/src/main/feature/feature.xml index d5ef5bc27..1430226ba 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-impl-ui/src/main/feature/feature.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-impl-ui/src/main/feature/feature.xml @@ -8,6 +8,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html --> - odl-restconf-openapi + odl-restconf-openapi diff --git a/southbound/southbound-features/odl-ovsdb-southbound-impl/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-impl/pom.xml index 4cd202dd9..1350277d3 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-impl/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-impl/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 15.0.2 @@ -30,7 +30,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.infrautils infrautils-artifacts - 7.1.12 + 8.0.3 pom import diff --git a/southbound/southbound-features/odl-ovsdb-southbound-impl/src/main/feature/feature.xml b/southbound/southbound-features/odl-ovsdb-southbound-impl/src/main/feature/feature.xml index 9c6171ce8..c73fbc860 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-impl/src/main/feature/feature.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-impl/src/main/feature/feature.xml @@ -8,9 +8,9 @@ and is available at http://www.eclipse.org/legal/epl-v10.html --> - odl-jackson-2 - odl-infrautils-diagstatus - odl-infrautils-ready + odl-jackson-2 + odl-infrautils-diagstatus + odl-infrautils-ready mvn:org.opendaylight.ovsdb/southbound-impl/${project.version}/cfg/config diff --git a/southbound/southbound-features/odl-ovsdb-southbound-test/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-test/pom.xml index 215e50fb9..555e03cc3 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-test/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-test/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 15.0.2 diff --git a/southbound/southbound-features/pom.xml b/southbound/southbound-features/pom.xml index cf2ee45c1..108ca078b 100644 --- a/southbound/southbound-features/pom.xml +++ b/southbound/southbound-features/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 15.0.2 diff --git a/southbound/southbound-karaf/pom.xml b/southbound/southbound-karaf/pom.xml index dd43a76fb..0f140e43a 100644 --- a/southbound/southbound-karaf/pom.xml +++ b/southbound/southbound-karaf/pom.xml @@ -9,7 +9,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent karaf4-parent - 14.3.1 + 15.0.2 4.0.0 diff --git a/utils/odl-ovsdb-utils/pom.xml b/utils/odl-ovsdb-utils/pom.xml index 5e0cee529..8a10e0b14 100644 --- a/utils/odl-ovsdb-utils/pom.xml +++ b/utils/odl-ovsdb-utils/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 15.0.2 @@ -29,7 +29,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller controller-artifacts - 13.0.2 + 14.0.1 pom import diff --git a/utils/odl-ovsdb-utils/src/main/feature/feature.xml b/utils/odl-ovsdb-utils/src/main/feature/feature.xml index 67533f18b..d8931bac6 100644 --- a/utils/odl-ovsdb-utils/src/main/feature/feature.xml +++ b/utils/odl-ovsdb-utils/src/main/feature/feature.xml @@ -8,6 +8,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html --> - odl-mdsal-broker + odl-mdsal-broker diff --git a/utils/pom.xml b/utils/pom.xml index be45cfdd2..f81cdd90a 100644 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 15.0.2 diff --git a/utils/yang-utils/src/main/java/org/opendaylight/ovsdb/utils/yang/YangUtils.java b/utils/yang-utils/src/main/java/org/opendaylight/ovsdb/utils/yang/YangUtils.java index 7425767bf..9261583c9 100644 --- a/utils/yang-utils/src/main/java/org/opendaylight/ovsdb/utils/yang/YangUtils.java +++ b/utils/yang-utils/src/main/java/org/opendaylight/ovsdb/utils/yang/YangUtils.java @@ -65,7 +65,7 @@ public final class YangUtils { * @param The value type. * @return The map. */ - public static , T extends EntryObject, K, V> + public static , T extends EntryObject, K, V> @NonNull Map copyYangKeyValueListToMap(@NonNull Map map, @Nullable Map yangList, @NonNull Function keyExtractor, @NonNull Function valueExtractor) { @@ -102,7 +102,7 @@ public final class YangUtils { * @param The value type. * @return The map. */ - public static , T extends EntryObject, K, V> @NonNull Map + public static , T extends EntryObject, K, V> @NonNull Map convertYangKeyValueListToMap(@Nullable Map yangList, @NonNull Function keyExtractor, @NonNull Function valueExtractor) { return copyYangKeyValueListToMap(new HashMap<>(), yangList, keyExtractor, valueExtractor); -- 2.34.1 From 064bc82608913d3dbaa50ab7c70d196b08487279 Mon Sep 17 00:00:00 2001 From: jenkins-releng Date: Fri, 2 Oct 2026 20:09:53 +0000 Subject: [PATCH 5/5] Release Validate --- commons/binding-parent/pom.xml | 2 +- commons/bundle-parent/pom.xml | 4 ++-- commons/it/pom.xml | 2 +- commons/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-api/pom.xml | 4 ++-- hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml | 2 +- .../odl-ovsdb-hwvtepsouthbound-api/pom.xml | 2 +- .../odl-ovsdb-hwvtepsouthbound-rest/pom.xml | 2 +- .../odl-ovsdb-hwvtepsouthbound-test/pom.xml | 2 +- .../odl-ovsdb-hwvtepsouthbound-ui/pom.xml | 2 +- .../odl-ovsdb-hwvtepsouthbound/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-features/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-impl/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-it/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml | 2 +- hwvtepsouthbound/pom.xml | 2 +- library/artifacts/pom.xml | 2 +- library/features/features/pom.xml | 2 +- library/features/odl-ovsdb-library/pom.xml | 2 +- library/features/pom.xml | 2 +- library/impl/pom.xml | 4 ++-- library/it/pom.xml | 6 +++--- library/karaf/pom.xml | 2 +- library/pom.xml | 2 +- pom.xml | 2 +- schemas/hardwarevtep/pom.xml | 4 ++-- schemas/openvswitch/pom.xml | 4 ++-- schemas/pom.xml | 2 +- southbound/pom.xml | 2 +- southbound/southbound-api/pom.xml | 4 ++-- southbound/southbound-artifacts/pom.xml | 2 +- southbound/southbound-features/features/pom.xml | 2 +- .../southbound-features/odl-ovsdb-southbound-api/pom.xml | 2 +- .../odl-ovsdb-southbound-impl-rest/pom.xml | 2 +- .../odl-ovsdb-southbound-impl-ui/pom.xml | 2 +- .../southbound-features/odl-ovsdb-southbound-impl/pom.xml | 2 +- .../southbound-features/odl-ovsdb-southbound-test/pom.xml | 2 +- southbound/southbound-features/pom.xml | 2 +- southbound/southbound-impl/pom.xml | 2 +- southbound/southbound-it/pom.xml | 2 +- southbound/southbound-karaf/pom.xml | 2 +- utils/config/pom.xml | 4 ++-- utils/hwvtepsouthbound-utils/pom.xml | 4 ++-- utils/mdsal-utils/pom.xml | 4 ++-- utils/odl-ovsdb-utils/pom.xml | 2 +- utils/ovsdb-it-utils/pom.xml | 2 +- utils/pom.xml | 2 +- utils/servicehelper/pom.xml | 4 ++-- utils/southbound-utils/pom.xml | 4 ++-- utils/yang-utils/pom.xml | 2 +- 51 files changed, 64 insertions(+), 64 deletions(-) diff --git a/commons/binding-parent/pom.xml b/commons/binding-parent/pom.xml index 7795273ba..2bd9195f2 100644 --- a/commons/binding-parent/pom.xml +++ b/commons/binding-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/commons/bundle-parent/pom.xml b/commons/bundle-parent/pom.xml index b371fdf5f..5151f6fd1 100644 --- a/commons/bundle-parent/pom.xml +++ b/commons/bundle-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.ovsdb bundle-parent - 1.23.0-SNAPSHOT + 1.23.0 pom @@ -25,7 +25,7 @@ org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 pom import diff --git a/commons/it/pom.xml b/commons/it/pom.xml index 6a4609336..a0ad43e6b 100644 --- a/commons/it/pom.xml +++ b/commons/it/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb it - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/commons/pom.xml b/commons/pom.xml index 54b2c791b..243776afe 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb parents - 1.23.0-SNAPSHOT + 1.23.0 ODL :: ovsdb :: ${project.artifactId} diff --git a/hwvtepsouthbound/hwvtepsouthbound-api/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-api/pom.xml index f4a24bad2..6e601b75e 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-api/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-api/pom.xml @@ -10,14 +10,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent 4.0.0 org.opendaylight.ovsdb hwvtepsouthbound-api - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml index 473eb79b4..db8a8955a 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb hwvtepsouthbound-artifacts - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml index 753b936cf..5d3e25f3e 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb hwvtepsouthbound-features - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-api/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-api/pom.xml index 007637fb4..b16e8af17 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-api/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-api/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.ovsdb odl-ovsdb-hwvtepsouthbound-api - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml index 469df1a79..24776aa68 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb odl-ovsdb-hwvtepsouthbound-rest - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-impl/pom.xml index 88de06a51..9274d3d0a 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent diff --git a/hwvtepsouthbound/hwvtepsouthbound-it/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-it/pom.xml index 0e2cf0a8e..7cc4fff55 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-it/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-it/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb it - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/it diff --git a/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml index a3a1380f7..0ba15fd43 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml @@ -15,7 +15,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL 4.0.0 org.opendaylight.ovsdb hwvtepsouthbound-karaf - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/hwvtepsouthbound/pom.xml b/hwvtepsouthbound/pom.xml index 82127df5c..1ecadd6b1 100644 --- a/hwvtepsouthbound/pom.xml +++ b/hwvtepsouthbound/pom.xml @@ -17,7 +17,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.ovsdb hwvtepsouthbound-aggregator - 1.23.0-SNAPSHOT + 1.23.0 ODL :: ovsdb :: ${project.artifactId} diff --git a/library/artifacts/pom.xml b/library/artifacts/pom.xml index a6413f571..a3389fe1e 100644 --- a/library/artifacts/pom.xml +++ b/library/artifacts/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb library-artifacts - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/library/features/features/pom.xml b/library/features/features/pom.xml index 4e25b61b1..1648f11ed 100644 --- a/library/features/features/pom.xml +++ b/library/features/features/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb library-features - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/library/features/odl-ovsdb-library/pom.xml b/library/features/odl-ovsdb-library/pom.xml index 770fb9939..21e05554b 100644 --- a/library/features/odl-ovsdb-library/pom.xml +++ b/library/features/odl-ovsdb-library/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb odl-ovsdb-library - 1.23.0-SNAPSHOT + 1.23.0 feature ODL :: ovsdb :: ${project.artifactId} diff --git a/library/impl/pom.xml b/library/impl/pom.xml index f57ce85d8..733069454 100644 --- a/library/impl/pom.xml +++ b/library/impl/pom.xml @@ -12,14 +12,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb bundle-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/bundle-parent 4.0.0 org.opendaylight.ovsdb library - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/library/it/pom.xml b/library/it/pom.xml index 83073c284..71eea8f73 100644 --- a/library/it/pom.xml +++ b/library/it/pom.xml @@ -11,14 +11,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb it - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/it 4.0.0 org.opendaylight.ovsdb library-it - 1.23.0-SNAPSHOT + 1.23.0 jar @@ -27,7 +27,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb library-karaf - 1.23.0-SNAPSHOT + 1.23.0 zip diff --git a/library/karaf/pom.xml b/library/karaf/pom.xml index 07580bedf..5484b4a52 100644 --- a/library/karaf/pom.xml +++ b/library/karaf/pom.xml @@ -15,7 +15,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL 4.0.0 org.opendaylight.ovsdb library-karaf - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/library/pom.xml b/library/pom.xml index 1b216f6e3..578ce988f 100644 --- a/library/pom.xml +++ b/library/pom.xml @@ -17,7 +17,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb library-aggregator - 1.23.0-SNAPSHOT + 1.23.0 ODL :: ovsdb :: ${project.artifactId} diff --git a/pom.xml b/pom.xml index 4d75352dc..a9633c848 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb - 1.23.0-SNAPSHOT + 1.23.0 ${project.artifactId} pom diff --git a/schemas/hardwarevtep/pom.xml b/schemas/hardwarevtep/pom.xml index b1ad4c9ab..a17932db2 100644 --- a/schemas/hardwarevtep/pom.xml +++ b/schemas/hardwarevtep/pom.xml @@ -12,13 +12,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb schema.hardwarevtep - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/schemas/openvswitch/pom.xml b/schemas/openvswitch/pom.xml index ba9c814f8..078351377 100644 --- a/schemas/openvswitch/pom.xml +++ b/schemas/openvswitch/pom.xml @@ -12,13 +12,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb schema.openvswitch - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/schemas/pom.xml b/schemas/pom.xml index 4d8cc8f3d..a6947d988 100644 --- a/schemas/pom.xml +++ b/schemas/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb schemas - 1.23.0-SNAPSHOT + 1.23.0 ODL :: ovsdb :: ${project.artifactId} diff --git a/southbound/pom.xml b/southbound/pom.xml index 1ae8bc46d..f9f2c3a05 100644 --- a/southbound/pom.xml +++ b/southbound/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.ovsdb southbound-aggregator - 1.23.0-SNAPSHOT + 1.23.0 ODL :: ovsdb :: ${project.artifactId} diff --git a/southbound/southbound-api/pom.xml b/southbound/southbound-api/pom.xml index f085761f0..ee633bd6c 100644 --- a/southbound/southbound-api/pom.xml +++ b/southbound/southbound-api/pom.xml @@ -10,14 +10,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent 4.0.0 org.opendaylight.ovsdb southbound-api - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/southbound/southbound-artifacts/pom.xml b/southbound/southbound-artifacts/pom.xml index e5f03c576..fa8615660 100644 --- a/southbound/southbound-artifacts/pom.xml +++ b/southbound/southbound-artifacts/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb southbound-artifacts - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/southbound/southbound-features/features/pom.xml b/southbound/southbound-features/features/pom.xml index ef35b85f0..e45c84527 100644 --- a/southbound/southbound-features/features/pom.xml +++ b/southbound/southbound-features/features/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb southbound-features - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml index b26aa53ff..60e0f88e7 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb odl-ovsdb-southbound-api - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml index ea7b861ef..72c5227dc 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb odl-ovsdb-southbound-impl-rest - 1.23.0-SNAPSHOT + 1.23.0 feature ODL :: ovsdb :: ${project.artifactId} diff --git a/southbound/southbound-impl/pom.xml b/southbound/southbound-impl/pom.xml index f4429dcd2..61a4c1d28 100644 --- a/southbound/southbound-impl/pom.xml +++ b/southbound/southbound-impl/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent diff --git a/southbound/southbound-it/pom.xml b/southbound/southbound-it/pom.xml index 9b25ebbe3..72518feda 100644 --- a/southbound/southbound-it/pom.xml +++ b/southbound/southbound-it/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb it - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/it 4.0.0 diff --git a/southbound/southbound-karaf/pom.xml b/southbound/southbound-karaf/pom.xml index 0f140e43a..afef891d5 100644 --- a/southbound/southbound-karaf/pom.xml +++ b/southbound/southbound-karaf/pom.xml @@ -15,7 +15,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL 4.0.0 org.opendaylight.ovsdb southbound-karaf - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/utils/config/pom.xml b/utils/config/pom.xml index dfba187b9..e2c01613f 100644 --- a/utils/config/pom.xml +++ b/utils/config/pom.xml @@ -12,13 +12,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb utils.config - 1.23.0-SNAPSHOT + 1.23.0 ODL :: ovsdb :: ${project.artifactId} diff --git a/utils/hwvtepsouthbound-utils/pom.xml b/utils/hwvtepsouthbound-utils/pom.xml index a8473eeba..313bede1f 100644 --- a/utils/hwvtepsouthbound-utils/pom.xml +++ b/utils/hwvtepsouthbound-utils/pom.xml @@ -11,13 +11,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb utils.hwvtepsouthbound-utils - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/utils/mdsal-utils/pom.xml b/utils/mdsal-utils/pom.xml index 6b93fde63..54c61bdcf 100644 --- a/utils/mdsal-utils/pom.xml +++ b/utils/mdsal-utils/pom.xml @@ -11,13 +11,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb utils.mdsal-utils - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/utils/odl-ovsdb-utils/pom.xml b/utils/odl-ovsdb-utils/pom.xml index 8a10e0b14..2cd1666ef 100644 --- a/utils/odl-ovsdb-utils/pom.xml +++ b/utils/odl-ovsdb-utils/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb odl-ovsdb-utils - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/utils/ovsdb-it-utils/pom.xml b/utils/ovsdb-it-utils/pom.xml index a9c8d44f0..1fbde8b7e 100644 --- a/utils/ovsdb-it-utils/pom.xml +++ b/utils/ovsdb-it-utils/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent diff --git a/utils/pom.xml b/utils/pom.xml index f81cdd90a..f1e849989 100644 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb utils - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/utils/servicehelper/pom.xml b/utils/servicehelper/pom.xml index 9e345753f..a8e6b037b 100644 --- a/utils/servicehelper/pom.xml +++ b/utils/servicehelper/pom.xml @@ -12,13 +12,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb utils.servicehelper - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/utils/southbound-utils/pom.xml b/utils/southbound-utils/pom.xml index fa7faf041..76a5aa794 100644 --- a/utils/southbound-utils/pom.xml +++ b/utils/southbound-utils/pom.xml @@ -11,13 +11,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb utils.southbound-utils - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/utils/yang-utils/pom.xml b/utils/yang-utils/pom.xml index dad18f7da..a67111874 100644 --- a/utils/yang-utils/pom.xml +++ b/utils/yang-utils/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent -- 2.34.1