All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hubspot.singularity.SingularityDeployFailure Maven / Gradle / Ivy

The newest version!
package com.hubspot.singularity;

import java.util.Collections;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;

public class SingularityDeployFailure {
  private final SingularityDeployFailureReason reason;
  private final Optional taskId;
  private final Optional message;

  public SingularityDeployFailure(SingularityDeployFailureReason reason) {
    this(reason, Optional.absent(), Optional.absent());
  }

  public static List lbUpdateFailed() {
    return Collections.singletonList(new SingularityDeployFailure(SingularityDeployFailureReason.LOAD_BALANCER_UPDATE_FAILED));
  }

  public static List cancelled() {
    return Collections.singletonList(new SingularityDeployFailure(SingularityDeployFailureReason.DEPLOY_CANCELLED));
  }

  public static List failedToSave() {
    return Collections.singletonList(new SingularityDeployFailure(SingularityDeployFailureReason.FAILED_TO_SAVE_DEPLOY_STATE));
  }

  public static List deployRemoved() {
    return Collections.singletonList(new SingularityDeployFailure(SingularityDeployFailureReason.PENDING_DEPLOY_REMOVED));
  }

  @JsonCreator
  public SingularityDeployFailure(@JsonProperty("reason") SingularityDeployFailureReason reason,
    @JsonProperty("taskId") Optional taskId,
    @JsonProperty("message") Optional message) {
    this.reason = reason;
    this.taskId = taskId;
    this.message = message;
  }

  public SingularityDeployFailureReason getReason() {
    return reason;
  }

  public Optional getTaskId() {
    return taskId;
  }

  public Optional getMessage() {
    return message;
  }

  @Override public String toString() {
    return "SingularityDeployFailure{" +
      "reason=" + reason +
      ", taskId=" + taskId +
      ", message=" + message +
      '}';
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy