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

com.hubspot.blazar.config.SingularityConfiguration Maven / Gradle / Ivy

The newest version!
package com.hubspot.blazar.config;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.CharMatcher;
import com.google.common.base.Optional;
import com.hubspot.singularity.SingularityClientCredentials;

import javax.validation.constraints.NotNull;

public class SingularityConfiguration {

  @NotNull
  private final String host;
  @NotNull
  private final String request;
  private final Optional path;
  private final Optional credentials;

  @JsonCreator
  public SingularityConfiguration(@JsonProperty("host") String host,
                                  @JsonProperty("request") String request,
                                  @JsonProperty("path") Optional path,
                                  @JsonProperty("credentials") Optional credentials) {
    this.host = host;
    this.request = request;
    this.path = trimSlashes(path); // singularity client adds leading and trailing slashes
    this.credentials = credentials;
  }

  public String getHost() {
    return host;
  }

  public String getRequest() {
    return request;
  }

  public Optional getPath() {
    return path;
  }

  public Optional getCredentials() {
    return credentials;
  }

  private static Optional trimSlashes(Optional s) {
    if (s.isPresent()) {
      return Optional.of(CharMatcher.is('/').trimFrom(s.get()));
    } else {
      return s;
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy