code: @Override
      public ClusterSummary getClusterInfo() throws TException {
          long start = System.nanoTime();
          try {
              StormClusterState stormClusterState = data.getStormClusterState();
  
              Map<String, Assignment> assignments = new HashMap<>();
  
              // get TopologySummary
              List<TopologySummary> topologySummaries = NimbusUtils.getTopologySummary(stormClusterState, assignments);
  
              // all supervisors
              Map<String, SupervisorInfo> supervisorInfos = Cluster.get_all_SupervisorInfo(stormClusterState, null);
  
              // generate SupervisorSummaries
              List<SupervisorSummary> supervisorSummaries = NimbusUtils.mkSupervisorSummaries(supervisorInfos, assignments);
  
              NimbusSummary nimbusSummary = NimbusUtils.getNimbusSummary(stormClusterState, supervisorSummaries, data);
  
              return new ClusterSummary(nimbusSummary, supervisorSummaries, topologySummaries);
          } catch (TException e) {
              LOG.info("Failed to get ClusterSummary ", e);
              throw e;
          } catch (Exception e) {
              LOG.info("Failed to get ClusterSummary ", e);
              throw new TException(e);
          } finally {
              long end = System.nanoTime();
              SimpleJStormMetric.updateNimbusHistogram("getClusterInfo", (end - start) / TimeUtils.NS_PER_US);
          }
      }
docs: get cluster's summary, it will contain SupervisorSummary and TopologySummary
  
  @return ClusterSummary