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

com.hubspot.deploy.ExecutorData Maven / Gradle / Ivy

The newest version!
package com.hubspot.deploy;

import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;
import com.hubspot.mesos.JavaUtils;
import com.hubspot.singularity.executor.SingularityExecutorLogrotateFrequency;

@JsonIgnoreProperties(ignoreUnknown = true)
public class ExecutorData {

  private final String cmd;
  private final List embeddedArtifacts;
  private final List externalArtifacts;
  private final List s3Artifacts;
  private final List successfulExitCodes;
  private final Optional runningSentinel;
  private final Optional user;
  private final List extraCmdLineArgs;
  private final Optional loggingTag;
  private final Map loggingExtraFields;
  private final Optional sigKillProcessesAfterMillis;
  private final Optional maxTaskThreads;
  private final Optional preserveTaskSandboxAfterFinish;
  private final Optional loggingS3Bucket;
  private final Optional maxOpenFiles;
  private final Optional skipLogrotateAndCompress;
  private final Optional> s3ArtifactSignatures;
  private final Optional logrotateFrequency;

  @JsonCreator
  public ExecutorData(@JsonProperty("cmd") String cmd, @JsonProperty("embeddedArtifacts") List embeddedArtifacts, @JsonProperty("externalArtifacts") List externalArtifacts,
      @JsonProperty("s3Artifacts") List s3Artifacts, @JsonProperty("successfulExitCodes") List successfulExitCodes, @JsonProperty("user") Optional user,
      @JsonProperty("runningSentinel") Optional runningSentinel, @JsonProperty("extraCmdLineArgs") List extraCmdLineArgs, @JsonProperty("loggingTag") Optional loggingTag,
      @JsonProperty("loggingExtraFields") Map loggingExtraFields, @JsonProperty("sigKillProcessesAfterMillis") Optional sigKillProcessesAfterMillis,
      @JsonProperty("maxTaskThreads") Optional maxTaskThreads, @JsonProperty("preserveTaskSandboxAfterFinish") Optional preserveTaskSandboxAfterFinish,
      @JsonProperty("loggingS3Bucket") Optional loggingS3Bucket, @JsonProperty("maxOpenFiles") Optional maxOpenFiles,
      @JsonProperty("skipLogrotateAndCompress") Optional skipLogrotateAndCompress, @JsonProperty("s3ArtifactSignatures") Optional> s3ArtifactSignatures,
      @JsonProperty("logrotateFrequency") Optional logrotateFrequency) {
    this.cmd = cmd;
    this.embeddedArtifacts = JavaUtils.nonNullImmutable(embeddedArtifacts);
    this.externalArtifacts = JavaUtils.nonNullImmutable(externalArtifacts);
    this.s3Artifacts = JavaUtils.nonNullImmutable(s3Artifacts);
    this.user = user;
    this.successfulExitCodes = JavaUtils.nonNullImmutable(successfulExitCodes);
    this.extraCmdLineArgs = JavaUtils.nonNullImmutable(extraCmdLineArgs);
    this.runningSentinel = runningSentinel;
    this.loggingTag = loggingTag;
    this.loggingExtraFields = JavaUtils.nonNullImmutable(loggingExtraFields);
    this.sigKillProcessesAfterMillis = sigKillProcessesAfterMillis;
    this.maxTaskThreads = maxTaskThreads;
    this.preserveTaskSandboxAfterFinish = preserveTaskSandboxAfterFinish;
    this.loggingS3Bucket = loggingS3Bucket;
    this.maxOpenFiles = maxOpenFiles;
    this.skipLogrotateAndCompress = skipLogrotateAndCompress;
    this.s3ArtifactSignatures = s3ArtifactSignatures;
    this.logrotateFrequency = logrotateFrequency;
  }

  public ExecutorDataBuilder toBuilder() {
    return new ExecutorDataBuilder(cmd, embeddedArtifacts, externalArtifacts, s3Artifacts, successfulExitCodes, runningSentinel, user, extraCmdLineArgs, loggingTag,
        loggingExtraFields, sigKillProcessesAfterMillis, maxTaskThreads, preserveTaskSandboxAfterFinish, loggingS3Bucket, maxOpenFiles, skipLogrotateAndCompress, s3ArtifactSignatures, logrotateFrequency);
  }

  public String getCmd() {
    return cmd;
  }

  public Optional getLoggingTag() {
    return loggingTag;
  }

  public Map getLoggingExtraFields() {
    return loggingExtraFields;
  }

  public List getEmbeddedArtifacts() {
    return embeddedArtifacts;
  }

  public List getExternalArtifacts() {
    return externalArtifacts;
  }

  public List getSuccessfulExitCodes() {
    return successfulExitCodes;
  }

  public List getExtraCmdLineArgs() {
    return extraCmdLineArgs;
  }

  public Optional getRunningSentinel() {
    return runningSentinel;
  }

  public Optional getUser() {
    return user;
  }

  public Optional getSigKillProcessesAfterMillis() {
    return sigKillProcessesAfterMillis;
  }

  public List getS3Artifacts() {
    return s3Artifacts;
  }

  public Optional getMaxTaskThreads() {
    return maxTaskThreads;
  }

  public Optional getPreserveTaskSandboxAfterFinish() {
    return preserveTaskSandboxAfterFinish;
  }

  public Optional getLoggingS3Bucket() {
    return loggingS3Bucket;
  }

  public Optional getMaxOpenFiles() {
    return maxOpenFiles;
  }

  public Optional getSkipLogrotateAndCompress() {
    return skipLogrotateAndCompress;
  }

  public Optional> getS3ArtifactSignatures() {
    return s3ArtifactSignatures;
  }

  public Optional getLogrotateFrequency() {
    return logrotateFrequency;
  }

  @Override
  public String toString() {
    return "ExecutorData[" +
            "cmd='" + cmd + '\'' +
            ", embeddedArtifacts=" + embeddedArtifacts +
            ", externalArtifacts=" + externalArtifacts +
            ", s3Artifacts=" + s3Artifacts +
            ", successfulExitCodes=" + successfulExitCodes +
            ", runningSentinel=" + runningSentinel +
            ", user=" + user +
            ", extraCmdLineArgs=" + extraCmdLineArgs +
            ", loggingTag=" + loggingTag +
            ", loggingExtraFields=" + loggingExtraFields +
            ", sigKillProcessesAfterMillis=" + sigKillProcessesAfterMillis +
            ", maxTaskThreads=" + maxTaskThreads +
            ", preserveTaskSandboxAfterFinish=" + preserveTaskSandboxAfterFinish +
            ", loggingS3Bucket=" + loggingS3Bucket +
            ", maxOpenFiles=" + maxOpenFiles +
            ", skipLogrotateAndCompress=" + skipLogrotateAndCompress +
            ", s3ArtifactSignatures=" + s3ArtifactSignatures +
            ", logrotateFrequency=" + logrotateFrequency +
            ']';
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy