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) {
