package io.cattle.platform.servicediscovery.deployment.impl.healthaction; import io.cattle.platform.servicediscovery.deployment.impl.unit.DeploymentUnit; import java.util.ArrayList; import java.util.List; public class RecreateOnQuorumHealthCheckActionHandler implements HealthCheckActionHandler { Integer quorum; public RecreateOnQuorumHealthCheckActionHandler(Integer quorum) { this.quorum = quorum; } @Override public void populateHealthyUnhealthyUnits(List<DeploymentUnit> healthyUnits, List<DeploymentUnit> unhealthyUnits, List<DeploymentUnit> units) { List<DeploymentUnit> unhealthy = new ArrayList<>(); List<DeploymentUnit> initializing = new ArrayList<>(); for (DeploymentUnit unit : units) { if (unit.isUnhealthy()) { unhealthy.add(unit); } else if (unit.isHealthCheckInitializing()) { initializing.add(unit); } else { healthyUnits.add(unit); } } if (healthyUnits.size() >= quorum) { unhealthyUnits.addAll(unhealthy); } else { healthyUnits.addAll(unhealthy); } healthyUnits.addAll(initializing); } }