MarkGaox commented on code in PR #2961: URL: https://github.com/apache/helix/pull/2961#discussion_r1870498922
########## helix-rest/src/main/java/org/apache/helix/rest/clusterMaintenanceService/StoppableInstancesSelector.java: ########## @@ -136,6 +136,40 @@ public ObjectNode getStoppableInstancesCrossZones(List<String> instances, return result; } + /** + * Evaluates and collects stoppable instances not based on the zone order. + * The method iterates through instances, performing stoppable checks, and records reasons for + * non-stoppability. + * + * @param instances A list of instance to be evaluated. + * @param toBeStoppedInstances A list of instances presumed to be already stopped + * @return An ObjectNode containing: + * - 'stoppableNode': List of instances that can be stopped. + * - 'instance_not_stoppable_with_reasons': A map with the instance name as the key and + * a list of reasons for non-stoppability as the value. + * @throws IOException + */ + public ObjectNode getStoppableInstancesNonZoneBased(List<String> instances, + List<String> toBeStoppedInstances) throws IOException { + ObjectNode result = JsonNodeFactory.instance.objectNode(); + ArrayNode stoppableInstances = + result.putArray(InstancesAccessor.InstancesProperties.instance_stoppable_parallel.name()); + ObjectNode failedStoppableInstances = result.putObject( + InstancesAccessor.InstancesProperties.instance_not_stoppable_with_reasons.name()); + Set<String> toBeStoppedInstancesSet = new HashSet<>(toBeStoppedInstances); + findToBeStoppedInstances(toBeStoppedInstancesSet); + + // Because zone order calculation is omitted, we must verify each instance's existence + // to ensure we only process valid instances before performing stoppable check. + Set<String> nonExistingInstances = processNonexistentInstances(instances, failedStoppableInstances); Review Comment: Yes, processNonexistentInstances will add non-existing instances to the response result. -- 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: reviews-unsubscr...@helix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@helix.apache.org For additional commands, e-mail: reviews-h...@helix.apache.org