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

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

The newest version!
package com.hubspot.singularity;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;
import com.hubspot.baragon.models.BaragonRequestState;
import com.hubspot.singularity.LoadBalancerRequestType.LoadBalancerRequestId;

public class SingularityLoadBalancerUpdate {

  private final BaragonRequestState loadBalancerState;
  private final Optional message;
  private final long timestamp;
  private final Optional uri;
  private final LoadBalancerMethod method;
  private final LoadBalancerRequestId loadBalancerRequestId;


  public enum LoadBalancerMethod {
    PRE_ENQUEUE, ENQUEUE, CHECK_STATE, CANCEL, DELETE;
  }

  @JsonCreator
  public SingularityLoadBalancerUpdate(@JsonProperty("state") BaragonRequestState loadBalancerState, @JsonProperty("loadBalancerRequestId") LoadBalancerRequestId loadBalancerRequestId,
    @JsonProperty("message") Optional message,
    @JsonProperty("timestamp") long timestamp, @JsonProperty("method") LoadBalancerMethod method, @JsonProperty("uri") Optional uri) {
    this.loadBalancerState = loadBalancerState;
    this.message = message;
    this.timestamp = timestamp;
    this.uri = uri;
    this.method = method;
    this.loadBalancerRequestId = loadBalancerRequestId;
  }

  public BaragonRequestState getLoadBalancerState() {
    return loadBalancerState;
  }

  public Optional getMessage() {
    return message;
  }

  public long getTimestamp() {
    return timestamp;
  }

  public Optional getUri() {
    return uri;
  }

  public LoadBalancerMethod getMethod() {
    return method;
  }

  public LoadBalancerRequestId getLoadBalancerRequestId() {
    return loadBalancerRequestId;
  }

  public static SingularityLoadBalancerUpdate preEnqueue(LoadBalancerRequestId lbRequestId) {
    return new SingularityLoadBalancerUpdate(BaragonRequestState.UNKNOWN, lbRequestId, Optional.absent(), System.currentTimeMillis(), LoadBalancerMethod.PRE_ENQUEUE,
      Optional.absent());
  }

  @Override
  public String toString() {
    return "SingularityLoadBalancerUpdate [loadBalancerState=" + loadBalancerState + ", message=" + message + ", timestamp=" + timestamp + ", uri=" + uri + ", method=" + method
      + ", loadBalancerRequestId=" + loadBalancerRequestId + "]";
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy