From: Sam Hague Date: Wed, 22 Jun 2016 21:18:15 +0000 (-0400) Subject: ovsdb enable checkstyle on error X-Git-Tag: release/boron~67 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=50e7f939993fa9da3c80a1c8d166629a4868af9c;p=ovsdb.git ovsdb enable checkstyle on error Change-Id: Ie3105f3cac8b0db4762c68df36c650f6cefdca00 Signed-off-by: Sam Hague --- diff --git a/southbound/southbound-impl/pom.xml b/southbound/southbound-impl/pom.xml index cb103135a..b5dc523fb 100644 --- a/southbound/southbound-impl/pom.xml +++ b/southbound/southbound-impl/pom.xml @@ -130,7 +130,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.apache.maven.plugins maven-checkstyle-plugin - true + checkstyle.violationSeverity=error 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 ce8181c87..b3378861d 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 @@ -9,6 +9,8 @@ package org.opendaylight.ovsdb.southbound; import static org.opendaylight.ovsdb.lib.operations.Operations.op; +import com.google.common.collect.Lists; +import com.google.common.util.concurrent.ListenableFuture; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -16,9 +18,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ExecutionException; - import javax.annotation.Nonnull; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.common.api.clustering.Entity; import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipCandidateRegistration; @@ -65,9 +65,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Lists; -import com.google.common.util.concurrent.ListenableFuture; - public class OvsdbConnectionInstance implements OvsdbClient { private static final Logger LOG = LoggerFactory.getLogger(OvsdbConnectionInstance.class); private OvsdbClient client; @@ -118,6 +115,11 @@ public class OvsdbConnectionInstance implements OvsdbClient { } } + public ListenableFuture> transact( + DatabaseSchema dbSchema, List operations) { + return client.transact(dbSchema, operations); + } + public void registerCallbacks() { if ( this.callback == null) { if (this.initialCreateData != null ) { @@ -145,7 +147,7 @@ public class OvsdbConnectionInstance implements OvsdbClient { try { transactInvokers = new HashMap<>(); DatabaseSchema dbSchema = getSchema(SouthboundConstants.OPEN_V_SWITCH).get(); - if(dbSchema != null) { + if (dbSchema != null) { transactInvokers.put(dbSchema, new TransactInvokerImpl(this,dbSchema)); } } catch (InterruptedException | ExecutionException e) { @@ -258,9 +260,11 @@ public class OvsdbConnectionInstance implements OvsdbClient { return client.transactBuilder(dbSchema); } - public ListenableFuture> transact( - DatabaseSchema dbSchema, List operations) { - return client.transact(dbSchema, operations); + @Override + public > TableUpdates monitor( + DatabaseSchema schema, List monitorRequests, + MonitorHandle monitorHandle, MonitorCallBack callback) { + return null; } public > TableUpdates monitor( @@ -348,13 +352,6 @@ public class OvsdbConnectionInstance implements OvsdbClient { this.instanceIdentifier = iid; } - @Override - public > TableUpdates monitor( - DatabaseSchema schema, List monitorRequests, - MonitorHandle monitorHandle, MonitorCallBack callback) { - return null; - } - public Entity getConnectedEntity() { return this.connectedEntity; } @@ -391,6 +388,7 @@ public class OvsdbConnectionInstance implements OvsdbClient { public OvsdbNodeAugmentation getOvsdbNodeAugmentation() { return this.initialCreateData; } + public void setOvsdbNodeAugmentation(OvsdbNodeAugmentation ovsdbNodeCreateData) { this.initialCreateData = ovsdbNodeCreateData; } 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 5740ab573..ae517a06e 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 @@ -9,6 +9,11 @@ package org.opendaylight.ovsdb.southbound; import static org.opendaylight.ovsdb.lib.operations.Operations.op; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; +import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.ArrayList; @@ -18,12 +23,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; - import javax.annotation.Nonnull; import javax.annotation.Nullable; - -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; @@ -65,10 +66,6 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.CheckedFuture; - public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoCloseable { private Map clients = new ConcurrentHashMap<>(); @@ -108,7 +105,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos List databases = new ArrayList<>(); try { databases = externalClient.getDatabases().get(1000, TimeUnit.MILLISECONDS); - if(databases.contains(SouthboundConstants.OPEN_V_SWITCH)) { + if (databases.contains(SouthboundConstants.OPEN_V_SWITCH)) { OvsdbConnectionInstance client = connectedButCallBacksNotRegistered(externalClient); // Register Cluster Ownership for ConnectionInfo registerEntityForOwnership(client); @@ -274,14 +271,14 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos instanceIdentifiers.remove(connectionInfo); } - public OvsdbConnectionInstance getConnectionInstance(ConnectionInfo key) { + public InstanceIdentifier getInstanceIdentifier(ConnectionInfo key) { ConnectionInfo connectionInfo = SouthboundMapper.suppressLocalIpPort(key); - return clients.get(connectionInfo); + return instanceIdentifiers.get(connectionInfo); } - public InstanceIdentifier getInstanceIdentifier(ConnectionInfo key) { + public OvsdbConnectionInstance getConnectionInstance(ConnectionInfo key) { ConnectionInfo connectionInfo = SouthboundMapper.suppressLocalIpPort(key); - return instanceIdentifiers.get(connectionInfo); + return clients.get(connectionInfo); } public OvsdbConnectionInstance getConnectionInstance(OvsdbBridgeAttributes mn) { @@ -346,7 +343,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos return ovsdbConnectionInstance.getHasDeviceOwnership(); } - public void reconcileConnection(InstanceIdentifier iid, OvsdbNodeAugmentation ovsdbNode){ + public void reconcileConnection(InstanceIdentifier iid, OvsdbNodeAugmentation ovsdbNode) { this.retryConnection(iid, ovsdbNode, ConnectionReconciliationTriggers.ON_CONTROLLER_INITIATED_CONNECTION_FAILURE); @@ -403,8 +400,8 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos if (ownershipChange.isOwner() == ovsdbConnectionInstance.getHasDeviceOwnership()) { LOG.info("handleOwnershipChanged: no change in ownership for {}. Ownership status is : {}", ovsdbConnectionInstance.getConnectionInfo(), ovsdbConnectionInstance.getHasDeviceOwnership() - ? SouthboundConstants.OWNERSHIPSTATES.OWNER.getState() - : SouthboundConstants.OWNERSHIPSTATES.NONOWNER.getState()); + ? SouthboundConstants.OwnershipStates.OWNER.getState() + : SouthboundConstants.OwnershipStates.NONOWNER.getState()); return; } @@ -502,6 +499,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos } return openVSwitchRow; } + private Entity getEntityFromConnectionInstance(@Nonnull OvsdbConnectionInstance ovsdbConnectionInstance) { InstanceIdentifier iid = ovsdbConnectionInstance.getInstanceIdentifier(); if ( iid == null ) { @@ -569,10 +567,10 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos iid, ovsdbNode); - if(reconciliationManager.isEnqueued(task)){ + if (reconciliationManager.isEnqueued(task)) { return; } - switch(trigger){ + switch (trigger) { case ON_CONTROLLER_INITIATED_CONNECTION_FAILURE: reconciliationManager.enqueueForRetry(task); break; @@ -587,19 +585,19 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos @Override public void onSuccess(@Nullable Optional node) { if (node.isPresent()) { - LOG.info("Disconnected/Failed connection {} was controller initiated, attempting " + - "reconnection", ovsdbNode.getConnectionInfo()); + LOG.info("Disconnected/Failed connection {} was controller initiated, attempting " + + "reconnection", ovsdbNode.getConnectionInfo()); reconciliationManager.enqueue(task); } else { - LOG.debug("Connection {} was switch initiated, no reconciliation is required" - , iid.firstKeyOf(Node.class).getNodeId()); + LOG.debug("Connection {} was switch initiated, no reconciliation is required", + iid.firstKeyOf(Node.class).getNodeId()); } } @Override - public void onFailure(Throwable t) { - LOG.warn("Read Config/DS for Node failed! {}", iid, t); + public void onFailure(Throwable throwable) { + LOG.warn("Read Config/DS for Node failed! {}", iid, throwable); } }); break; @@ -625,9 +623,11 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos this.cm = cm; listenerRegistration = entityOwnershipService.registerListener(ENTITY_TYPE, this); } + public void close() { listenerRegistration.close(); } + @Override public void ownershipChanged(EntityOwnershipChange ownershipChange) { cm.handleOwnershipChanged(ownershipChange); 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 18452b36e..1acd7bed8 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 @@ -11,12 +11,9 @@ package org.opendaylight.ovsdb.southbound; import java.net.UnknownHostException; import java.util.Collection; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.Map.Entry; - import javax.annotation.Nonnull; - import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; @@ -34,7 +31,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; 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.node.TerminationPoint; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.Augmentation; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -193,29 +189,30 @@ public class OvsdbDataTreeChangeListener implements ClusteredDataTreeChangeListe new HashMap<>(); for (DataTreeModification change : changes) { OvsdbConnectionInstance client = null; - Node node = change.getRootNode().getDataAfter() != null? - change.getRootNode().getDataAfter() : change.getRootNode().getDataBefore(); + Node node = change.getRootNode().getDataAfter() != null + ? change.getRootNode().getDataAfter() : change.getRootNode().getDataBefore(); if (node != null) { InstanceIdentifier nodeIid; - Augmentation nodeAug = node.getAugmentation(OvsdbNodeAugmentation.class) !=null? - node.getAugmentation(OvsdbNodeAugmentation.class):node.getAugmentation(OvsdbBridgeAugmentation.class); + Augmentation nodeAug = node.getAugmentation(OvsdbNodeAugmentation.class) != null + ? node.getAugmentation(OvsdbNodeAugmentation.class) + : node.getAugmentation(OvsdbBridgeAugmentation.class); - if(nodeAug instanceof OvsdbNodeAugmentation) { + if (nodeAug instanceof OvsdbNodeAugmentation) { OvsdbNodeAugmentation ovsdbNode = (OvsdbNodeAugmentation) nodeAug; - if(ovsdbNode.getConnectionInfo() != null) { + if (ovsdbNode.getConnectionInfo() != null) { client = cm.getConnectionInstance(ovsdbNode.getConnectionInfo()); - }else { + } else { client = cm.getConnectionInstance(SouthboundMapper.createInstanceIdentifier(node.getNodeId())); } } - if(nodeAug instanceof OvsdbBridgeAugmentation) { + if (nodeAug instanceof OvsdbBridgeAugmentation) { OvsdbBridgeAugmentation bridgeAugmentation = (OvsdbBridgeAugmentation)nodeAug; - if(bridgeAugmentation.getManagedBy() != null) { + if (bridgeAugmentation.getManagedBy() != null) { nodeIid = (InstanceIdentifier) bridgeAugmentation.getManagedBy().getValue(); client = cm.getConnectionInstance(nodeIid); } } - if( client == null ) { + if (client == null) { //Try getting from change root identifier client = cm.getConnectionInstance(change.getRootPath().getRootIdentifier()); } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbSchemaContants.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbSchemaContants.java index a91b8c982..38edea33b 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbSchemaContants.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbSchemaContants.java @@ -7,14 +7,10 @@ */ package org.opendaylight.ovsdb.southbound; -/** - * - * @author Anil Vishnoi (avishnoi@brocade.com) - * - */ public class OvsdbSchemaContants { public static final String databaseName = "Open_vSwitch"; - public enum OVSDBSCHEMATABLES { + + public enum OvsdbSchemaTables { OPENVSWITCH("Open_vSwitch",null,null), BRIDGE("Bridge", "Open_vSwitch", "bridges"), PORT("Port", "Bridge", "ports"), @@ -35,7 +31,7 @@ public class OvsdbSchemaContants { private final String parentTableName; private final String columnNameInParentTable; - OVSDBSCHEMATABLES( + OvsdbSchemaTables( final String tableName, final String parentTableName, final String columnNameInParentTable) { this.tableName = tableName; diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundConstants.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundConstants.java index 4f2883523..49e0d917e 100755 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundConstants.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundConstants.java @@ -7,25 +7,29 @@ */ package org.opendaylight.ovsdb.southbound; +import com.google.common.collect.ImmutableBiMap; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeBase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeNetdev; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeSystem; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeBase; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeInternal; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypePatch; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeSystem; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlan; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlanGpe; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeTap; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdk; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkr; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkvhost; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkvhostuser; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGeneve; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGre; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeIpsecGre; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGre64; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeInternal; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeIpsecGre; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeIpsecGre64; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeLisp; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdk; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkr; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkvhost; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeDpdkvhostuser; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypePatch; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeStt; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeSystem; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeTap; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlan; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlanGpe; 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.OvsdbBridgeProtocolOpenflow11; @@ -36,20 +40,15 @@ 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.OvsdbFailModeBase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbFailModeSecure; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbFailModeStandalone; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeBase; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeSystem; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeNetdev; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeBase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeEgressPolicer; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxHfsc; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxHtb; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxCodel; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxFqCodel; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxHfsc; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxHtb; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.QosTypeLinuxSfq; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId; -import com.google.common.collect.ImmutableBiMap; - public class SouthboundConstants { public static final String OPEN_V_SWITCH = "Open_vSwitch"; public static final TopologyId OVSDB_TOPOLOGY_ID = new TopologyId(new Uri("ovsdb:1")); @@ -130,7 +129,7 @@ public class SouthboundConstants { public static final String IID_EXTERNAL_ID_KEY = "opendaylight-iid"; public static final String AUTOATTACH_ID_EXTERNAL_ID_KEY = "opendaylight-autoattach-id"; - public enum VLANMODES { + public enum VlanModes { ACCESS("access"), NATIVE_TAGGED("native-tagged"), NATIVE_UNTAGGED("native-untagged"), @@ -138,9 +137,10 @@ public class SouthboundConstants { private final String mode; - VLANMODES(String mode) { + VlanModes(String mode) { this.mode = mode; } + @Override public String toString() { return mode; @@ -151,15 +151,16 @@ public class SouthboundConstants { } } - public enum OWNERSHIPSTATES { + public enum OwnershipStates { OWNER("OWNER"), NONOWNER("NON-OWNER"); private final String state; - OWNERSHIPSTATES(String state) { + OwnershipStates(String state) { this.state = state; } + @Override public String toString() { return state; 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 4e7f9bb7d..cb2b4cd74 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 @@ -9,6 +9,11 @@ package org.opendaylight.ovsdb.southbound; import static org.opendaylight.ovsdb.southbound.SouthboundUtil.schemaMismatchLog; +import com.google.common.base.Joiner; +import com.google.common.base.Preconditions; +import com.google.common.base.Splitter; +import com.google.common.collect.ImmutableBiMap; +import com.google.common.net.InetAddresses; import java.net.Inet4Address; import java.net.Inet6Address; import java.net.InetAddress; @@ -19,7 +24,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; - import org.opendaylight.ovsdb.lib.OvsdbClient; import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException; import org.opendaylight.ovsdb.lib.notation.UUID; @@ -61,12 +65,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Joiner; -import com.google.common.base.Preconditions; -import com.google.common.base.Splitter; -import com.google.common.collect.ImmutableBiMap; -import com.google.common.net.InetAddresses; - public class SouthboundMapper { private static final Logger LOG = LoggerFactory.getLogger(SouthboundMapper.class); private static final String N_CONNECTIONS_STR = "n_connections"; @@ -96,16 +94,17 @@ public class SouthboundMapper { .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)); } + public static InstanceIdentifier + createBridgeInstanceIdentifier(OvsdbConnectionInstance client, String bridgeName) { + return createInstanceIdentifier(client, bridgeName).augmentation(OvsdbBridgeAugmentation.class); + } + public static InstanceIdentifier createInstanceIdentifier(NodeId nodeId) { return createTopologyInstanceIdentifier() .child(Node.class,new NodeKey(nodeId)); } - public static InstanceIdentifier createBridgeInstanceIdentifier(OvsdbConnectionInstance client, String bridgeName) { - return createInstanceIdentifier(client, bridgeName) - .augmentation(OvsdbBridgeAugmentation.class); - } - + @SuppressWarnings("unchecked") public static InstanceIdentifier createInstanceIdentifier(OvsdbConnectionInstance client,Bridge bridge) { InstanceIdentifier iid; if (bridge.getExternalIdsColumn() != null @@ -119,6 +118,7 @@ public class SouthboundMapper { return iid; } + @SuppressWarnings("unchecked") public static InstanceIdentifier createInstanceIdentifier( OvsdbConnectionInstance client, Controller controller, String bridgeName) { InstanceIdentifier iid; @@ -177,6 +177,19 @@ public class SouthboundMapper { } } + public static DatapathId createDatapathId(String dpid) { + Preconditions.checkNotNull(dpid); + DatapathId datapath; + if (dpid.matches("^[0-9a-fA-F]{16}")) { + Splitter splitter = Splitter.fixedLength(2); + Joiner joiner = Joiner.on(":"); + datapath = new DatapathId(joiner.join(splitter.split(dpid))); + } else { + datapath = new DatapathId(dpid); + } + return datapath; + } + public static String createDatapathType(OvsdbBridgeAugmentation mdsalbridge) { String datapathtype = SouthboundConstants.DATAPATH_TYPE_MAP.get(DatapathTypeSystem.class); @@ -200,19 +213,6 @@ public class SouthboundMapper { } } - public static DatapathId createDatapathId(String dpid) { - Preconditions.checkNotNull(dpid); - DatapathId datapath; - if (dpid.matches("^[0-9a-fA-F]{16}")) { - Splitter splitter = Splitter.fixedLength(2); - Joiner joiner = Joiner.on(":"); - datapath = new DatapathId(joiner.join(splitter.split(dpid))); - } else { - datapath = new DatapathId(dpid); - } - return datapath; - } - public static Set createOvsdbBridgeProtocols(OvsdbBridgeAugmentation ovsdbBridgeNode) { Set protocols = new HashSet<>(); if (ovsdbBridgeNode.getProtocolEntry() != null && ovsdbBridgeNode.getProtocolEntry().size() > 0) { @@ -252,8 +252,7 @@ public class SouthboundMapper { SouthboundConstants.OVSDB_PROTOCOL_MAP.inverse(); for (String protocol : protocols) { if (protocol != null && mapper.get(protocol) != null) { - protocolList.add(new ProtocolEntryBuilder(). - setProtocol(mapper.get(protocol)).build()); + protocolList.add(new ProtocolEntryBuilder().setProtocol(mapper.get(protocol)).build()); } } } @@ -273,10 +272,10 @@ public class SouthboundMapper { LOG.debug("createControllerEntries Bridge: {}\n, updatedControllerRows: {}", bridge, updatedControllerRows); - final Set controllerUUIDs = bridge.getControllerColumn().getData(); + final Set controllerUuids = bridge.getControllerColumn().getData(); final List controllerEntries = new ArrayList<>(); - for (UUID controllerUUID : controllerUUIDs ) { - final Controller controller = updatedControllerRows.get(controllerUUID); + for (UUID controllerUuid : controllerUuids ) { + final Controller controller = updatedControllerRows.get(controllerUuid); addControllerEntries(controllerEntries, controller); } LOG.debug("controllerEntries: {}", controllerEntries); @@ -342,18 +341,19 @@ public class SouthboundMapper { Map controllerMap = new HashMap<>(); if (controllerEntries != null && !controllerEntries.isEmpty()) { for (ControllerEntry controllerEntry : controllerEntries) { - String controllerNamedUUID = "Controller_" + getRandomUUID(); + String controllerNamedUuid = "Controller_" + getRandomUuid(); Controller controller = TyperUtils.getTypedRowWrapper(dbSchema, Controller.class); controller.setTarget(controllerEntry.getTarget().getValue()); - controllerMap.put(new UUID(controllerNamedUUID), controller); + controllerMap.put(new UUID(controllerNamedUuid), controller); } } return controllerMap; } - public static String getRandomUUID() { + public static String getRandomUuid() { return "Random_" + java.util.UUID.randomUUID().toString().replace("-", ""); } + public static ConnectionInfo createConnectionInfo(OvsdbClient client) { ConnectionInfoBuilder connectionInfoBuilder = new ConnectionInfoBuilder(); connectionInfoBuilder.setRemoteIp(createIpAddress(client.getConnectionInfo().getRemoteAddress())); @@ -383,10 +383,10 @@ public class SouthboundMapper { LOG.debug("createManagerEntries OpenVSwitch: {}\n, updatedManagerRows: {}", ovsdbNode, updatedManagerRows); - final Set managerUUIDs = ovsdbNode.getManagerOptionsColumn().getData(); + final Set managerUuids = ovsdbNode.getManagerOptionsColumn().getData(); final List managerEntries = new ArrayList<>(); - for (UUID managerUUID : managerUUIDs ) { - final Manager manager = updatedManagerRows.get(managerUUID); + for (UUID managerUuid : managerUuids) { + final Manager manager = updatedManagerRows.get(managerUuid); addManagerEntries(managerEntries, manager); } LOG.debug("managerEntries: {}", managerEntries); @@ -455,7 +455,7 @@ public class SouthboundMapper { } /** - * Return the MD-SAL QoS type class corresponding to the QoS type {@link Qos} + * Return the MD-SAL QoS type class corresponding to the QoS type {@link Qos}. * * @param type the QoS type to match {@link String} * @return class matching the input QoS type {@link QosTypeBase} diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundProvider.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundProvider.java index 5f5bad6d4..a5a6df82d 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundProvider.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundProvider.java @@ -7,6 +7,8 @@ */ package org.opendaylight.ovsdb.southbound; +import com.google.common.base.Optional; +import com.google.common.util.concurrent.CheckedFuture; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.clustering.CandidateAlreadyRegisteredException; @@ -33,9 +35,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.util.concurrent.CheckedFuture; - public class SouthboundProvider implements AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(SouthboundProvider.class); @@ -152,8 +151,8 @@ public class SouthboundProvider implements AutoCloseable { public void handleOwnershipChange(EntityOwnershipChange ownershipChange) { if (ownershipChange.isOwner()) { LOG.info("*This* instance of OVSDB southbound provider is set as a MASTER instance"); - LOG.info("Initialize OVSDB topology {} in operational and config data store if not already present" - ,SouthboundConstants.OVSDB_TOPOLOGY_ID); + LOG.info("Initialize OVSDB topology {} in operational and config data store if not already present", + SouthboundConstants.OVSDB_TOPOLOGY_ID); initializeOvsdbTopology(LogicalDatastoreType.OPERATIONAL); initializeOvsdbTopology(LogicalDatastoreType.CONFIGURATION); } else { @@ -176,6 +175,7 @@ public class SouthboundProvider implements AutoCloseable { public void close() { this.listenerRegistration.close(); } + @Override public void ownershipChanged(EntityOwnershipChange ownershipChange) { sp.handleOwnershipChange(ownershipChange); 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 2ed79f2fe..b11dffe88 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 @@ -10,18 +10,15 @@ package org.opendaylight.ovsdb.southbound; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.CheckedFuture; - import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Enumeration; - import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException; -import org.opendaylight.ovsdb.lib.schema.DatabaseSchema; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAttributes; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeRef; 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 a4c175c72..569e0edbc 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 @@ -10,11 +10,12 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; +import com.google.common.base.Optional; +import com.google.common.collect.Sets; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; @@ -39,9 +40,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.collect.Sets; - public class AutoAttachRemovedCommand implements TransactCommand { private static final Logger LOG = LoggerFactory.getLogger(AutoAttachRemovedCommand.class); @@ -63,7 +61,8 @@ public class AutoAttachRemovedCommand implements TransactCommand { Map, OvsdbNodeAugmentation> original, Map, OvsdbNodeAugmentation> updated) { - for (final Map.Entry, OvsdbNodeAugmentation> originalEntry : original.entrySet()) { + for (final Map.Entry, OvsdbNodeAugmentation> originalEntry : + original.entrySet()) { final InstanceIdentifier ovsdbNodeIid = originalEntry.getKey(); final OvsdbNodeAugmentation ovsdbNodeAugmentation = originalEntry.getValue(); final OvsdbNodeAugmentation deletedOvsdbNodeAugmentation = updated.get(ovsdbNodeIid); @@ -71,8 +70,8 @@ public class AutoAttachRemovedCommand implements TransactCommand { if (ovsdbNodeAugmentation != null && deletedOvsdbNodeAugmentation != null) { final List origAutoattachList = ovsdbNodeAugmentation.getAutoattach(); final List deletedAutoattachList = deletedOvsdbNodeAugmentation.getAutoattach(); - if(origAutoattachList != null && !origAutoattachList.isEmpty() && - (deletedAutoattachList == null || deletedAutoattachList.isEmpty())) { + if (origAutoattachList != null && !origAutoattachList.isEmpty() + && (deletedAutoattachList == null || deletedAutoattachList.isEmpty())) { if (true) { // FIXME: Remove if loop after ovs community supports external_ids column in AutoAttach Table @@ -100,7 +99,8 @@ public class AutoAttachRemovedCommand implements TransactCommand { final OvsdbBridgeAugmentation bridgeAugmentation = getBridge(ovsdbNodeIid, autoattachUuid); if (autoattachUuid != null && bridgeAugmentation != null) { final UUID uuid = new UUID(autoattachUuid.getValue()); - final AutoAttach autoattach = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), AutoAttach.class, null); + final AutoAttach autoattach = + TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), AutoAttach.class, null); transaction.add(op.delete(autoattach.getSchema()) .where(autoattach.getUuidColumn().getSchema().opEqual(uuid)) .build()); @@ -144,14 +144,16 @@ public class AutoAttachRemovedCommand implements TransactCommand { try (ReadOnlyTransaction transaction = SouthboundProvider.getDb().newReadOnlyTransaction()) { final Optional nodeOptional = transaction.read(LogicalDatastoreType.OPERATIONAL, nodeIid).get(); if (nodeOptional.isPresent()) { - final List managedNodes = nodeOptional.get().getAugmentation(OvsdbNodeAugmentation.class).getManagedNodeEntry(); + final List managedNodes = + nodeOptional.get().getAugmentation(OvsdbNodeAugmentation.class).getManagedNodeEntry(); for (final ManagedNodeEntry managedNode : managedNodes) { final OvsdbBridgeRef ovsdbBridgeRef = managedNode.getBridgeRef(); final InstanceIdentifier brIid = ovsdbBridgeRef.getValue() .firstIdentifierOf(Node.class).augmentation(OvsdbBridgeAugmentation.class); - final Optional optionalBridge = transaction.read(LogicalDatastoreType.OPERATIONAL, brIid).get(); + final Optional optionalBridge = + transaction.read(LogicalDatastoreType.OPERATIONAL, brIid).get(); bridge = optionalBridge.orNull(); - if(bridge != null && bridge.getAutoAttach() != null + if (bridge != null && bridge.getAutoAttach() != null && bridge.getAutoAttach().equals(aaUuid)) { return bridge; } 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 ec684a190..9a6aab016 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 @@ -10,13 +10,14 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; +import com.google.common.base.Optional; +import com.google.common.collect.Sets; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ExecutionException; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; @@ -48,9 +49,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.collect.Sets; - public class AutoAttachUpdateCommand implements TransactCommand { private static final Logger LOG = LoggerFactory.getLogger(AutoAttachUpdateCommand.class); @@ -91,10 +89,12 @@ public class AutoAttachUpdateCommand implements TransactCommand { return; } - final OvsdbNodeAugmentation currentOvsdbNode = state.getBridgeNode(iid).get().getAugmentation(OvsdbNodeAugmentation.class); + final OvsdbNodeAugmentation currentOvsdbNode = + state.getBridgeNode(iid).get().getAugmentation(OvsdbNodeAugmentation.class); final List currentAutoAttach = currentOvsdbNode.getAutoattach(); for (final Autoattach autoAttach : autoAttachList) { - final AutoAttach autoAttachWrapper = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), AutoAttach.class); + final AutoAttach autoAttachWrapper = + TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), AutoAttach.class); if (autoAttach.getSystemName() != null) { autoAttachWrapper.setSystemName(autoAttach.getSystemName()); } @@ -116,10 +116,12 @@ public class AutoAttachUpdateCommand implements TransactCommand { final Map externalIdsMap = new HashMap<>(); if (externalIds != null) { for (final AutoattachExternalIds externalId : externalIds) { - externalIdsMap.put(externalId.getAutoattachExternalIdKey(), externalId.getAutoattachExternalIdValue()); + externalIdsMap.put(externalId.getAutoattachExternalIdKey(), + externalId.getAutoattachExternalIdValue()); } } - externalIdsMap.put(SouthboundConstants.AUTOATTACH_ID_EXTERNAL_ID_KEY, autoAttach.getAutoattachId().getValue()); + externalIdsMap.put(SouthboundConstants.AUTOATTACH_ID_EXTERNAL_ID_KEY, + autoAttach.getAutoattachId().getValue()); // FIXME: To be uncommented when Open vSwitch supports external_ids column // try { // autoAttachWrapper.setExternalIds(ImmutableMap.copyOf(externalIdsMap)); @@ -139,21 +141,22 @@ public class AutoAttachUpdateCommand implements TransactCommand { transaction.add(op.comment("Updating AutoAttach table: " + uuid)); } else { final Uri bridgeUri = autoAttach.getBridgeId(); - final String namedUuid = SouthboundMapper.getRandomUUID(); + final String namedUuid = SouthboundMapper.getRandomUuid(); final Bridge bridge = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Bridge.class); transaction.add(op.insert(autoAttachWrapper).withId(namedUuid)); final OvsdbBridgeAugmentation ovsdbBridgeAugmentation = getBridge(iid, bridgeUri); if (ovsdbBridgeAugmentation != null) { bridge.setName(ovsdbBridgeAugmentation.getBridgeName().getValue()); bridge.setAutoAttach(Sets.newHashSet(new UUID(namedUuid))); - LOG.trace("Create Autoattach table {}, " - + "and mutate the bridge {}", autoAttach.getAutoattachId(), getBridge(iid, bridgeUri).getBridgeName().getValue()); + LOG.trace("Create Autoattach table {}, and mutate the bridge {}", + autoAttach.getAutoattachId(), getBridge(iid, bridgeUri).getBridgeName().getValue()); transaction.add(op.mutate(bridge) .addMutation(bridge.getAutoAttachColumn().getSchema(), Mutator.INSERT,bridge.getAutoAttachColumn().getData()) .where(bridge.getNameColumn().getSchema() .opEqual(bridge.getNameColumn().getData())).build()); - transaction.add(op.comment("Bridge: Mutating " + ovsdbBridgeAugmentation.getBridgeName().getValue() + transaction.add( + op.comment("Bridge: Mutating " + ovsdbBridgeAugmentation.getBridgeName().getValue() + " to add autoattach column " + namedUuid)); } } @@ -171,7 +174,8 @@ public class AutoAttachUpdateCommand implements TransactCommand { OvsdbBridgeAugmentation bridge = null; try (ReadOnlyTransaction transaction = SouthboundProvider.getDb().newReadOnlyTransaction()) { - final Optional bridgeOptional = transaction.read(LogicalDatastoreType.OPERATIONAL, bridgeIid).get(); + final Optional bridgeOptional = + transaction.read(LogicalDatastoreType.OPERATIONAL, bridgeIid).get(); if (bridgeOptional.isPresent()) { bridge = bridgeOptional.get(); } 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 1a6cb96d0..0fb4ab85b 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 @@ -8,12 +8,13 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; +import com.google.common.base.Optional; +import com.google.common.util.concurrent.CheckedFuture; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ExecutionException; - import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; @@ -34,9 +35,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.util.concurrent.CheckedFuture; - public class BridgeOperationalState { private static final Logger LOG = LoggerFactory.getLogger(BridgeOperationalState.class); private Map, Node> operationalNodes = new HashMap<>(); 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 ef6c2d6df..6f1c383d3 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 @@ -10,10 +10,11 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; +import com.google.common.base.Optional; +import com.google.common.collect.Sets; import java.util.Collection; import java.util.Map; import java.util.Set; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.ovsdb.lib.notation.Mutator; @@ -29,9 +30,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.collect.Sets; - public class BridgeRemovedCommand implements TransactCommand { private static final Logger LOG = LoggerFactory.getLogger(BridgeRemovedCommand.class); @@ -49,7 +47,8 @@ public class BridgeRemovedCommand implements TransactCommand { TransactUtils.extractOriginal(modifications, OvsdbBridgeAugmentation.class)); } - private void execute(TransactionBuilder transaction, BridgeOperationalState state, Set> removed, + private void execute(TransactionBuilder transaction, BridgeOperationalState state, + Set> removed, Map, OvsdbBridgeAugmentation> originals) { for (InstanceIdentifier ovsdbManagedNodeIid: removed) { LOG.info("Received request to delete ovsdb node {}",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 676a2aaa0..eb70e9ee0 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 @@ -9,14 +9,14 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; +import com.google.common.base.Optional; +import com.google.common.collect.Sets; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; - import javax.annotation.Nonnull; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.ovsdb.lib.notation.UUID; @@ -42,9 +42,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.collect.Sets; - public class BridgeUpdateCommand implements TransactCommand { private static final Logger LOG = LoggerFactory.getLogger(BridgeUpdateCommand.class); @@ -76,13 +73,13 @@ public class BridgeUpdateCommand implements TransactCommand { LOG.debug("Received request to create ovsdb bridge name: {} uuid: {}", ovsdbManagedNode.getBridgeName(), ovsdbManagedNode.getBridgeUuid()); - Optional operationalBridgeOptional = - state.getOvsdbBridgeAugmentation(iid); Bridge bridge = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Bridge.class); setFailMode(bridge, ovsdbManagedNode); setDataPathType(bridge, ovsdbManagedNode); setOpenDaylightExternalIds(bridge, iid, ovsdbManagedNode); setOpenDaylightOtherConfig(bridge, ovsdbManagedNode); + Optional operationalBridgeOptional = + state.getOvsdbBridgeAugmentation(iid); if (!operationalBridgeOptional.isPresent()) { setName(bridge, ovsdbManagedNode,operationalBridgeOptional); setPort(transaction, bridge, ovsdbManagedNode); @@ -153,7 +150,7 @@ public class BridgeUpdateCommand implements TransactCommand { Insert interfaceInsert = setInterface(transaction,ovsdbManagedNode); // Port part - String portNamedUuid = "Port_" + SouthboundMapper.getRandomUUID(); + String portNamedUuid = "Port_" + SouthboundMapper.getRandomUuid(); Port port = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Port.class); port.setName(ovsdbManagedNode.getBridgeName().getValue()); port.setInterfaces(Sets.newHashSet(TransactUtils.extractNamedUuid(interfaceInsert))); @@ -164,7 +161,7 @@ public class BridgeUpdateCommand implements TransactCommand { private Insert setInterface(TransactionBuilder transaction, OvsdbBridgeAugmentation ovsdbManagedNode) { // Interface part - String interfaceNamedUuid = "Interface_" + SouthboundMapper.getRandomUUID(); + String interfaceNamedUuid = "Interface_" + SouthboundMapper.getRandomUuid(); Interface interfaceOvs = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Interface.class); interfaceOvs.setName(ovsdbManagedNode.getBridgeName().getValue()); interfaceOvs.setType(SouthboundMapper.createOvsdbInterfaceType(InterfaceTypeInternal.class)); 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 2e75636fb..aa01907b7 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 @@ -9,10 +9,11 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; +import com.google.common.base.Optional; +import com.google.common.collect.Sets; import java.util.Collection; import java.util.Map; import java.util.Set; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.ovsdb.lib.notation.Mutator; @@ -26,9 +27,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import com.google.common.base.Optional; -import com.google.common.collect.Sets; - public class ControllerRemovedCommand implements TransactCommand { @Override 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 4737cf135..608a7d24c 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 @@ -9,10 +9,11 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; +import com.google.common.base.Optional; +import com.google.common.collect.Sets; import java.util.Collection; import java.util.Map; import java.util.Map.Entry; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.ovsdb.lib.notation.Mutator; @@ -27,9 +28,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.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - -import com.google.common.base.Optional; -import com.google.common.collect.Sets; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -70,7 +68,7 @@ public class ControllerUpdateCommand implements TransactCommand { Controller controller = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Controller.class); controller.setTarget(entry.getValue().getTarget().getValue()); - String controllerNamedUuidString = SouthboundMapper.getRandomUUID(); + String controllerNamedUuidString = SouthboundMapper.getRandomUuid(); UUID controllerNamedUuid = new UUID(controllerNamedUuidString); transaction.add(op.insert(controller).withId(controllerNamedUuidString)); 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 c718e8c9a..ee835e568 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 @@ -8,13 +8,12 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; +import com.google.common.base.Optional; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Map.Entry; import java.util.Set; - -import com.google.common.base.Optional; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.ovsdb.southbound.SouthboundUtil; diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/OpenVSwitchBridgeAddCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/OpenVSwitchBridgeAddCommand.java index b90df1225..237858ea7 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/OpenVSwitchBridgeAddCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/OpenVSwitchBridgeAddCommand.java @@ -10,9 +10,9 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; +import com.google.common.collect.Sets; import java.util.Collection; import java.util.List; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.ovsdb.lib.notation.Mutator; @@ -21,8 +21,6 @@ import org.opendaylight.ovsdb.lib.operations.TransactionBuilder; import org.opendaylight.ovsdb.lib.schema.typed.TyperUtils; import org.opendaylight.ovsdb.schema.openvswitch.Bridge; import org.opendaylight.ovsdb.schema.openvswitch.OpenVSwitch; - -import com.google.common.collect.Sets; 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.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; 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 5b4203559..8fa05814b 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 @@ -11,10 +11,11 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; import static org.opendaylight.ovsdb.southbound.SouthboundUtil.schemaMismatchLog; +import com.google.common.base.Optional; +import com.google.common.collect.Sets; import java.util.Collection; import java.util.Map; import java.util.Set; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException; @@ -31,9 +32,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.collect.Sets; - public class ProtocolRemovedCommand implements TransactCommand { private static final Logger LOG = LoggerFactory.getLogger(ProtocolRemovedCommand.class); @@ -52,7 +50,8 @@ public class ProtocolRemovedCommand implements TransactCommand { TransactUtils.extractCreatedOrUpdatedOrRemoved(modifications, OvsdbBridgeAugmentation.class)); } - private void execute(TransactionBuilder transaction, BridgeOperationalState state, Set> removed, + private void execute(TransactionBuilder transaction, BridgeOperationalState state, + Set> removed, Map, OvsdbBridgeAugmentation> updatedBridges) { for (InstanceIdentifier protocolIid : removed) { InstanceIdentifier bridgeIid = 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 1f8ee39d8..ec80b7307 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 @@ -11,10 +11,11 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; import static org.opendaylight.ovsdb.southbound.SouthboundUtil.schemaMismatchLog; +import com.google.common.base.Optional; +import com.google.common.collect.Sets; import java.util.Collection; import java.util.Map; import java.util.Map.Entry; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException; @@ -31,9 +32,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.collect.Sets; - public class ProtocolUpdateCommand implements TransactCommand { private static final Logger LOG = LoggerFactory.getLogger(ProtocolUpdateCommand.class); 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 8822cd8f0..d7f1bddb5 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 @@ -86,11 +86,9 @@ public class QosRemovedCommand implements TransactCommand { .where(qos.getUuidColumn().getSchema().opEqual(new UUID(qosUuid.getValue()))) .build()); } else { - LOG.warn( - "Unable to delete QoS{} for node {} because it was not found in the " + - "operational store, " - + "and thus we cannot retrieve its UUID", origQosEntry.getQosId(), - ovsdbNodeIid); + LOG.warn("Unable to delete QoS{} for node {} because it was not found in the " + + "operational store, and thus we cannot retrieve its UUID", + origQosEntry.getQosId(), 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 e3322fd6f..294e4910d 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 @@ -14,7 +14,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.ovsdb.lib.notation.UUID; @@ -88,11 +87,12 @@ public class QosUpdateCommand implements TransactCommand { } List queueList = qosEntry.getQueueList(); - MapnewQueueList = new HashMap<>(); + Map newQueueList = new HashMap<>(); if (queueList != null && !queueList.isEmpty()) { for (QueueList queue : queueList) { if (queue.getQueueRef() != null) { - newQueueList.put(queue.getQueueNumber(), new UUID(getQueueUuid(queue.getQueueRef(), operNode))); + newQueueList.put(queue.getQueueNumber(), + new UUID(getQueueUuid(queue.getQueueRef(), operNode))); } else if (queue.getQueueUuid() != null) { newQueueList.put(queue.getQueueNumber(), new UUID(queue.getQueueUuid().getValue())); } @@ -123,8 +123,8 @@ public class QosUpdateCommand implements TransactCommand { Uuid operQosUuid = getQosEntryUuid(operQosEntries, qosEntry.getQosId()); if (operQosUuid == null) { - UUID namedUuid = new UUID(SouthboundConstants.QOS_NAMED_UUID_PREFIX + - TransactUtils.bytesToHexString(qosEntry.getQosId().getValue().getBytes())); + UUID namedUuid = new UUID(SouthboundConstants.QOS_NAMED_UUID_PREFIX + + TransactUtils.bytesToHexString(qosEntry.getQosId().getValue().getBytes())); transaction.add(op.insert(qos).withId(namedUuid.toString())).build(); } else { UUID uuid = new UUID(operQosUuid.getValue()); @@ -148,8 +148,8 @@ public class QosUpdateCommand implements TransactCommand { } } } - return SouthboundConstants.QUEUE_NAMED_UUID_PREFIX + - TransactUtils.bytesToHexString(queueKey.getQueueId().getValue().getBytes()); + return SouthboundConstants.QUEUE_NAMED_UUID_PREFIX + + TransactUtils.bytesToHexString(queueKey.getQueueId().getValue().getBytes()); } private Uuid getQosEntryUuid(List operQosEntries, Uri qosId) { 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 2e590af0e..4a7c85129 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 @@ -87,11 +87,9 @@ public class QueueRemovedCommand implements TransactCommand { new UUID(queueUuid.getValue()))) .build()); } else { - LOG.warn( - "Unable to delete Queue{} for node {} because it was not found in the " + - "operational store, " - + "and thus we cannot retrieve its UUID", ovsdbNodeIid, - origQueue.getQueueId()); + LOG.warn("Unable to delete Queue{} for node {} because it was not found in the " + + "operational store, and thus we cannot retrieve its UUID", + ovsdbNodeIid, origQueue.getQueueId()); } } } 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 8d9ea9979..4c6453f31 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 @@ -83,7 +83,7 @@ public class QueueUpdateCommand implements TransactCommand { if (queueEntry.getDscp() != null) { try { Set dscpSet = new HashSet<>(); - if (dscpSet.add(new Long(queueEntry.getDscp().toString()))) { + if (dscpSet.add(new Long(queueEntry.getDscp().toString()))) { queue.setDscp(dscpSet); } } catch (NumberFormatException e) { @@ -114,8 +114,8 @@ public class QueueUpdateCommand implements TransactCommand { Uuid operQueueUuid = getQueueEntryUuid(operQueues, queueEntry.getQueueId()); if (operQueueUuid == null) { - UUID namedUuid = new UUID(SouthboundConstants.QUEUE_NAMED_UUID_PREFIX + - TransactUtils.bytesToHexString(queueEntry.getQueueId().getValue().getBytes())); + UUID namedUuid = new UUID(SouthboundConstants.QUEUE_NAMED_UUID_PREFIX + + TransactUtils.bytesToHexString(queueEntry.getQueueId().getValue().getBytes())); transaction.add(op.insert(queue).withId(namedUuid.toString())).build(); } else { UUID uuid = new UUID(operQueueUuid.getValue()); 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 56eeed40b..968eeaee0 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 @@ -10,6 +10,9 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; import static org.opendaylight.ovsdb.southbound.SouthboundUtil.schemaMismatchLog; +import com.google.common.base.Optional; +import com.google.common.collect.Sets; +import com.google.common.util.concurrent.CheckedFuture; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -17,9 +20,8 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.concurrent.ExecutionException; import java.util.Set; - +import java.util.concurrent.ExecutionException; import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; @@ -57,10 +59,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.collect.Sets; -import com.google.common.util.concurrent.CheckedFuture; - public class TerminationPointCreateCommand implements TransactCommand { private static final Logger LOG = LoggerFactory.getLogger(TerminationPointCreateCommand.class); @@ -75,7 +73,8 @@ public class TerminationPointCreateCommand implements TransactCommand { @Override public void execute(TransactionBuilder transaction, BridgeOperationalState state, Collection> modifications) { - execute(transaction, state, TransactUtils.extractCreated(modifications, OvsdbTerminationPointAugmentation.class), + execute(transaction, state, + TransactUtils.extractCreated(modifications, OvsdbTerminationPointAugmentation.class), TransactUtils.extractCreatedOrUpdated(modifications, Node.class)); } @@ -93,7 +92,7 @@ public class TerminationPointCreateCommand implements TransactCommand { state.getBridgeTerminationPoint(terminationPointIid); if (!terminationPointOptional.isPresent()) { // Configure interface - String interfaceUuid = "Interface_" + SouthboundMapper.getRandomUUID(); + String interfaceUuid = "Interface_" + SouthboundMapper.getRandomUuid(); Interface ovsInterface = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Interface.class); createInterface(terminationPoint, ovsInterface); @@ -102,7 +101,7 @@ public class TerminationPointCreateCommand implements TransactCommand { stampInstanceIdentifier(transaction, entry.getKey(), ovsInterface.getName()); // Configure port with the above interface details - String portUuid = "Port_" + SouthboundMapper.getRandomUUID(); + String portUuid = "Port_" + SouthboundMapper.getRandomUuid(); Port port = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Port.class); createPort(terminationPoint, port, interfaceUuid); transaction.add(op.insert(port).withId(portUuid)); @@ -318,7 +317,7 @@ public class TerminationPointCreateCommand implements TransactCommand { if (terminationPoint.getVlanMode() != null) { Set portVlanMode = new HashSet<>(); VlanMode modelVlanMode = terminationPoint.getVlanMode(); - portVlanMode.add(SouthboundConstants.VLANMODES.values()[modelVlanMode.getIntValue() - 1].getMode()); + portVlanMode.add(SouthboundConstants.VlanModes.values()[modelVlanMode.getIntValue() - 1].getMode()); port.setVlanMode(portVlanMode); } } 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 431f4ba3b..8ed302b46 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 @@ -9,10 +9,11 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; +import com.google.common.base.Optional; +import com.google.common.collect.Sets; import java.util.Collection; import java.util.Map; import java.util.Set; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.ovsdb.lib.notation.Mutator; @@ -29,12 +30,10 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.collect.Sets; - /** - * @author avishnoi@brocade.com (Anil Vishnoi) + * Transaction handler for the TerminationPoints. * + * @author avishnoi@brocade.com (Anil Vishnoi) */ public class TerminationPointDeleteCommand implements TransactCommand { private static final Logger LOG = LoggerFactory.getLogger(TerminationPointDeleteCommand.class); @@ -57,7 +56,8 @@ public class TerminationPointDeleteCommand implements TransactCommand { } private void execute(TransactionBuilder transaction, BridgeOperationalState state, - Map, OvsdbTerminationPointAugmentation> originals, + Map, + OvsdbTerminationPointAugmentation> originals, Map, Node> originalNodes, Set> removedTps) { for (InstanceIdentifier removedTpIid: removedTps) { @@ -68,11 +68,11 @@ public class TerminationPointDeleteCommand implements TransactCommand { OvsdbBridgeAugmentation originalOvsdbBridgeAugmentation = originalNode.getAugmentation(OvsdbBridgeAugmentation.class); String bridgeName = null; - if(originalOvsdbBridgeAugmentation != null) { + if (originalOvsdbBridgeAugmentation != null) { bridgeName = originalOvsdbBridgeAugmentation.getBridgeName().getValue(); } else { Optional bridgeAug = state.getOvsdbBridgeAugmentation(removedTpIid); - if(bridgeAug.isPresent()) { + if (bridgeAug.isPresent()) { bridgeName = bridgeAug.get().getBridgeName().getValue(); } else { LOG.error("Bridge does not exist for termination point {}", removedTpIid); 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 661b8814a..7e5f3a96f 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 @@ -10,6 +10,9 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; import static org.opendaylight.ovsdb.southbound.SouthboundUtil.schemaMismatchLog; +import com.google.common.base.Optional; +import com.google.common.collect.Sets; +import com.google.common.util.concurrent.CheckedFuture; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; @@ -18,7 +21,6 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ExecutionException; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; @@ -30,19 +32,17 @@ import org.opendaylight.ovsdb.lib.operations.TransactionBuilder; import org.opendaylight.ovsdb.lib.schema.typed.TyperUtils; import org.opendaylight.ovsdb.schema.openvswitch.Interface; import org.opendaylight.ovsdb.schema.openvswitch.Port; -import org.opendaylight.ovsdb.southbound.OvsdbConnectionInstance; import org.opendaylight.ovsdb.southbound.SouthboundConstants; import org.opendaylight.ovsdb.southbound.SouthboundProvider; import org.opendaylight.ovsdb.utils.yang.YangUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbPortInterfaceAttributes.VlanMode; 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.OvsdbNodeAugmentation; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbPortInterfaceAttributes.VlanMode; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbQosRef; 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.node.attributes.QosEntries; -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.port._interface.attributes.InterfaceBfd; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.InterfaceExternalIds; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.InterfaceLldp; @@ -57,10 +57,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.collect.Sets; -import com.google.common.util.concurrent.CheckedFuture; - public class TerminationPointUpdateCommand implements TransactCommand { private static final Logger LOG = LoggerFactory.getLogger(TerminationPointUpdateCommand.class); @@ -68,7 +64,8 @@ public class TerminationPointUpdateCommand implements TransactCommand { @Override public void execute(TransactionBuilder transaction, BridgeOperationalState state, AsyncDataChangeEvent, DataObject> events) { - execute(transaction, state, TransactUtils.extractCreatedOrUpdated(events, OvsdbTerminationPointAugmentation.class)); + execute(transaction, state, + TransactUtils.extractCreatedOrUpdated(events, OvsdbTerminationPointAugmentation.class)); } @Override @@ -83,8 +80,9 @@ public class TerminationPointUpdateCommand implements TransactCommand { OvsdbTerminationPointAugmentation> createdOrUpdated) { LOG.trace("TerminationPointUpdateCommand called"); for (Entry, - OvsdbTerminationPointAugmentation> terminationPointEntry : createdOrUpdated.entrySet()) { - updateTerminationPoint(transaction, state, terminationPointEntry.getKey(), terminationPointEntry.getValue()); + OvsdbTerminationPointAugmentation> terminationPointEntry : createdOrUpdated.entrySet()) { + updateTerminationPoint(transaction, state, terminationPointEntry.getKey(), + terminationPointEntry.getValue()); } } @@ -110,7 +108,8 @@ public class TerminationPointUpdateCommand implements TransactCommand { iid.firstIdentifierOf(OvsdbTerminationPointAugmentation.class), terminationPoint.getName()); // Update port - OvsdbBridgeAugmentation operBridge = state.getBridgeNode(iid).get().getAugmentation(OvsdbBridgeAugmentation.class); + OvsdbBridgeAugmentation operBridge = + state.getBridgeNode(iid).get().getAugmentation(OvsdbBridgeAugmentation.class); Port port = TyperUtils.getTypedRowWrapper( transaction.getDatabaseSchema(), Port.class); updatePort(terminationPoint, port, operBridge); @@ -161,8 +160,8 @@ public class TerminationPointUpdateCommand implements TransactCommand { OvsdbQosRef qosRef = terminationPoint.getQosEntry().iterator().next().getQosRef(); Uri qosId = qosRef.getValue().firstKeyOf(QosEntries.class).getQosId(); OvsdbNodeAugmentation operNode = getOperNode(operBridge); - if (operNode != null && operNode.getQosEntries() != null && - !operNode.getQosEntries().isEmpty()) { + if (operNode != null && operNode.getQosEntries() != null + && !operNode.getQosEntries().isEmpty()) { for (QosEntries qosEntry : operNode.getQosEntries()) { if (qosEntry.getQosId().equals(qosId)) { uuidSet.add(new UUID(qosEntry.getQosUuid().getValue())); @@ -170,8 +169,8 @@ public class TerminationPointUpdateCommand implements TransactCommand { } } if (uuidSet.size() == 0) { - uuidSet.add(new UUID(SouthboundConstants.QOS_NAMED_UUID_PREFIX + - TransactUtils.bytesToHexString(qosId.getValue().getBytes()))); + uuidSet.add(new UUID(SouthboundConstants.QOS_NAMED_UUID_PREFIX + + TransactUtils.bytesToHexString(qosId.getValue().getBytes()))); } } else { // Second check if Qos is present and use that (deprecated) @@ -375,7 +374,7 @@ public class TerminationPointUpdateCommand implements TransactCommand { if (terminationPoint.getVlanMode() != null) { Set portVlanMode = new HashSet<>(); VlanMode modelVlanMode = terminationPoint.getVlanMode(); - portVlanMode.add(SouthboundConstants.VLANMODES.values()[modelVlanMode.getIntValue() - 1].getMode()); + portVlanMode.add(SouthboundConstants.VlanModes.values()[modelVlanMode.getIntValue() - 1].getMode()); port.setVlanMode(portVlanMode); } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactCommandAggregator.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactCommandAggregator.java index 17bd9aa35..8bc473070 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactCommandAggregator.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactCommandAggregator.java @@ -26,23 +26,23 @@ public class TransactCommandAggregator implements TransactCommand { private static final Class[] COMMAND_CLASSES = new Class[] { - BridgeUpdateCommand.class, - OpenVSwitchBridgeAddCommand.class, - ControllerUpdateCommand.class, - ControllerRemovedCommand.class, - ProtocolUpdateCommand.class, - ProtocolRemovedCommand.class, - BridgeRemovedCommand.class, - TerminationPointCreateCommand.class, - TerminationPointDeleteCommand.class, - OvsdbNodeUpdateCommand.class, - AutoAttachUpdateCommand.class, - AutoAttachRemovedCommand.class, - QosUpdateCommand.class, - QosRemovedCommand.class, - QueueUpdateCommand.class, - QueueRemovedCommand.class, - TerminationPointUpdateCommand.class, + BridgeUpdateCommand.class, + OpenVSwitchBridgeAddCommand.class, + ControllerUpdateCommand.class, + ControllerRemovedCommand.class, + ProtocolUpdateCommand.class, + ProtocolRemovedCommand.class, + BridgeRemovedCommand.class, + TerminationPointCreateCommand.class, + TerminationPointDeleteCommand.class, + OvsdbNodeUpdateCommand.class, + AutoAttachUpdateCommand.class, + AutoAttachRemovedCommand.class, + QosUpdateCommand.class, + QosRemovedCommand.class, + QueueUpdateCommand.class, + QueueRemovedCommand.class, + TerminationPointUpdateCommand.class, }; @Override diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactInvokerImpl.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactInvokerImpl.java index a179df7d3..0ab60549d 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactInvokerImpl.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/TransactInvokerImpl.java @@ -7,9 +7,9 @@ */ package org.opendaylight.ovsdb.southbound.ovsdb.transact; +import com.google.common.util.concurrent.ListenableFuture; import java.util.Collection; import java.util.List; - import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.ovsdb.lib.operations.OperationResult; @@ -22,8 +22,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.util.concurrent.ListenableFuture; - public class TransactInvokerImpl implements TransactInvoker { private static final Logger LOG = LoggerFactory.getLogger(TransactInvokerImpl.class); private OvsdbConnectionInstance connectionInstance; 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 c5e565a2d..09e90faee 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 @@ -9,6 +9,12 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact; import static org.opendaylight.ovsdb.lib.operations.Operations.op; +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -19,10 +25,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Queue; import java.util.Set; - import javax.annotation.Nullable; - -import com.google.common.base.Predicate; import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; @@ -41,7 +44,6 @@ import org.opendaylight.ovsdb.southbound.SouthboundConstants; 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.network.topology.topology.Node; - import org.opendaylight.yangtools.yang.binding.ChildOf; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.Identifiable; @@ -49,12 +51,6 @@ import org.opendaylight.yangtools.yang.binding.Identifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; -import com.google.common.base.Predicates; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - public class TransactUtils { private static Predicate> hasDataBefore() { return new Predicate>() { @@ -112,8 +108,8 @@ public class TransactUtils { }; } - private static Predicate> modificationIsDeletionAndHasDataBefore - () { + private static Predicate> + modificationIsDeletionAndHasDataBefore() { return new Predicate>() { @Override public boolean apply(@Nullable DataObjectModification input) { @@ -162,6 +158,25 @@ public class TransactUtils { return extractCreatedOrUpdated(changes, clazz, hasNoDataBefore()); } + public static Map,T> extractUpdated( + AsyncDataChangeEvent,DataObject> changes,Class klazz) { + return extract(changes.getUpdatedData(),klazz); + } + + /** + * Extract all the instances of {@code clazz} which were updated in the given set of modifications. + * + * @param changes The changes to process. + * @param clazz The class we're interested in. + * @param The type of changes we're interested in. + * @param The type of changes to process. + * @return The updated instances, mapped by instance identifier. + */ + public static Map, T> extractUpdated( + Collection> changes, Class clazz) { + return extractCreatedOrUpdated(changes, clazz, hasDataBeforeAndDataAfter()); + } + /** * Extract all the instance of {@code clazz} which were created or updated in the given set of modifications, and * which satisfy the given filter. @@ -184,25 +199,6 @@ public class TransactUtils { return result; } - public static Map,T> extractUpdated( - AsyncDataChangeEvent,DataObject> changes,Class klazz) { - return extract(changes.getUpdatedData(),klazz); - } - - /** - * Extract all the instances of {@code clazz} which were updated in the given set of modifications. - * - * @param changes The changes to process. - * @param clazz The class we're interested in. - * @param The type of changes we're interested in. - * @param The type of changes to process. - * @return The updated instances, mapped by instance identifier. - */ - public static Map, T> extractUpdated( - Collection> changes, Class clazz) { - return extractCreatedOrUpdated(changes, clazz, hasDataBeforeAndDataAfter()); - } - public static Map,T> extractCreatedOrUpdated( AsyncDataChangeEvent,DataObject> changes,Class klazz) { Map,T> result = extractUpdated(changes,klazz); @@ -244,7 +240,7 @@ public class TransactUtils { * @return The created, updated or removed instances, mapped by instance identifier. */ public static Map, T> - extractCreatedOrUpdatedOrRemoved( + extractCreatedOrUpdatedOrRemoved( Collection> changes, Class clazz) { Map, T> result = extractCreatedOrUpdated(changes, clazz); result.putAll(extractRemovedObjects(changes, clazz)); @@ -316,9 +312,8 @@ public class TransactUtils { * @return The modifications, mapped by instance identifier. */ private static Map, DataObjectModification> - extractDataObjectModifications( - Collection> changes, Class clazz, - Predicate> filter) { + extractDataObjectModifications(Collection> changes, Class clazz, + Predicate> filter) { List> dataObjectModifications = new ArrayList<>(); List> paths = new ArrayList<>(); if (changes != null) { @@ -342,7 +337,7 @@ public class TransactUtils { * @return The modifications, mapped by instance identifier. */ private static Map, DataObjectModification> - extractDataObjectModifications( + extractDataObjectModifications( Collection> changes, Collection> paths, Class clazz, Predicate> filter) { @@ -374,7 +369,7 @@ public class TransactUtils { * @return The extended path. */ private static & ChildOf, K extends Identifier, T extends DataObject> - InstanceIdentifier extendPath( + InstanceIdentifier extendPath( InstanceIdentifier path, DataObjectModification child) { Class item = (Class) child.getDataType(); @@ -455,7 +450,7 @@ public class TransactUtils { */ public static UUID extractNamedUuid(Insert insert) { String uuidString = insert.getUuidName() != null - ? insert.getUuidName() : SouthboundMapper.getRandomUUID(); + ? insert.getUuidName() : SouthboundMapper.getRandomUuid(); insert.setUuidName(uuidString); return new UUID(uuidString); } @@ -488,7 +483,7 @@ public class TransactUtils { /** * This method builds a string by concatenating the 2 character * hexadecimal representation of each byte from the input byte array. - * + *

* For example: an input byte array containing: * bytes[0] = 'a' * bytes[1] = 'b' @@ -498,7 +493,7 @@ public class TransactUtils { * bytes[5] = '2' * bytes[6] = '3' * returns the string "6162632d313233" - * + *

* @param bytes * The byte array to convert to string * @return The hexadecimal representation of the byte array. If bytes is 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 aad65272e..676782f9c 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 @@ -8,13 +8,16 @@ package org.opendaylight.ovsdb.southbound.reconciliation; import com.google.common.util.concurrent.ThreadFactoryBuilder; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.TimeUnit; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.yangtools.util.concurrent.SpecialExecutors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.concurrent.*; - /** * This class provides the implementation of ovsdb southbound plugins * configuration reconciliation engine. This engine provide interfaces @@ -28,7 +31,7 @@ import java.util.concurrent.*; * if task is ready for execution. * Ideally, addition of any type of reconciliation task should not require * any change in this reconciliation manager execution engine. - * + *

* 3-Node Cluster: * Reconciliation manager is agnostic of whether it's running in single * node cluster or 3-node cluster. It's a responsibility of the task @@ -37,8 +40,7 @@ import java.util.concurrent.*; * Reconciliation of controller initiated connection should be done by all * the 3-nodes in the cluster, because connection to individual controller * can be interrupted for various reason. - * - * Created by Anil Vishnoi (avishnoi@Brocade.com) on 3/9/16. + *

*/ public class ReconciliationManager implements AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(ReconciliationManager.class); @@ -54,7 +56,8 @@ public class ReconciliationManager implements AutoCloseable { public ReconciliationManager(final DataBroker db) { this.db = db; - reconcilers = SpecialExecutors.newBoundedCachedThreadPool(NO_OF_RECONCILER, RECON_TASK_QUEUE_SIZE, "ovsdb-reconciler"); + reconcilers = SpecialExecutors.newBoundedCachedThreadPool(NO_OF_RECONCILER, RECON_TASK_QUEUE_SIZE, + "ovsdb-reconciler"); ThreadFactory threadFact = new ThreadFactoryBuilder() .setNameFormat("ovsdb-recon-task-triager-%d").build(); 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 a1e3f2d0b..7b3bf113b 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 @@ -19,7 +19,6 @@ import org.slf4j.LoggerFactory; * Abstract implementation of a reconciliation task. Each new type of * resource configuration reconciliation task should extend this class * and implement the abstract methods. - * Created by Anil Vishnoi (avishnoi@Brocade.com) on 3/9/16. */ public abstract class ReconciliationTask implements Runnable { @@ -96,16 +95,17 @@ public abstract class ReconciliationTask implements Runnable { } @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) { + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { return false; } - ReconciliationTask that = (ReconciliationTask) o; + ReconciliationTask that = (ReconciliationTask) obj; return nodeIid.equals(that.nodeIid); - } @Override @@ -116,8 +116,6 @@ public abstract class ReconciliationTask implements Runnable { @Override public String toString() { - return "ReconciliationTask{ type=" + getClass().toString()+ - ", nodeIid=" + nodeIid + - '}'; + return "ReconciliationTask{ type=" + getClass().toString() + ", nodeIid=" + nodeIid + '}'; } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/ReconciliationTaskManager.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/ReconciliationTaskManager.java index 2a3e9c35e..d0cb4b76c 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/ReconciliationTaskManager.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/ReconciliationTaskManager.java @@ -7,11 +7,10 @@ */ package org.opendaylight.ovsdb.southbound.reconciliation; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Future; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * This class is a task cache manager that provides a cache to store @@ -19,14 +18,14 @@ import java.util.concurrent.Future; * is submitted to the reconciliation manager, it will be cached in * the cache. If the reconciliation is successful or it's done with * all the attempt of reconciliation, - * + *

* Caching of the task is required, because reconciliation task might * require longer duration to reconcile and there is a possibility that * meanwhile user can change the configuration in config data store while * task is queued for the reconciliation. In that scenario, reconciliation * manager should not attempt any further reconciliation attempt for that * task. ReconciliationManager will call cancelTask() to cancel the task. - * + *

* Created by Anil Vishnoi (avishnoi@Brocade.com) on 3/15/16. */ class ReconciliationTaskManager { @@ -38,17 +37,19 @@ class ReconciliationTaskManager { public boolean isTaskQueued(ReconciliationTask task) { return reconciliationTaskCache.containsKey(task); } + public boolean cancelTask(ReconciliationTask task) { - if(reconciliationTaskCache.containsKey(task)){ + if (reconciliationTaskCache.containsKey(task)) { Future taskFuture = reconciliationTaskCache.remove(task); - if( !taskFuture.isDone() && !taskFuture.isCancelled() ) { - LOG.info("Reconciliation task is cancelled : {}",task); + if (!taskFuture.isDone() && !taskFuture.isCancelled()) { + LOG.info("Reconciliation task is cancelled : {}", task); return taskFuture.cancel(true); } } return false; } + public void cacheTask(ReconciliationTask task, Future taskFuture) { reconciliationTaskCache.put(task,taskFuture); } 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 0f604046f..dfad340f4 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 @@ -8,12 +8,19 @@ package org.opendaylight.ovsdb.southbound.reconciliation.configuration; +import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.CONFIGURATION; + import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; -import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import javax.annotation.Nullable; import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; +import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.ovsdb.southbound.OvsdbConnectionInstance; import org.opendaylight.ovsdb.southbound.OvsdbConnectionManager; @@ -25,8 +32,6 @@ import org.opendaylight.ovsdb.southbound.ovsdb.transact.TransactCommandAggregato 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.BridgeOtherConfigs; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.BridgeOtherConfigsKey; 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; @@ -39,21 +44,12 @@ import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import javax.annotation.Nullable; - -import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.CONFIGURATION; - /** * Configuration Reconciliation task to reconcile existing bridge configurations in the config datastore and the * switch when the latter is up and connected to the controller. * Created by Vinh Nguyen (vinh.nguyen@hcl.com) on 3/21/16. */ -public class BridgeConfigReconciliationTask extends ReconciliationTask{ +public class BridgeConfigReconciliationTask extends ReconciliationTask { private static final Logger LOG = LoggerFactory.getLogger(BridgeConfigReconciliationTask.class); private final OvsdbConnectionInstance connectionInstance; @@ -79,14 +75,16 @@ public class BridgeConfigReconciliationTask extends ReconciliationTask{ Futures.addCallback(readTopologyFuture, new FutureCallback>() { @Override public void onSuccess(@Nullable Optional optionalTopology) { - if (optionalTopology.isPresent()) { - InstanceIdentifier nIid = (InstanceIdentifier) nodeIid; + if (optionalTopology != null && optionalTopology.isPresent()) { + @SuppressWarnings("unchecked") + InstanceIdentifier ndIid = (InstanceIdentifier) nodeIid; Topology topology = optionalTopology.get(); if (topology.getNode() != null) { final Map, DataObject> changes = new HashMap<>(); for (Node node : topology.getNode()) { OvsdbBridgeAugmentation bridge = node.getAugmentation(OvsdbBridgeAugmentation.class); - if (bridge != null && bridge.getManagedBy() != null && bridge.getManagedBy().getValue().equals(nIid)) { + if (bridge != null && bridge.getManagedBy() != null + && bridge.getManagedBy().getValue().equals(ndIid)) { changes.putAll(extractBridgeConfigurationChanges(node, bridge)); } } @@ -98,8 +96,8 @@ public class BridgeConfigReconciliationTask extends ReconciliationTask{ } @Override - public void onFailure(Throwable t) { - LOG.warn("Read Config/DS for Topology failed! {}", nodeIid, t); + public void onFailure(Throwable throwable) { + LOG.warn("Read Config/DS for Topology failed! {}", nodeIid, throwable); } }); 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 f48993620..3ae05af14 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 @@ -7,6 +7,8 @@ */ package org.opendaylight.ovsdb.southbound.reconciliation.connection; +import java.net.UnknownHostException; +import java.util.concurrent.atomic.AtomicInteger; import org.opendaylight.ovsdb.lib.OvsdbClient; import org.opendaylight.ovsdb.southbound.OvsdbConnectionManager; import org.opendaylight.ovsdb.southbound.reconciliation.ReconciliationManager; @@ -18,12 +20,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.net.UnknownHostException; -import java.util.concurrent.atomic.AtomicInteger; - -/** - * Created by Anil Vishnoi (avishnoi@Brocade.com) on 3/9/16. - */ public class ConnectionReconciliationTask extends ReconciliationTask { private static final Logger LOG = LoggerFactory.getLogger(ConnectionReconciliationTask.class); @@ -43,13 +39,13 @@ public class ConnectionReconciliationTask extends ReconciliationTask { public boolean reconcileConfiguration(OvsdbConnectionManager connectionManager) { boolean result = false; connectionAttempt.incrementAndGet(); - InstanceIdentifier nIid = (InstanceIdentifier) nodeIid; + InstanceIdentifier ndIid = (InstanceIdentifier) nodeIid; OvsdbNodeAugmentation ovsdbNode = (OvsdbNodeAugmentation)configData; LOG.info("Retry({}) connection to Ovsdb Node {} ", connectionAttempt.get(), ovsdbNode.getConnectionInfo()); OvsdbClient client = null; try { - client = connectionManager.connect(nIid, ovsdbNode); + client = connectionManager.connect(ndIid, ovsdbNode); if (client != null) { LOG.info("Successfully connected to Ovsdb Node {} ", ovsdbNode.getConnectionInfo()); result = true; @@ -66,7 +62,7 @@ public class ConnectionReconciliationTask extends ReconciliationTask { @Override public void doRetry(boolean wasLastAttemptSuccessful) { - if( !wasLastAttemptSuccessful && connectionAttempt.get() <= MAX_ATTEMPT ) { + if (!wasLastAttemptSuccessful && connectionAttempt.get() <= MAX_ATTEMPT) { reconciliationManager.enqueueForRetry(ConnectionReconciliationTask.this); } else { reconciliationManager.dequeue(this); 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 7bfb9f0b1..bfc2a6f77 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 @@ -15,7 +15,6 @@ import java.util.Map; import java.util.Map.Entry; import java.util.NoSuchElementException; import java.util.Set; - import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException; @@ -41,13 +40,13 @@ 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.OpenvswitchOtherConfigsBuilder; 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.NodeId; -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.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.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.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.yang.binding.KeyedInstanceIdentifier; import org.slf4j.Logger; @@ -73,7 +72,6 @@ public class OpenVSwitchUpdateCommand extends AbstractTransactionCommand { for (Entry entry : updatedOpenVSwitchRows.entrySet()) { OpenVSwitch openVSwitch = entry.getValue(); - OpenVSwitch oldEntry = deletedOpenVSwitchRows.get(entry.getKey()); final InstanceIdentifier nodePath = getInstanceIdentifier(openVSwitch); OvsdbNodeAugmentationBuilder ovsdbNodeBuilder = new OvsdbNodeAugmentationBuilder(); @@ -81,6 +79,7 @@ public class OpenVSwitchUpdateCommand extends AbstractTransactionCommand { setVersion(ovsdbNodeBuilder, openVSwitch); setDataPathTypes(ovsdbNodeBuilder, openVSwitch); setInterfaceTypes(ovsdbNodeBuilder, openVSwitch); + OpenVSwitch oldEntry = deletedOpenVSwitchRows.get(entry.getKey()); setExternalIds(transaction, ovsdbNodeBuilder, oldEntry, openVSwitch); setOtherConfig(transaction, ovsdbNodeBuilder, oldEntry, openVSwitch); ovsdbNodeBuilder.setConnectionInfo(getConnectionInfo()); 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 6dc4698ea..4efe9d51a 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 @@ -8,9 +8,9 @@ package org.opendaylight.ovsdb.southbound.transactions.md; +import com.google.common.base.Optional; import java.util.List; import java.util.Map; - import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.message.TableUpdates; @@ -30,8 +30,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; - public class OvsdbAutoAttachRemovedCommand extends AbstractTransactionCommand { private static final Logger LOG = LoggerFactory.getLogger(OvsdbAutoAttachRemovedCommand.class); 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 aba26dbce..30732331f 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 @@ -8,15 +8,14 @@ package org.opendaylight.ovsdb.southbound.transactions.md; +import com.google.common.base.Optional; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; - import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException; import org.opendaylight.ovsdb.lib.message.TableUpdates; import org.opendaylight.ovsdb.lib.notation.UUID; import org.opendaylight.ovsdb.lib.schema.DatabaseSchema; @@ -31,8 +30,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.AutoattachBuilder; 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.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.autoattach.AutoattachExternalIds; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.autoattach.AutoattachExternalIdsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.autoattach.Mappings; 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; @@ -41,8 +38,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; - public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand { private static final Logger LOG = LoggerFactory.getLogger(OvsdbAutoAttachUpdateCommand.class); @@ -72,7 +67,8 @@ public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand { for (final Entry entry : updatedAutoAttachRows.entrySet()) { final AutoAttach autoAttach = entry.getValue(); final AutoAttach oldAutoAttach = oldAutoAttachRows.get(entry.getKey()); - final Uri uri = new Uri(SouthboundConstants.AUTOATTACH_URI_PREFIX + "://" + autoAttach.getUuid().toString()); + final Uri uri = + new Uri(SouthboundConstants.AUTOATTACH_URI_PREFIX + "://" + autoAttach.getUuid().toString()); // FIXME: To be uncommented when Open vSwitch supports external_ids column // Uri uri = new Uri(getAutoAttachId(autoAttach)); @@ -83,7 +79,8 @@ public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand { .augmentation(OvsdbNodeAugmentation.class) .child(Autoattach.class, new AutoattachKey(new Uri(oldAutoAttach .getUuidColumn().getData().toString()))); - // FIXME: To be uncommented and replaced to currentIid when Open vSwitch supports external_ids column + // FIXME: To be uncommented and replaced to currentIid when + // Open vSwitch supports external_ids column // InstanceIdentifier currentIid = nodeIId // .augmentation(OvsdbNodeAugmentation.class) // .child(Autoattach.class, new AutoattachKey(new Uri(oldAutoAttach @@ -98,11 +95,12 @@ public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand { LOG.debug("AutoAttach table entries not found in operational datastore, need to create it.", e); } - final AutoattachBuilder autoAttachBuilder = (currentAutoattach != null) ? new AutoattachBuilder(currentAutoattach) - : new AutoattachBuilder() - .setAutoattachUuid(new Uuid(entry.getKey().toString())) - .setAutoattachId(uri) - .setKey(new AutoattachKey(uri)); + final AutoattachBuilder autoAttachBuilder = + (currentAutoattach != null) ? new AutoattachBuilder(currentAutoattach) + : new AutoattachBuilder() + .setAutoattachUuid(new Uuid(entry.getKey().toString())) + .setAutoattachId(uri) + .setKey(new AutoattachKey(uri)); if (autoAttach.getSystemNameColumn() != null && autoAttach.getSystemNameColumn().getData() != null @@ -134,14 +132,14 @@ public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand { } } - private void setMappings (AutoattachBuilder autoAttachBuilder, + private void setMappings(AutoattachBuilder autoAttachBuilder, AutoAttach autoAttach) { final Map mappings = autoAttach.getMappingsColumn().getData(); final Set mappingsKeys = mappings.keySet(); final List mappingsList = new ArrayList<>(); for (final Long mappingsKey : mappingsKeys) { final Integer mappingsValue = new Integer(mappings.get(mappingsKey).toString()); - if (mappingsKey != null && mappingsValue != null) { + if (mappingsKey != null) { mappingsList.add(new MappingsBuilder() .setKey(new MappingsKey(mappingsKey)) .setMappingsKey(mappingsKey) @@ -156,7 +154,8 @@ public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand { // private String getAutoAttachId(AutoAttach autoAttach) { // if (autoAttach.getExternalIdsColumn() != null // && autoAttach.getExternalIdsColumn().getData() != null -// && autoAttach.getExternalIdsColumn().getData().containsKey(SouthboundConstants.AUTOATTACH_ID_EXTERNAL_ID_KEY)) { +// && autoAttach.getExternalIdsColumn().getData() +// .containsKey(SouthboundConstants.AUTOATTACH_ID_EXTERNAL_ID_KEY)) { // return autoAttach.getExternalIdsColumn().getData().get(SouthboundConstants.AUTOATTACH_ID_EXTERNAL_ID_KEY); // } else { // return SouthboundConstants.AUTOATTACH_URI_PREFIX + "://" + autoAttach.getUuid().toString(); @@ -181,7 +180,8 @@ public class OvsdbAutoAttachUpdateCommand extends AbstractTransactionCommand { // } // } // } else { -// externalIdsList.add(new AutoattachExternalIdsBuilder().setAutoattachExternalIdKey(SouthboundConstants.AUTOATTACH_ID_EXTERNAL_ID_KEY) +// externalIdsList.add(new AutoattachExternalIdsBuilder() +// .setAutoattachExternalIdKey(SouthboundConstants.AUTOATTACH_ID_EXTERNAL_ID_KEY) // .setAutoattachExternalIdValue(autoAttach.getUuid().toString()).build()); // } // autoAttachBuilder.setAutoattachExternalIds(externalIdsList); 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 a86638ffe..83facc2ab 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 @@ -10,6 +10,9 @@ package org.opendaylight.ovsdb.southbound.transactions.md; import static org.opendaylight.ovsdb.southbound.SouthboundUtil.schemaMismatchLog; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; +import com.google.common.net.InetAddresses; import java.net.InetAddress; import java.net.NetworkInterface; import java.util.ArrayList; @@ -18,7 +21,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; - import org.apache.commons.lang3.math.NumberUtils; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; @@ -65,10 +67,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; -import com.google.common.net.InetAddresses; - public class OvsdbBridgeUpdateCommand extends AbstractTransactionCommand { private static final Logger LOG = LoggerFactory.getLogger(OvsdbBridgeUpdateCommand.class); private Map updatedBridgeRows; @@ -378,6 +376,7 @@ public class OvsdbBridgeUpdateCommand extends AbstractTransactionCommand { } } } + private InstanceIdentifier getInstanceIdentifier(Bridge bridge) { return SouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), bridge); diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerRemovedCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerRemovedCommand.java index 067731b7c..e3e007358 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerRemovedCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerRemovedCommand.java @@ -7,10 +7,10 @@ */ package org.opendaylight.ovsdb.southbound.transactions.md; +import com.google.common.base.Preconditions; import java.util.ArrayList; import java.util.List; import java.util.Map; - import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.message.TableUpdates; @@ -28,8 +28,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.yang.binding.InstanceIdentifier; -import com.google.common.base.Preconditions; - public class OvsdbControllerRemovedCommand extends AbstractTransactionCommand { 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 20d1fdff6..dcc34bb62 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 @@ -7,10 +7,10 @@ */ package org.opendaylight.ovsdb.southbound.transactions.md; +import com.google.common.base.Optional; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.message.TableUpdates; @@ -32,13 +32,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.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.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.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; - -import com.google.common.base.Optional; public class OvsdbControllerUpdateCommand extends AbstractTransactionCommand { private static final Logger LOG = LoggerFactory.getLogger(OvsdbControllerUpdateCommand.class); @@ -133,7 +131,7 @@ public class OvsdbControllerUpdateCommand extends AbstractTransactionCommand { * Find all the {@link Node} bridge nodes for the given connection. * * @param transaction the {@link ReadWriteTransaction} - * @return + * @return map of nodes */ private Map, Node> getBridgeNodes(ReadWriteTransaction transaction) { Map, Node> bridgeNodes = new HashMap<>(); 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 6b9af4b3d..7168d879f 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 @@ -7,10 +7,10 @@ */ package org.opendaylight.ovsdb.southbound.transactions.md; +import com.google.common.base.Preconditions; import java.util.ArrayList; import java.util.List; import java.util.Map; - import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.message.TableUpdates; @@ -28,8 +28,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.yang.binding.InstanceIdentifier; -import com.google.common.base.Preconditions; - public class OvsdbManagersRemovedCommand extends AbstractTransactionCommand { private Map oldOpenVSwitchRows; 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 3ad92c2d9..dfe088a6c 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 @@ -7,10 +7,10 @@ */ package org.opendaylight.ovsdb.southbound.transactions.md; +import com.google.common.base.Optional; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.message.TableUpdates; @@ -36,8 +36,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; - public class OvsdbManagersUpdateCommand extends AbstractTransactionCommand { private static final Logger LOG = LoggerFactory.getLogger(OvsdbManagersUpdateCommand.class); 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 674782e55..96e6965da 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 @@ -8,6 +8,8 @@ package org.opendaylight.ovsdb.southbound.transactions.md; +import com.google.common.base.Optional; +import com.google.common.util.concurrent.CheckedFuture; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; @@ -21,9 +23,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.util.concurrent.CheckedFuture; - public class OvsdbNodeRemoveCommand extends AbstractTransactionCommand { private static final Logger LOG = LoggerFactory.getLogger(OvsdbNodeRemoveCommand.class); private static final long ONE_CONNECTED_MANAGER = 1; diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbOperationalCommandAggregator.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbOperationalCommandAggregator.java index 529fabaab..4aebbbd1d 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbOperationalCommandAggregator.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbOperationalCommandAggregator.java @@ -41,11 +41,13 @@ public class OvsdbOperationalCommandAggregator implements TransactionCommand { commands.add(new OvsdbPortUpdateCommand(key, updates, dbSchema)); commands.add(new OvsdbPortRemoveCommand(key, updates, dbSchema)); - if(dbSchema.getVersion().compareTo(Version.fromString(SouthboundConstants.AUTOATTACH_SUPPORTED_OVS_SCHEMA_VERSION)) >= 0) { + if (dbSchema.getVersion().compareTo( + Version.fromString(SouthboundConstants.AUTOATTACH_SUPPORTED_OVS_SCHEMA_VERSION)) >= 0) { commands.add(new OvsdbAutoAttachUpdateCommand(key, updates, dbSchema)); commands.add(new OvsdbAutoAttachRemovedCommand(key, updates, dbSchema)); } else { - LOG.debug("UNSUPPORTED FUNCTIONALITY: AutoAttach not supported in OVS schema version {}", dbSchema.getVersion().toString()); + LOG.debug("UNSUPPORTED FUNCTIONALITY: AutoAttach not supported in OVS schema version {}", + dbSchema.getVersion().toString()); } } diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortRemoveCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortRemoveCommand.java index 713093640..756fd4961 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortRemoveCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbPortRemoveCommand.java @@ -47,12 +47,12 @@ public class OvsdbPortRemoveCommand extends AbstractTransactionCommand { Bridge.class, getUpdates(), getDbSchema()); for (Port port : portRemovedRows) { Bridge updatedBridgeData = null; - for (UUID bridgeUUID : bridgeUpdatedOldRows.keySet()) { - Bridge oldBridgeData = bridgeUpdatedOldRows.get(bridgeUUID); + for (UUID bridgeUuid : bridgeUpdatedOldRows.keySet()) { + Bridge oldBridgeData = bridgeUpdatedOldRows.get(bridgeUuid); if (oldBridgeData.getPortsColumn() != null && oldBridgeData.getPortsColumn().getData().contains(port.getUuidColumn().getData()) && (! bridgeUpdatedRows.isEmpty())) { - updatedBridgeData = bridgeUpdatedRows.get(bridgeUUID); + updatedBridgeData = bridgeUpdatedRows.get(bridgeUuid); break; } } 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 7a5123dfd..148f3cdde 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 @@ -10,6 +10,7 @@ package org.opendaylight.ovsdb.southbound.transactions.md; import static org.opendaylight.ovsdb.southbound.SouthboundUtil.schemaMismatchLog; +import com.google.common.base.Optional; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; @@ -17,7 +18,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; - import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; @@ -87,8 +87,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; - public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { private static final Logger LOG = LoggerFactory.getLogger(OvsdbPortUpdateCommand.class); private Map portUpdatedRows; @@ -97,6 +95,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { private Map interfaceOldRows; private Map bridgeUpdatedRows; private Map qosUpdatedRows; + public OvsdbPortUpdateCommand(OvsdbConnectionInstance key, TableUpdates updates, DatabaseSchema dbSchema) { super(key, updates, dbSchema); @@ -120,6 +119,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { updateTerminationPoints(transaction, node.get()); } } + private void updateTerminationPoints(ReadWriteTransaction transaction, Node node) { for (Entry portUpdate : portUpdatedRows.entrySet()) { String portName = null; @@ -139,12 +139,11 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); buildTerminationPoint(transaction, tpPath, tpAugmentationBuilder, node, portUpdate); - UUID interfaceUUID = (UUID)portUpdate.getValue().getInterfacesColumn().getData().toArray()[0]; - if (interfaceUpdatedRows.containsKey(interfaceUUID)) { - buildTerminationPoint(tpAugmentationBuilder, - interfaceUpdatedRows.get(interfaceUUID)); - interfaceUpdatedRows.remove(interfaceUUID); - interfaceOldRows.remove(interfaceUUID); + UUID interfaceUuid = (UUID)portUpdate.getValue().getInterfacesColumn().getData().toArray()[0]; + if (interfaceUpdatedRows.containsKey(interfaceUuid)) { + buildTerminationPoint(tpAugmentationBuilder, interfaceUpdatedRows.get(interfaceUuid)); + interfaceUpdatedRows.remove(interfaceUuid); + interfaceOldRows.remove(interfaceUuid); } tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); if (portOldRows.containsKey(portUpdate.getKey()) && !portQosCleared(portUpdate)) { @@ -161,13 +160,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { interfaceName = interfaceUpdatedRows.get(interfaceUpdate.getKey()).getNameColumn().getData(); Optional> bridgeIid = getTerminationPointBridge( transaction, node, interfaceName); if (bridgeIid.isPresent()) { - NodeId bridgeId = SouthboundMapper.createManagedNodeId(bridgeIid.get()); TerminationPointKey tpKey = new TerminationPointKey(new TpId(interfaceName)); - 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); TerminationPointBuilder tpBuilder = new TerminationPointBuilder(); tpBuilder.setKey(tpKey); tpBuilder.setTpId(tpKey.getTpId()); @@ -175,12 +168,19 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { new OvsdbTerminationPointAugmentationBuilder(); buildTerminationPoint(tpAugmentationBuilder, interfaceUpdate.getValue()); tpBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, tpAugmentationBuilder.build()); + NodeId bridgeId = SouthboundMapper.createManagedNodeId(bridgeIid.get()); + 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); transaction.merge(LogicalDatastoreType.OPERATIONAL, tpPath, tpBuilder.build()); } } } + private void buildTerminationPoint(ReadWriteTransaction transaction, InstanceIdentifier tpPath, OvsdbTerminationPointAugmentationBuilder tpAugmentationBuilder, @@ -216,24 +216,25 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { return node; } - private Optional> getTerminationPointBridge( UUID portUUID) { - for (UUID bridgeUUID : this.bridgeUpdatedRows.keySet()) { - if (this.bridgeUpdatedRows.get(bridgeUUID).getPortsColumn().getData().contains(portUUID)) { + private Optional> getTerminationPointBridge(UUID portUuid) { + for (UUID bridgeUuid : this.bridgeUpdatedRows.keySet()) { + if (this.bridgeUpdatedRows.get(bridgeUuid).getPortsColumn().getData().contains(portUuid)) { return Optional.of(SouthboundMapper.createInstanceIdentifier(getOvsdbConnectionInstance(), - this.bridgeUpdatedRows.get(bridgeUUID))); + this.bridgeUpdatedRows.get(bridgeUuid))); } } return Optional.absent(); } + + @SuppressWarnings("unchecked") private Optional> getTerminationPointBridge( final ReadWriteTransaction transaction, Node node, String tpName) { OvsdbNodeAugmentation ovsdbNode = node.getAugmentation(OvsdbNodeAugmentation.class); List managedNodes = ovsdbNode.getManagedNodeEntry(); TpId tpId = new TpId(tpName); for ( ManagedNodeEntry managedNodeEntry : managedNodes ) { - @SuppressWarnings("unchecked") - Node managedNode = readNode(transaction - ,(InstanceIdentifier)managedNodeEntry.getBridgeRef().getValue()).get(); + Node managedNode = readNode(transaction, + (InstanceIdentifier)managedNodeEntry.getBridgeRef().getValue()).get(); for (TerminationPoint tpEntry : managedNode.getTerminationPoint()) { if (tpId.equals(tpEntry.getTpId())) { return Optional.of((InstanceIdentifier)managedNodeEntry.getBridgeRef().getValue()); @@ -317,16 +318,16 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { if (!vlanMode.isEmpty()) { Iterator itr = vlanMode.iterator(); String vlanType = itr.next(); - if (vlanType.equals(SouthboundConstants.VLANMODES.ACCESS.getMode())) { + if (vlanType.equals(SouthboundConstants.VlanModes.ACCESS.getMode())) { ovsdbTerminationPointBuilder .setVlanMode(OvsdbPortInterfaceAttributes.VlanMode.Access); - } else if (vlanType.equals(SouthboundConstants.VLANMODES.NATIVE_TAGGED.getMode())) { + } else if (vlanType.equals(SouthboundConstants.VlanModes.NATIVE_TAGGED.getMode())) { ovsdbTerminationPointBuilder .setVlanMode(OvsdbPortInterfaceAttributes.VlanMode.NativeTagged); - } else if (vlanType.equals(SouthboundConstants.VLANMODES.NATIVE_UNTAGGED.getMode())) { + } else if (vlanType.equals(SouthboundConstants.VlanModes.NATIVE_UNTAGGED.getMode())) { ovsdbTerminationPointBuilder .setVlanMode(OvsdbPortInterfaceAttributes.VlanMode.NativeUntagged); - } else if (vlanType.equals(SouthboundConstants.VLANMODES.TRUNK.getMode())) { + } else if (vlanType.equals(SouthboundConstants.VlanModes.TRUNK.getMode())) { ovsdbTerminationPointBuilder .setVlanMode(OvsdbPortInterfaceAttributes.VlanMode.Trunk); } else { @@ -335,8 +336,10 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { } } - private void updateQos(final ReadWriteTransaction transaction, final Node node, InstanceIdentifier tpPath, - final Entry port, final OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointBuilder) { + @SuppressWarnings("unchecked") + private void updateQos(final ReadWriteTransaction transaction, final Node node, + InstanceIdentifier tpPath, final Entry port, + final OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointBuilder) { if (port.getValue() == null) { return; } @@ -349,8 +352,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { OvsdbNodeAugmentation ovsdbNode = node.getAugmentation(OvsdbNodeAugmentation.class); // Delete an older QoS entry - if (portOldRows.containsKey(port.getKey()) && - portOldRows.get(port.getKey()).getQosColumn() != null) { + if (portOldRows.containsKey(port.getKey()) && portOldRows.get(port.getKey()).getQosColumn() != null) { Collection oldQos = portOldRows.get(port.getKey()).getQosColumn().getData(); if (!oldQos.isEmpty()) { UUID oldQosUuid = oldQos.iterator().next(); @@ -380,6 +382,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { } } + @SuppressWarnings("unchecked") private InstanceIdentifier getQosIid(NodeId nodeId, OvsdbNodeAugmentation ovsdbNode, UUID qosUuid) { // Search for the QoS entry first in the operational datastore for (QosEntries qosEntry : ovsdbNode.getQosEntries()) { @@ -542,7 +545,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { List interfaceLldpList = new ArrayList<>(); for (String interfaceLldpKeyString : interfaceLldpMap.keySet()) { String interfaceLldpValueString = interfaceLldpMap.get(interfaceLldpKeyString); - if (interfaceLldpKeyString != null && interfaceLldpValueString!=null) { + if (interfaceLldpKeyString != null && interfaceLldpValueString != null) { interfaceLldpList.add(new InterfaceLldpBuilder() .setKey(new InterfaceLldpKey(interfaceLldpKeyString)) .setLldpKey(interfaceLldpKeyString) @@ -585,7 +588,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { List interfaceBfdStatusList = new ArrayList<>(); for (String interfaceBfdStatusKeyString : interfaceBfdStatusMap.keySet()) { String interfaceBfdStatusValueString = interfaceBfdStatusMap.get(interfaceBfdStatusKeyString); - if (interfaceBfdStatusKeyString != null && interfaceBfdStatusValueString!=null) { + if (interfaceBfdStatusKeyString != null && interfaceBfdStatusValueString != null) { interfaceBfdStatusList.add(new InterfaceBfdStatusBuilder() .setKey(new InterfaceBfdStatusKey(interfaceBfdStatusKeyString)) .setBfdStatusKey(interfaceBfdStatusKeyString) @@ -609,7 +612,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { List interfaceBfdList = new ArrayList<>(); for (String interfaceBfdKeyString : interfaceBfdMap.keySet()) { String interfaceBfdValueString = interfaceBfdMap.get(interfaceBfdKeyString); - if (interfaceBfdKeyString != null && interfaceBfdValueString!=null) { + if (interfaceBfdKeyString != null && interfaceBfdValueString != null) { interfaceBfdList.add(new InterfaceBfdBuilder() .setKey(new InterfaceBfdKey(interfaceBfdKeyString)) .setBfdKey(interfaceBfdKeyString) @@ -674,6 +677,7 @@ public class OvsdbPortUpdateCommand extends AbstractTransactionCommand { } } + @SuppressWarnings("unchecked") private InstanceIdentifier getInstanceIdentifier(InstanceIdentifier bridgeIid,Port port) { if (port.getExternalIdsColumn() != null && port.getExternalIdsColumn().getData() != null 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 b3e490622..0e2b3566a 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 @@ -8,19 +8,19 @@ package org.opendaylight.ovsdb.southbound.transactions.md; +import com.google.common.base.Optional; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; - import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.message.TableUpdates; import org.opendaylight.ovsdb.lib.notation.UUID; import org.opendaylight.ovsdb.lib.schema.DatabaseSchema; import org.opendaylight.ovsdb.lib.schema.typed.TyperUtils; -import org.opendaylight.ovsdb.schema.openvswitch.Qos; import org.opendaylight.ovsdb.schema.openvswitch.OpenVSwitch; +import org.opendaylight.ovsdb.schema.openvswitch.Qos; import org.opendaylight.ovsdb.southbound.OvsdbConnectionInstance; import org.opendaylight.ovsdb.southbound.SouthboundMapper; import org.opendaylight.ovsdb.southbound.SouthboundUtil; @@ -33,8 +33,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; - public class OvsdbQosRemovedCommand extends AbstractTransactionCommand { private static final Logger LOG = LoggerFactory.getLogger(OvsdbQueueUpdateCommand.class); @@ -78,10 +76,10 @@ public class OvsdbQosRemovedCommand extends AbstractTransactionCommand { return null; } Iterator itr = qosList.iterator(); - Uuid qUuid = new Uuid(qosUuid.toString()); + Uuid quUuid = new Uuid(qosUuid.toString()); while (itr.hasNext()) { QosEntries qos = itr.next(); - if (qos.getQosUuid().equals(qUuid)) { + if (qos.getQosUuid().equals(quUuid)) { return qos.getKey(); } } 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 7fff0ba22..5340cc564 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 @@ -8,13 +8,13 @@ package org.opendaylight.ovsdb.southbound.transactions.md; +import com.google.common.base.Optional; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.Map.Entry; - +import java.util.Set; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.message.TableUpdates; @@ -27,15 +27,15 @@ import org.opendaylight.ovsdb.southbound.OvsdbConnectionInstance; import org.opendaylight.ovsdb.southbound.SouthboundConstants; import org.opendaylight.ovsdb.southbound.SouthboundMapper; import org.opendaylight.ovsdb.southbound.SouthboundUtil; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbQueueRef; 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.QosEntriesBuilder; 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.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.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.QosEntriesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.qos.entries.QosExternalIds; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.qos.entries.QosExternalIdsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.qos.entries.QosExternalIdsKey; @@ -51,8 +51,6 @@ import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; - public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { private static final Logger LOG = LoggerFactory.getLogger(OvsdbQosUpdateCommand.class); @@ -97,12 +95,12 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { if (ovsdbNode.isPresent()) { for (Entry entry : updatedQosRows.entrySet()) { Qos qos = entry.getValue(); - Qos oldQos = oldQosRows.get(entry.getKey()); QosEntriesBuilder qosEntryBuilder = new QosEntriesBuilder(); qosEntryBuilder.setQosId(new Uri(getQosId(qos))); qosEntryBuilder.setQosUuid(new Uuid(entry.getKey().toString())); qosEntryBuilder.setQosType( SouthboundMapper.createQosType(qos.getTypeColumn().getData().toString())); + Qos oldQos = oldQosRows.get(entry.getKey()); setOtherConfig(transaction, qosEntryBuilder, oldQos, qos, nodeIId); setExternalIds(transaction, qosEntryBuilder, oldQos, qos, nodeIId); setQueueList(transaction, qosEntryBuilder, oldQos, qos, nodeIId, ovsdbNode.get()); @@ -118,12 +116,14 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { } } + @SuppressWarnings("unchecked") private String getQosId(Qos qos) { if (qos.getExternalIdsColumn() != null && qos.getExternalIdsColumn().getData() != null && qos.getExternalIdsColumn().getData().containsKey(SouthboundConstants.IID_EXTERNAL_ID_KEY)) { - InstanceIdentifier qosIid = (InstanceIdentifier) SouthboundUtil.deserializeInstanceIdentifier( - qos.getExternalIdsColumn().getData().get(SouthboundConstants.IID_EXTERNAL_ID_KEY)); + InstanceIdentifier qosIid = + (InstanceIdentifier) SouthboundUtil.deserializeInstanceIdentifier( + qos.getExternalIdsColumn().getData().get(SouthboundConstants.IID_EXTERNAL_ID_KEY)); if (qosIid != null) { QosEntriesKey qosEntriesKey = qosIid.firstKeyOf(QosEntries.class); if (qosEntriesKey != null) { @@ -134,8 +134,7 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { return SouthboundConstants.QOS_URI_PREFIX + "://" + qos.getUuid().toString(); } - private Queue getQueue(UUID queueUuid) - { + private Queue getQueue(UUID queueUuid) { for (Entry entry : updatedQueueRows.entrySet()) { if (entry.getKey().equals(queueUuid)) { return entry.getValue(); @@ -144,6 +143,7 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { return null; } + @SuppressWarnings("unchecked") private InstanceIdentifier getQueueIid(UUID queueUuid, Node ovsdbNode) { Queue queue = getQueue(queueUuid); if (queue != null && queue.getExternalIdsColumn() != null @@ -312,7 +312,7 @@ public class OvsdbQosUpdateCommand extends AbstractTransactionCommand { for (Entry queueEntry : queueEntries) { InstanceIdentifier queueIid = getQueueIid(queueEntry.getValue(), ovsdbNode); if (queueIid != null) { - newQueueList.add( + newQueueList.add( new QueueListBuilder() .setQueueNumber(queueEntry.getKey()) .setQueueRef(new OvsdbQueueRef(queueIid)) 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 1a2dba0e6..c3f142a62 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 @@ -8,11 +8,11 @@ package org.opendaylight.ovsdb.southbound.transactions.md; +import com.google.common.base.Optional; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; - import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.message.TableUpdates; @@ -33,8 +33,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; - public class OvsdbQueueRemovedCommand extends AbstractTransactionCommand { private static final Logger LOG = LoggerFactory.getLogger(OvsdbQueueUpdateCommand.class); @@ -78,10 +76,10 @@ public class OvsdbQueueRemovedCommand extends AbstractTransactionCommand { return null; } Iterator itr = queueList.iterator(); - Uuid qUuid = new Uuid(queueUuid.toString()); + Uuid quUuid = new Uuid(queueUuid.toString()); while (itr.hasNext()) { Queues queue = itr.next(); - if (queue.getQueueUuid().equals(qUuid)) { + if (queue.getQueueUuid().equals(quUuid)) { return queue.getKey(); } } 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 2a30c49dc..04fe90beb 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 @@ -8,13 +8,13 @@ package org.opendaylight.ovsdb.southbound.transactions.md; +import com.google.common.base.Optional; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.Map.Entry; - +import java.util.Set; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.ovsdb.lib.message.TableUpdates; @@ -29,8 +29,8 @@ 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.yang.types.rev130715.Uuid; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation; 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.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.QueuesBuilder; +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.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.QueuesExternalIdsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.queues.QueuesExternalIdsKey; @@ -43,8 +43,6 @@ import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; - public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand { private static final Logger LOG = LoggerFactory.getLogger(OvsdbQueueUpdateCommand.class); @@ -76,8 +74,6 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand { *

* * @param transaction the {@link ReadWriteTransaction} - * @param updatedQueueRows updated {@link Queue} rows - */ private void updateQueue(ReadWriteTransaction transaction) { @@ -86,7 +82,6 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand { if (ovsdbNode.isPresent()) { for (Entry entry : updatedQueueRows.entrySet()) { Queue queue = entry.getValue(); - Queue oldQueue = oldQueueRows.get(entry.getKey()); QueuesBuilder queuesBuilder = new QueuesBuilder(); queuesBuilder.setQueueId(new Uri(getQueueId(queue))); queuesBuilder.setQueueUuid(new Uuid(entry.getKey().toString())); @@ -94,6 +89,7 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand { if (!dscp.isEmpty()) { queuesBuilder.setDscp(dscp.iterator().next().shortValue()); } + Queue oldQueue = oldQueueRows.get(entry.getKey()); setOtherConfig(transaction, queuesBuilder, oldQueue, queue, nodeIId); setExternalIds(transaction, queuesBuilder, oldQueue, queue, nodeIId); @@ -108,12 +104,14 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand { } } + @SuppressWarnings("unchecked") private String getQueueId(Queue queue) { if (queue.getExternalIdsColumn() != null && queue.getExternalIdsColumn().getData() != null && queue.getExternalIdsColumn().getData().containsKey(SouthboundConstants.IID_EXTERNAL_ID_KEY)) { - InstanceIdentifier queueIid = (InstanceIdentifier) SouthboundUtil.deserializeInstanceIdentifier( - queue.getExternalIdsColumn().getData().get(SouthboundConstants.IID_EXTERNAL_ID_KEY)); + InstanceIdentifier queueIid = + (InstanceIdentifier) SouthboundUtil.deserializeInstanceIdentifier( + queue.getExternalIdsColumn().getData().get(SouthboundConstants.IID_EXTERNAL_ID_KEY)); if (queueIid != null) { QueuesKey queuesKey = queueIid.firstKeyOf(Queues.class); if (queuesKey != null) { diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/TransactionInvokerImpl.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/TransactionInvokerImpl.java index cd0541524..06101f6c1 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/TransactionInvokerImpl.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/TransactionInvokerImpl.java @@ -8,6 +8,9 @@ package org.opendaylight.ovsdb.southbound.transactions.md; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ThreadFactoryBuilder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -19,7 +22,6 @@ import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadFactory; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; - import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; @@ -29,10 +31,6 @@ import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListen import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ThreadFactoryBuilder; - public class TransactionInvokerImpl implements TransactionInvoker,TransactionChainListener, Runnable, AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(TransactionInvokerImpl.class); diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbSchemaContantsTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbSchemaContantsTest.java index c51f18873..2bdb08983 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbSchemaContantsTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbSchemaContantsTest.java @@ -11,7 +11,7 @@ import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; -import org.opendaylight.ovsdb.southbound.OvsdbSchemaContants.OVSDBSCHEMATABLES; +import org.opendaylight.ovsdb.southbound.OvsdbSchemaContants.OvsdbSchemaTables; public class OvsdbSchemaContantsTest { @@ -28,16 +28,16 @@ public class OvsdbSchemaContantsTest { } @Test public void testGetTableName() { - assertEquals("Error getTableName() did not return correct value", "Open_vSwitch", OVSDBSCHEMATABLES.OPENVSWITCH.getTableName()); + assertEquals("Error getTableName() did not return correct value", "Open_vSwitch", OvsdbSchemaTables.OPENVSWITCH.getTableName()); } @Test public void testGetParentTableName() { - assertEquals("Error getTableName() did not return correct value", null, OVSDBSCHEMATABLES.OPENVSWITCH.getParentTableName()); + assertEquals("Error getTableName() did not return correct value", null, OvsdbSchemaTables.OPENVSWITCH.getParentTableName()); } @Test public void testGetColumnNameInParentTable() { - assertEquals("Error getTableName() did not return correct value", null, OVSDBSCHEMATABLES.OPENVSWITCH.getColumnNameInParentTable()); + assertEquals("Error getTableName() did not return correct value", null, OvsdbSchemaTables.OPENVSWITCH.getColumnNameInParentTable()); } } 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 3664d2fee..dba5cf581 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 @@ -29,7 +29,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; -import org.mockito.stubbing.OngoingStubbing; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.ovsdb.lib.notation.Mutation; import org.opendaylight.ovsdb.lib.notation.Mutator; @@ -199,7 +198,7 @@ public class TransactUtilsTest { Insert insert = mock(Insert.class); when(insert.getUuidName()).thenReturn(UUID_NAME); PowerMockito.mockStatic(SouthboundMapper.class); - PowerMockito.when(SouthboundMapper.getRandomUUID()).thenReturn(UUID_NAME); + PowerMockito.when(SouthboundMapper.getRandomUuid()).thenReturn(UUID_NAME); doNothing().when(insert).setUuidName(anyString()); UUID uuid = mock(UUID.class);