This is an automated email from the ASF dual-hosted git repository.

dlych pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit d06b0070d5a29443a6688339370bb364f5e75a4a
Author: Michael Blow <[email protected]>
AuthorDate: Fri Apr 12 12:24:06 2019 -0400

    [NO ISSUE][*DB][CLUS] Add API to return all known nodes atomically
    
    Change-Id: Ie6bb64e331666ef44b07034d430ba2ee563bba82
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/3340
    Reviewed-by: Murtadha Hubail <[email protected]>
    Tested-by: Jenkins <[email protected]>
---
 .../org/apache/asterix/common/cluster/IClusterStateManager.java    | 5 +++++
 .../java/org/apache/asterix/runtime/utils/ClusterStateManager.java | 7 +++++++
 2 files changed, 12 insertions(+)

diff --git 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/cluster/IClusterStateManager.java
 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/cluster/IClusterStateManager.java
index d0d039d..0e62851 100644
--- 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/cluster/IClusterStateManager.java
+++ 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/cluster/IClusterStateManager.java
@@ -144,6 +144,11 @@ public interface IClusterStateManager {
     Set<String> getFailedNodes();
 
     /**
+     * @return the set of cluster nodes
+     */
+    Set<String> getNodes();
+
+    /**
      * Returns the IO devices configured for a Node Controller
      *
      * @param nodeId
diff --git 
a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java
 
b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java
index 720b089..16a479e 100644
--- 
a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java
+++ 
b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java
@@ -256,6 +256,13 @@ public class ClusterStateManager implements 
IClusterStateManager {
     }
 
     @Override
+    public synchronized Set<String> getNodes() {
+        Set<String> nodes = new HashSet<>(participantNodes);
+        nodes.addAll(failedNodes);
+        return nodes;
+    }
+
+    @Override
     public synchronized Set<String> getParticipantNodes(boolean 
excludePendingRemoval) {
         final Set<String> participantNodesCopy = getParticipantNodes();
         if (excludePendingRemoval) {

Reply via email to