krishna-st commented on code in PR #17475:
URL: https://github.com/apache/pinot/pull/17475#discussion_r2677390804


##########
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/PinotHelixTaskResourceManager.java:
##########
@@ -1340,6 +1343,121 @@ public Map<String, Map<String, Long>> 
getTaskMetadataLastUpdateTimeMs() {
     return 
MinionTaskMetadataUtils.getAllTaskMetadataLastUpdateTimeMs(propertyStore);
   }
 
+  /**
+   * Gets the status of all minion instances, including their task counts and 
drain state.
+   *
+   * @param statusFilter Optional filter by status ("ONLINE" or "DRAINED"). If 
null, returns all minions.
+   * @param limit Maximum number of minions to return. If 0 or negative, 
returns all minions.
+   * @return MinionStatusResponse containing status information for minion 
instances
+   */
+  public MinionStatusResponse getMinionStatus(String statusFilter, int limit) {
+    // Validate status filter
+    if (statusFilter != null && !statusFilter.isEmpty()) {
+      if (!"ONLINE".equalsIgnoreCase(statusFilter) && 
!"DRAINED".equalsIgnoreCase(statusFilter)) {
+        throw new IllegalArgumentException("Invalid status filter. Must be 
'ONLINE' or 'DRAINED'");
+      }
+    }
+
+    // Get all instances and filter for minions, then sort them
+    List<String> allInstances = _helixResourceManager.getAllInstances();
+    List<String> minionInstances = allInstances.stream()
+        .filter(InstanceTypeUtils::isMinion)
+        .sorted()
+        .collect(Collectors.toList());
+
+    // Get running task counts per minion (if a task resource manager is 
provided)
+    Map<String, Integer> runningTaskCounts = new HashMap<>();
+      try {
+        runningTaskCounts = getRunningTaskCountsPerMinion();

Review Comment:
   Added the flag



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to