package com.hubspot.singularity.executor;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;
public class SingularityExecutorCleanupStatistics {
private final int totalTaskFiles;
private final int ioErrorTasks;
private final int runningTasksIgnored;
private final int mesosRunningTasks;
private final int successfullyCleanedTasks;
private final int errorTasks;
private final int waitingTasks;
private final int invalidTasks;
private final Optional<String> errorMessage;
@JsonCreator
public SingularityExecutorCleanupStatistics(@JsonProperty("totalTaskFiles") int totalTaskFiles, @JsonProperty("mesosRunningTasks") int mesosRunningTasks, @JsonProperty("waitingTasks") int waitingTasks,
@JsonProperty("runningTasksIgnored") int runningTasksIgnored, @JsonProperty("successfullyCleanedTasks") int successfullyCleanedTasks, @JsonProperty("ioErrorTasks") int ioErrorTasks,
@JsonProperty("errorTasks") int errorTasks, @JsonProperty("invalidTasks") int invalidTasks, @JsonProperty("errorMessage") Optional<String> errorMessage) {
this.errorMessage = errorMessage;
this.totalTaskFiles = totalTaskFiles;
this.mesosRunningTasks = mesosRunningTasks;
this.runningTasksIgnored = runningTasksIgnored;
this.ioErrorTasks = ioErrorTasks;
this.successfullyCleanedTasks = successfullyCleanedTasks;
this.errorTasks = errorTasks;
this.invalidTasks = invalidTasks;
this.waitingTasks = waitingTasks;
}
public int getWaitingTasks() {
return waitingTasks;
}
public int getRunningTasksIgnored() {
return runningTasksIgnored;
}
public int getIoErrorTasks() {
return ioErrorTasks;
}
public int getTotalTaskFiles() {
return totalTaskFiles;
}
public int getMesosRunningTasks() {
return mesosRunningTasks;
}
public int getSuccessfullyCleanedTasks() {
return successfullyCleanedTasks;
}
public int getErrorTasks() {
return errorTasks;
}
public int getInvalidTasks() {
return invalidTasks;
}
public Optional<String> getErrorMessage() {
return errorMessage;
}
@Override
public String toString() {
return "SingularityExecutorCleanupStatistics [totalTaskFiles=" + totalTaskFiles + ", ioErrorTasks=" + ioErrorTasks + ", runningTasksIgnored=" + runningTasksIgnored + ", mesosRunningTasks="
+ mesosRunningTasks + ", successfullyCleanedTasks=" + successfullyCleanedTasks + ", errorTasks=" + errorTasks + ", waitingTasks=" + waitingTasks + ", invalidTasks=" + invalidTasks
+ ", errorMessage=" + errorMessage + "]";
}
public static class SingularityExecutorCleanupStatisticsBuilder {
private int totalTaskFiles;
private int runningTasksIgnored;
private int mesosRunningTasks;
private int waitingTasks;
private int successfullyCleanedTasks;
private int ioErrorTasks;
private int errorTasks;
private int invalidTasks;
private String errorMessage;
public void incrTotalTaskFiles() {
totalTaskFiles++;
}
public void incrRunningTasksIgnored() {
runningTasksIgnored++;
}
public void incrIoErrorTasks() {
ioErrorTasks++;
}
public void incrWaitingTasks() {
waitingTasks++;
}
public void setMesosRunningTasks(int mesosRunningTasks) {
this.mesosRunningTasks = mesosRunningTasks;
}
public void incrErrorTasks() {
errorTasks++;
}
public void incrSuccessfullyCleanedTasks() {
successfullyCleanedTasks++;
}
public void incrInvalidTasks() {
invalidTasks++;
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
public SingularityExecutorCleanupStatistics build() {
return new SingularityExecutorCleanupStatistics(totalTaskFiles, mesosRunningTasks, waitingTasks, runningTasksIgnored, successfullyCleanedTasks, ioErrorTasks, errorTasks, invalidTasks, Optional.fromNullable(errorMessage));
}
}
}