code: public static Map<String, SupervisorInfo> get_all_SupervisorInfo(
              StormClusterState stormClusterState, RunnableCallback callback) throws Exception {
          Map<String, SupervisorInfo> rtn = new TreeMap<>();
          // get /ZK/supervisors
          List<String> supervisorIds = stormClusterState.supervisors(callback);
          // ignore any supervisors in blacklist
          List<String> blacklist = stormClusterState.get_blacklist();
  
          if (supervisorIds != null) {
              for (Iterator<String> iter = supervisorIds.iterator(); iter.hasNext(); ) {
                  String supervisorId = iter.next();
                  // get /supervisors/supervisorid
                  SupervisorInfo supervisorInfo = stormClusterState.supervisor_info(supervisorId);
                  if (supervisorInfo == null) {
                      LOG.warn("Failed to get SupervisorInfo of " + supervisorId);
                  } else if (blacklist.contains(supervisorInfo.getHostName())) {
                      LOG.warn(" hostname:" + supervisorInfo.getHostName() + " is in blacklist");
                  } else {
                      rtn.put(supervisorId, supervisorInfo);
                  }
              }
          } else {
              LOG.info("No alive supervisor");
          }
  
          return rtn;
      }
docs: get all SupervisorInfo of storm cluster
  
  @param stormClusterState storm cluster state
  @param callback          watcher callback
  @return Map[supervisorId, SupervisorInfo]