package com.hubspot.singularity.expiring; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Optional; import com.hubspot.singularity.MachineState; import com.hubspot.singularity.api.SingularityMachineChangeRequest; public class SingularityExpiringMachineState extends SingularityExpiringParent<SingularityMachineChangeRequest> { private final String machineId; private final MachineState revertToState; private final boolean killTasksOnDecommissionTimeout; @JsonCreator public SingularityExpiringMachineState(@JsonProperty("user") Optional<String> user, @JsonProperty("startMillis") long startMillis, @JsonProperty("actionId") String actionId, @JsonProperty("expiringAPIRequestObject") SingularityMachineChangeRequest machineChangeRequest, @JsonProperty("machineId") String machineId, @JsonProperty("revertToState") MachineState revertToState, @JsonProperty("killTasksOnDecommissionTimeout") Optional<Boolean> killTasksOnDecommissionTimeout) { super(machineChangeRequest, user, startMillis, actionId); this.machineId = machineId; this.revertToState = revertToState; this.killTasksOnDecommissionTimeout = killTasksOnDecommissionTimeout.or(false); } public String getMachineId() { return machineId; } public MachineState getRevertToState() { return revertToState; } public boolean isKillTasksOnDecommissionTimeout() { return killTasksOnDecommissionTimeout; } @Override public String toString() { return "SingularityExpiringMachineState{" + "machineId='" + machineId + '\'' + ", revertToState=" + revertToState + ", killTasksOnDecommissionTimeout=" + killTasksOnDecommissionTimeout + "} " + super.toString(); } }