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

com.hubspot.blazar.util.SingularityBuildLauncher Maven / Gradle / Ivy

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

import com.google.common.base.Optional;
import com.hubspot.blazar.base.ModuleBuild;
import com.hubspot.blazar.config.BlazarConfiguration;
import com.hubspot.blazar.config.SingularityConfiguration;
import com.hubspot.singularity.api.SingularityRunNowRequest;
import com.hubspot.singularity.client.SingularityClient;

import javax.inject.Inject;
import javax.inject.Singleton;
import java.util.Arrays;

@Singleton
public class SingularityBuildLauncher {
  private final SingularityClient singularityClient;
  private final SingularityConfiguration singularityConfiguration;

  @Inject
  public SingularityBuildLauncher(SingularityClient singularityClient, BlazarConfiguration blazarConfiguration) {
    this.singularityClient = singularityClient;
    this.singularityConfiguration = blazarConfiguration.getSingularityConfiguration();
  }

  public synchronized void launchBuild(ModuleBuild build) throws Exception {
    singularityClient.runSingularityRequest(singularityConfiguration.getRequest(), Optional.of(buildRequest(build)));
  }

  private SingularityRunNowRequest buildRequest(ModuleBuild build) {
    String buildId = Long.toString(build.getId().get());

    return new SingularityRunNowRequest(
        Optional.of("Running Blazar module build " + buildId),
        Optional.of(false),
        Optional.of(buildId),
        Optional.of(Arrays.asList("--buildId", buildId))
    );
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy