Fix findbugs violations in hwvtepsouthbound-impl
[ovsdb.git] / hwvtepsouthbound / hwvtepsouthbound-impl / src / main / java / org / opendaylight / ovsdb / hwvtepsouthbound / transactions / md / HwvtepGlobalRemoveCommand.java
index 848cb5a6171e54cb96d56f018908138e48e7f618..998348eec318c0b00460c90605f013e76e8ca7aa 100644 (file)
@@ -8,6 +8,9 @@
 
 package org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md;
 
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.CheckedFuture;
+import java.util.concurrent.ExecutionException;
 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;
@@ -18,25 +21,30 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.Managers;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.Switches;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
-
 public class HwvtepGlobalRemoveCommand extends AbstractTransactionCommand {
     private static final Logger LOG = LoggerFactory.getLogger(HwvtepGlobalRemoveCommand.class);
     private static final long ONE_CONNECTED_MANAGER = 1;
     private static final long ONE_ACTIVE_CONNECTION_IN_PASSIVE_MODE = 1;
+    private final InstanceIdentifier<Node> nodeInstanceIdentifier;
 
     public HwvtepGlobalRemoveCommand(HwvtepConnectionInstance key, TableUpdates updates, DatabaseSchema dbSchema) {
         super(key, updates, dbSchema);
+        this.nodeInstanceIdentifier = key.getInstanceIdentifier();
+    }
+
+    public HwvtepGlobalRemoveCommand(InstanceIdentifier<Node> nodeInstanceIdentifier) {
+        super(null, null, null);
+        this.nodeInstanceIdentifier = nodeInstanceIdentifier;
     }
 
     @Override
     public void execute(ReadWriteTransaction transaction) {
         CheckedFuture<Optional<Node>, ReadFailedException> hwvtepGlobalFuture = transaction.read(
-                LogicalDatastoreType.OPERATIONAL, getOvsdbConnectionInstance().getInstanceIdentifier());
+                LogicalDatastoreType.OPERATIONAL, nodeInstanceIdentifier);
         try {
             Optional<Node> hwvtepGlobalOptional = hwvtepGlobalFuture.get();
             if (hwvtepGlobalOptional.isPresent()) {
@@ -56,20 +64,18 @@ public class HwvtepGlobalRemoveCommand extends AbstractTransactionCommand {
                     } else {
                         LOG.warn("{} had no HwvtepGlobalAugmentation", hwvtepNode.getNodeId().getValue());
                     }
-                    transaction.delete(LogicalDatastoreType.OPERATIONAL,
-                            getOvsdbConnectionInstance().getInstanceIdentifier());
+                    transaction.delete(LogicalDatastoreType.OPERATIONAL, nodeInstanceIdentifier);
                 } else {
                     LOG.debug("Other southbound plugin instances in cluster are connected to the device,"
                             + " not deleting OvsdbNode form data store.");
                 }
             }
-        } catch (Exception e) {
-            LOG.warn("Failure to delete ovsdbNode {}", e);
+        } catch (InterruptedException | ExecutionException e) {
+            LOG.warn("Failure to delete ovsdbNode", e);
         }
     }
 
     private boolean checkIfOnlyConnectedManager(HwvtepGlobalAugmentation hgAugmentation) {
-        Managers onlyConnectedManager = null;
         if (hgAugmentation != null) {
             int connectedManager = 0;
             if (hgAugmentation.getManagers() != null) {
@@ -79,7 +85,6 @@ public class HwvtepGlobalRemoveCommand extends AbstractTransactionCommand {
                         if (connectedManager > ONE_CONNECTED_MANAGER) {
                             return false;
                         }
-                        onlyConnectedManager = manager;
                     }
                 }
             }