package com.hubspot.singularity; public enum TaskCleanupType { USER_REQUESTED(true, true), USER_REQUESTED_TASK_BOUNCE(false, false), DECOMISSIONING(false, false), SCALING_DOWN(true, false), BOUNCING(false, false), INCREMENTAL_BOUNCE(false, false), DEPLOY_FAILED(true, true), NEW_DEPLOY_SUCCEEDED(true, false), DEPLOY_STEP_FINISHED(true, false), DEPLOY_CANCELED(true, true), TASK_EXCEEDED_TIME_LIMIT(true, true), UNHEALTHY_NEW_TASK(true, true), OVERDUE_NEW_TASK(true, true), USER_REQUESTED_DESTROY(true, true), INCREMENTAL_DEPLOY_FAILED(false, true), INCREMENTAL_DEPLOY_CANCELLED(false, true), PRIORITY_KILL(true, true), REBALANCE_RACKS(false, false), PAUSING(false, false), PAUSE(true, true), DECOMMISSION_TIMEOUT(true, true), REQUEST_DELETING(true, true); private final boolean killLongRunningTaskInstantly; private final boolean killNonLongRunningTaskInstantly; private TaskCleanupType(boolean killLongRunningTaskInstantly, boolean killNonLongRunningTaskInstantly) { this.killLongRunningTaskInstantly = killLongRunningTaskInstantly; this.killNonLongRunningTaskInstantly = killNonLongRunningTaskInstantly; } public boolean shouldKillTaskInstantly(SingularityRequest request) { if (request.isLongRunning()) { return killLongRunningTaskInstantly; } else { return killNonLongRunningTaskInstantly; } } }