[NO ISSUE][*DB][CLUS] Add failed nodes API to ClusterStateManager

Change-Id: I1b56b29c38f0bbfe54b30ee5781770e90404c528
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3335
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <tillw@apache.org>
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 5e99eec..d0d039d 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
@@ -139,6 +139,11 @@
     Set<String> getParticipantNodes();
 
     /**
+     * @return the set of currently failed nodes
+     */
+    Set<String> getFailedNodes();
+
+    /**
      * 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 8d3187b..720b089 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
@@ -251,6 +251,11 @@
     }
 
     @Override
+    public synchronized Set<String> getFailedNodes() {
+        return new HashSet<>(failedNodes);
+    }
+
+    @Override
     public synchronized Set<String> getParticipantNodes(boolean excludePendingRemoval) {
         final Set<String> participantNodesCopy = getParticipantNodes();
         if (excludePendingRemoval) {