Skip to content

Commit

Permalink
Clean up SingularityExecutor.
Browse files Browse the repository at this point in the history
  • Loading branch information
wolfd committed Mar 2, 2015
1 parent e700800 commit a508a99
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 20 deletions.
Expand Up @@ -2,26 +2,29 @@


import com.google.common.base.Optional; import com.google.common.base.Optional;


/**
* Handlebars context for generating the runner.sh file.
*/
public class RunnerContext { public class RunnerContext {


private final String cmd; private final String cmd;
private final String taskAppDirectory;
private final String logDir;
private final String user; private final String user;
private final String logfile; private final String logFile;
private final String taskId; private final String taskId;
private final String taskAppDirectory;
private final Optional<Integer> maxTaskThreads; private final Optional<Integer> maxTaskThreads;


public RunnerContext(String cmd, String taskAppDirectory, String user, String logfile, String taskId, Optional<Integer> maxTaskThreads) { public RunnerContext(String cmd, String taskAppDirectory, String logDir, String user, String logFile, String taskId, Optional<Integer> maxTaskThreads) {
this.cmd = cmd; this.cmd = cmd;
this.taskAppDirectory = taskAppDirectory;
this.logDir = logDir;
this.user = user; this.user = user;
this.logfile = logfile; this.logFile = logFile;
this.taskId = taskId; this.taskId = taskId;
this.taskAppDirectory = taskAppDirectory;
this.maxTaskThreads = maxTaskThreads;
}


public String getTaskId() { this.maxTaskThreads = maxTaskThreads;
return taskId;
} }


public String getCmd() { public String getCmd() {
Expand All @@ -32,12 +35,20 @@ public String getTaskAppDirectory() {
return taskAppDirectory; return taskAppDirectory;
} }


public String getLogDir() {
return logDir;
}

public String getUser() { public String getUser() {
return user; return user;
} }


public String getLogfile() { public String getLogFile() {
return logfile; return logFile;
}

public String getTaskId() {
return taskId;
} }


public Optional<Integer> getMaxTaskThreads() { public Optional<Integer> getMaxTaskThreads() {
Expand All @@ -47,11 +58,12 @@ public Optional<Integer> getMaxTaskThreads() {
@Override @Override
public String toString() { public String toString() {
return "RunnerContext [" + return "RunnerContext [" +
"cmd='" + cmd + '\'' + "cmd='" + cmd + "'" +
", user='" + user + '\'' + ", taskAppDirectory='" + taskAppDirectory + "'" +
", logfile='" + logfile + '\'' + ", logDir='" + logDir + "'" +
", taskId='" + taskId + '\'' + ", user='" + user + "'" +
", taskAppDirectory='" + taskAppDirectory + '\'' + ", logFile='" + logFile + "'" +
", taskId='" + taskId + "'" +
", maxTaskThreads=" + maxTaskThreads + ", maxTaskThreads=" + maxTaskThreads +
']'; ']';
} }
Expand Down
Expand Up @@ -34,7 +34,8 @@ public class SingularityExecutorTaskProcessBuilder implements Callable<ProcessBu


private Optional<SingularityExecutorTaskArtifactFetcher> taskArtifactFetcher; private Optional<SingularityExecutorTaskArtifactFetcher> taskArtifactFetcher;


public SingularityExecutorTaskProcessBuilder(SingularityExecutorTask task, ExecutorUtils executorUtils, SingularityExecutorArtifactFetcher artifactFetcher, TemplateManager templateManager, SingularityExecutorConfiguration configuration, ExecutorData executorData, String executorPid) { public SingularityExecutorTaskProcessBuilder(SingularityExecutorTask task, ExecutorUtils executorUtils, SingularityExecutorArtifactFetcher artifactFetcher, TemplateManager templateManager, SingularityExecutorConfiguration configuration,
ExecutorData executorData, String executorPid) {
this.executorData = executorData; this.executorData = executorData;
this.task = task; this.task = task;
this.executorUtils = executorUtils; this.executorUtils = executorUtils;
Expand Down Expand Up @@ -85,7 +86,14 @@ private ProcessBuilder buildProcessBuilder(TaskInfo taskInfo, ExecutorData execu


task.getLog().info("Writing a runner script to execute {}", cmd); task.getLog().info("Writing a runner script to execute {}", cmd);


templateManager.writeRunnerScript(getPath("runner.sh"), new RunnerContext(cmd, configuration.getTaskAppDirectory(), executorData.getUser().or(configuration.getDefaultRunAsUser()), configuration.getServiceLog(), task.getTaskId(), executorData.getMaxTaskThreads().or(configuration.getMaxTaskThreads()))); templateManager.writeRunnerScript(getPath("runner.sh"), new RunnerContext(
cmd, // cmd
configuration.getTaskAppDirectory(), // taskAppDirectory
configuration.getLogrotateToDirectory(), // logDir
executorData.getUser().or(configuration.getDefaultRunAsUser()), // user
configuration.getServiceLog(), // logFile
task.getTaskId(), // taskId
executorData.getMaxTaskThreads().or(configuration.getMaxTaskThreads()))); // maxTaskThreads


List<String> command = Lists.newArrayList(); List<String> command = Lists.newArrayList();
command.add("bash"); command.add("bash");
Expand Down
11 changes: 9 additions & 2 deletions SingularityExecutor/src/main/resources/runner.sh.hbs
Expand Up @@ -32,6 +32,13 @@ if [[ ! -d ./tmp ]]; then
sudo chown -R {{{ user }}} ./tmp sudo chown -R {{{ user }}} ./tmp
fi fi


# Create log directory for logrotate runs
if [[ ! -d {{{ logDir }}} ]]; then
echo "Creating log directory ({{{ logDir }}})"
mkdir {{{ logDir }}}
sudo chown -R {{{ user }}} {{{ logDir }}}
fi

echo "Ensuring {{{ taskAppDirectory }}} is owned by {{{ user }}}" echo "Ensuring {{{ taskAppDirectory }}} is owned by {{{ user }}}"
sudo chown -R {{{ user }}} {{{ taskAppDirectory }}} sudo chown -R {{{ user }}} {{{ taskAppDirectory }}}


Expand All @@ -48,5 +55,5 @@ else
fi fi


# execute command # execute command
echo "Executing: sudo -E -u {{{ user }}} {{{ cmd }}} >> ../{{{ logfile }}} 2>&1" echo "Executing: sudo -E -u {{{ user }}} {{{ cmd }}} >> ../{{{ logFile }}} 2>&1"
exec sudo -E -u {{{ user }}} {{{ cmd }}} >> ../{{{ logfile }}} 2>&1 exec sudo -E -u {{{ user }}} {{{ cmd }}} >> ../{{{ logFile }}} 2>&1

0 comments on commit a508a99

Please sign in to comment.