Bugfixes for DistributedLockManager functionality
Added a method called broadcastIncludeSelf to ClusterCommunicationService.
Cosmetic improvements: added toString methods

Change-Id: I1d58720c29e6f8642f950670c3a6d95a7019a491
diff --git a/core/api/src/main/java/org/onlab/onos/store/cluster/messaging/ClusterCommunicationService.java b/core/api/src/main/java/org/onlab/onos/store/cluster/messaging/ClusterCommunicationService.java
index cf17fbe..2763eff 100644
--- a/core/api/src/main/java/org/onlab/onos/store/cluster/messaging/ClusterCommunicationService.java
+++ b/core/api/src/main/java/org/onlab/onos/store/cluster/messaging/ClusterCommunicationService.java
@@ -38,6 +38,15 @@
     boolean broadcast(ClusterMessage message) throws IOException;
 
     /**
+     * Broadcast a message to all controller nodes including self.
+     *
+     * @param message  message to send
+     * @return true if the message was sent successfully to all nodes; false otherwise.
+     * @throws IOException when I/O exception of some sort has occurred
+     */
+    boolean broadcastIncludeSelf(ClusterMessage message) throws IOException;
+
+    /**
      * Sends a message to the specified controller node.
      *
      * @param message  message to send
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/BatchReadRequest.java b/core/api/src/main/java/org/onlab/onos/store/service/BatchReadRequest.java
index 86d19b2..7cab847 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/BatchReadRequest.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/BatchReadRequest.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 
+import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 
@@ -41,6 +42,13 @@
         return readRequests;
     }
 
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(getClass())
+                .add("readRequests", readRequests)
+                .toString();
+    }
+
     /**
      * Builder for BatchReadRequest.
      */
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/BatchReadResult.java b/core/api/src/main/java/org/onlab/onos/store/service/BatchReadResult.java
index 683ca1c..b12aa16 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/BatchReadResult.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/BatchReadResult.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 
+import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
 
 /**
@@ -30,4 +31,11 @@
     public int batchSize() {
         return readResults.size();
     }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(getClass())
+                .add("readResults", readResults)
+                .toString();
+    }
 }
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteRequest.java b/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteRequest.java
index 31deb4d..59f36ed 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteRequest.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteRequest.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 
+import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 
@@ -41,6 +42,13 @@
         return writeRequests.size();
     }
 
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(getClass())
+                .add("writeRequests", writeRequests)
+                .toString();
+    }
+
     /**
      * Builder for BatchWriteRequest.
      */
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteResult.java b/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteResult.java
index b185072..fa2e7c4 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteResult.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteResult.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 
+import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
 
 /**
@@ -43,4 +44,11 @@
     public int batchSize() {
         return writeResults.size();
     }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(getClass())
+                .add("writeResults", writeResults)
+                .toString();
+    }
 }
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/DatabaseAdminService.java b/core/api/src/main/java/org/onlab/onos/store/service/DatabaseAdminService.java
index fa73546..0324dfb 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/DatabaseAdminService.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/DatabaseAdminService.java
@@ -1,7 +1,7 @@
 package org.onlab.onos.store.service;
 
 import java.util.Collection;
-import java.util.List;
+import java.util.Set;
 
 import org.onlab.onos.cluster.ControllerNode;
 
@@ -31,9 +31,9 @@
 
     /**
      * Lists all the tables in the database.
-     * @return list of table names.
+     * @return set of table names.
      */
-    public List<String> listTables();
+    public Set<String> listTables();
 
     /**
      * Deletes a table from the database.
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/ReadResult.java b/core/api/src/main/java/org/onlab/onos/store/service/ReadResult.java
index 7aeddda..868dda5 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/ReadResult.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/ReadResult.java
@@ -64,6 +64,7 @@
     @Override
     public String toString() {
         return MoreObjects.toStringHelper(getClass())
+                .add("status", status)
                 .add("tableName", tableName)
                 .add("key", key)
                 .add("value", value)
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/WriteRequest.java b/core/api/src/main/java/org/onlab/onos/store/service/WriteRequest.java
index 6607cfe..5274c19 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/WriteRequest.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/WriteRequest.java
@@ -114,7 +114,7 @@
      */
     public static WriteRequest removeIfVersionMatches(String tableName, String key,
                                       long previousVersion) {
-        return new WriteRequest(REMOVE_IF_VALUE, tableName, key,
+        return new WriteRequest(REMOVE_IF_VERSION, tableName, key,
                                 null, previousVersion, null);
     }
 
@@ -129,7 +129,7 @@
      */
     public static WriteRequest removeIfValueMatches(String tableName, String key,
                                       byte[] oldValue) {
-        return new WriteRequest(Type.REMOVE_IF_VALUE, tableName, key,
+        return new WriteRequest(REMOVE_IF_VALUE, tableName, key,
                                 null, ANY_VERSION, checkNotNull(oldValue));
     }