package com.hubspot.singularity; import java.util.List; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Optional; public class SingularityState { private final int activeTasks; private final int launchingTasks; private final int pausedRequests; private final int activeRequests; private final int cooldownRequests; private final int scheduledTasks; private final int lateTasks; private final int futureTasks; private final int cleaningTasks; private final int lbCleanupTasks; private final int lbCleanupRequests; private final long maxTaskLag; private final int pendingRequests; private final int cleaningRequests; private final int finishedRequests; private final int activeSlaves; private final int deadSlaves; private final int decommissioningSlaves; private final int unknownSlaves; private final int activeRacks; private final int deadRacks; private final int decommissioningRacks; private final int unknownRacks; private final long oldestDeploy; private final int numDeploys; private final long oldestDeployStep; private final List<SingularityDeployMarker> activeDeploys; private final long generatedAt; private final List<SingularityHostState> hostStates; private final List<String> overProvisionedRequestIds; private final List<String> underProvisionedRequestIds; private final int overProvisionedRequests; private final int underProvisionedRequests; private final Optional<Boolean> authDatastoreHealthy; private final Optional<Double> minimumPriorityLevel; private final long avgStatusUpdateDelayMs; @JsonCreator public SingularityState(@JsonProperty("activeTasks") int activeTasks, @JsonProperty("launchingTasks") int launchingTasks, @JsonProperty("activeRequests") int activeRequests, @JsonProperty("cooldownRequests") int cooldownRequests, @JsonProperty("pausedRequests") int pausedRequests, @JsonProperty("scheduledTasks") int scheduledTasks, @JsonProperty("pendingRequests") int pendingRequests, @JsonProperty("lbCleanupTasks") int lbCleanupTasks, @JsonProperty("lbCleanupRequests") int lbCleanupRequests, @JsonProperty("cleaningRequests") int cleaningRequests, @JsonProperty("activeSlaves") int activeSlaves, @JsonProperty("deadSlaves") int deadSlaves, @JsonProperty("decommissioningSlaves") int decommissioningSlaves, @JsonProperty("activeRacks") int activeRacks, @JsonProperty("deadRacks") int deadRacks, @JsonProperty("decommissioningRacks") int decommissioningRacks, @JsonProperty("cleaningTasks") int cleaningTasks, @JsonProperty("hostStates") List<SingularityHostState> hostStates, @JsonProperty("oldestDeploy") long oldestDeploy, @JsonProperty("numDeploys") int numDeploys, @JsonProperty("oldestDeployStep") long oldestDeployStep, @JsonProperty("activeDeploys") List<SingularityDeployMarker> activeDeploys, @JsonProperty("lateTasks") int lateTasks, @JsonProperty("futureTasks") int futureTasks, @JsonProperty("maxTaskLag") long maxTaskLag, @JsonProperty("generatedAt") long generatedAt, @JsonProperty("overProvisionedRequestIds") List<String> overProvisionedRequestIds, @JsonProperty("underProvisionedRequestIds") List<String> underProvisionedRequestIds, @JsonProperty("overProvisionedRequests") int overProvisionedRequests, @JsonProperty("underProvisionedRequests") int underProvisionedRequests, @JsonProperty("finishedRequests") int finishedRequests, @JsonProperty("unknownRacks") int unknownRacks, @JsonProperty("unknownSlaves") int unknownSlaves, @JsonProperty("authDatastoreHealthy") Optional<Boolean> authDatastoreHealthy, @JsonProperty("minimumPriorityLevel") Optional<Double> minimumPriorityLevel, @JsonProperty("avgStatusUpdateDelayMs") long avgStatusUpdateDelayMs) { this.activeTasks = activeTasks; this.launchingTasks = launchingTasks; this.activeRequests = activeRequests; this.pausedRequests = pausedRequests; this.cooldownRequests = cooldownRequests; this.scheduledTasks = scheduledTasks; this.pendingRequests = pendingRequests; this.cleaningRequests = cleaningRequests; this.activeRacks = activeRacks; this.generatedAt = generatedAt; this.activeSlaves = activeSlaves; this.deadRacks = deadRacks; this.deadSlaves = deadSlaves; this.unknownSlaves = unknownSlaves; this.unknownRacks = unknownRacks; this.decommissioningRacks = decommissioningRacks; this.decommissioningSlaves = decommissioningSlaves; this.cleaningTasks = cleaningTasks; this.hostStates = hostStates; this.lateTasks = lateTasks; this.finishedRequests = finishedRequests; this.futureTasks = futureTasks; this.maxTaskLag = maxTaskLag; this.oldestDeploy = oldestDeploy; this.numDeploys = numDeploys; this.oldestDeployStep = oldestDeployStep; this.activeDeploys = activeDeploys; this.lbCleanupTasks = lbCleanupTasks; this.lbCleanupRequests = lbCleanupRequests; this.underProvisionedRequests = underProvisionedRequests; this.overProvisionedRequests = overProvisionedRequests; this.overProvisionedRequestIds = overProvisionedRequestIds; this.underProvisionedRequestIds = underProvisionedRequestIds; this.authDatastoreHealthy = authDatastoreHealthy; this.minimumPriorityLevel = minimumPriorityLevel; this.avgStatusUpdateDelayMs = avgStatusUpdateDelayMs; } public int getFinishedRequests() { return finishedRequests; } public long getGeneratedAt() { return generatedAt; } public long getOldestDeploy() { return oldestDeploy; } public int getNumDeploys() { return numDeploys; } public long getOldestDeployStep() { return oldestDeployStep; } public List<SingularityDeployMarker> getActiveDeploys() { return activeDeploys; } public int getPausedRequests() { return pausedRequests; } public List<SingularityHostState> getHostStates() { return hostStates; } public int getCleaningTasks() { return cleaningTasks; } public int getActiveSlaves() { return activeSlaves; } public int getDeadSlaves() { return deadSlaves; } public int getDecommissioningSlaves() { return decommissioningSlaves; } @Deprecated public int getDecomissioningSlaves() { return decommissioningSlaves; } public int getActiveRacks() { return activeRacks; } public int getDeadRacks() { return deadRacks; } @Deprecated public int getDecomissioningRacks() { return decommissioningRacks; } public int getDecommissioningRacks() { return decommissioningRacks; } public int getActiveTasks() { return activeTasks; } public int getLaunchingTasks() { return launchingTasks; } public int getAllRequests() { return getActiveRequests() + getCooldownRequests() + getPausedRequests(); } public int getActiveRequests() { return activeRequests; } public int getCooldownRequests() { return cooldownRequests; } public int getScheduledTasks() { return scheduledTasks; } public int getPendingRequests() { return pendingRequests; } public int getCleaningRequests() { return cleaningRequests; } public int getLateTasks() { return lateTasks; } public int getFutureTasks() { return futureTasks; } public long getMaxTaskLag() { return maxTaskLag; } public int getLbCleanupTasks() { return lbCleanupTasks; } public int getLbCleanupRequests() { return lbCleanupRequests; } public List<String> getOverProvisionedRequestIds() { return overProvisionedRequestIds; } public List<String> getUnderProvisionedRequestIds() { return underProvisionedRequestIds; } public int getOverProvisionedRequests() { return overProvisionedRequests; } public int getUnderProvisionedRequests() { return underProvisionedRequests; } public int getUnknownSlaves() { return unknownSlaves; } public int getUnknownRacks() { return unknownRacks; } public Optional<Boolean> getAuthDatastoreHealthy() { return authDatastoreHealthy; } public Optional<Double> getMinimumPriorityLevel() { return minimumPriorityLevel; } public long getAvgStatusUpdateDelayMs() { return avgStatusUpdateDelayMs; } @Override public String toString() { return "SingularityState{" + "activeTasks=" + activeTasks + ", launchingTasks=" + launchingTasks + ", pausedRequests=" + pausedRequests + ", activeRequests=" + activeRequests + ", cooldownRequests=" + cooldownRequests + ", scheduledTasks=" + scheduledTasks + ", lateTasks=" + lateTasks + ", futureTasks=" + futureTasks + ", cleaningTasks=" + cleaningTasks + ", lbCleanupTasks=" + lbCleanupTasks + ", lbCleanupRequests=" + lbCleanupRequests + ", maxTaskLag=" + maxTaskLag + ", pendingRequests=" + pendingRequests + ", cleaningRequests=" + cleaningRequests + ", finishedRequests=" + finishedRequests + ", activeSlaves=" + activeSlaves + ", deadSlaves=" + deadSlaves + ", decommissioningSlaves=" + decommissioningSlaves + ", unknownSlaves=" + unknownSlaves + ", activeRacks=" + activeRacks + ", deadRacks=" + deadRacks + ", decommissioningRacks=" + decommissioningRacks + ", unknownRacks=" + unknownRacks + ", oldestDeploy=" + oldestDeploy + ", numDeploys=" + numDeploys + ", oldestDeployStep=" + oldestDeployStep + ", activeDeploys=" + activeDeploys + ", generatedAt=" + generatedAt + ", hostStates=" + hostStates + ", overProvisionedRequestIds=" + overProvisionedRequestIds + ", underProvisionedRequestIds=" + underProvisionedRequestIds + ", overProvisionedRequests=" + overProvisionedRequests + ", underProvisionedRequests=" + underProvisionedRequests + ", authDatastoreHealthy=" + authDatastoreHealthy + ", minimumPriorityLevel=" + minimumPriorityLevel + ", avgStatusUpdateDelayMs=" + avgStatusUpdateDelayMs + '}'; } }