public T export(File workDir, T job) throws IOException { logger.info("ENTERING export(File, LSFJob)"); File submitFile = new File(workDir, String.format("%s.sub", job.getName())); FileWriter submitFileWriter = new FileWriter(submitFile); if (StringUtils.isNotEmpty(job.getQueueName())) { submitFileWriter.write(String.format("#BSUB -q %s%n", job.getQueueName())); if (StringUtils.isNotEmpty(job.getProject())) { submitFileWriter.write(String.format("#BSUB -P %s%n", job.getProject())); if (job.getWallTime() != null) { submitFileWriter.write(String.format("#BSUB -W %s%n", job.getWallTime())); submitFileWriter.write(String.format("#BSUB -M %s%n", job.getMemory())); submitFileWriter.write(String.format("#BSUB -i %s%n", "/dev/null")); job.setOutput(new File(String.format("%s/%s.out", workDir.getAbsolutePath(), job.getOutput().getName()))); job.setError(new File(String.format("%s/%s.err", workDir.getAbsolutePath(), job.getError().getName()))); submitFileWriter.write(String.format("#BSUB -o %s%n", job.getOutput().getAbsolutePath())); submitFileWriter.write(String.format("#BSUB -e %s%n", job.getError().getAbsolutePath())); submitFileWriter.write(String.format("#BSUB -n %s%n", job.getNumberOfProcessors())); if (job.getHostCount() != null) { submitFileWriter.write(String.format("#BSUB -R \"span[hosts=%d]\"%n", job.getHostCount())); submitFileWriter.write(job.getExecutable().getAbsolutePath()); job.setSubmitFile(submitFile);
@Override public Void call() throws JLRMException { logger.info("ENTERING call()"); String command = String.format("bkill %s", jobId); SSHConnectionUtil.execute(command, site.getUsername(), getSite().getSubmitHost()); return null; }
LSFSubmitScriptExporter<LSFSSHJob> exporter = new LSFSubmitScriptExporter<LSFSSHJob>(); this.job = exporter.export(localWorkDir, remoteWorkDir, this.job); this.job.getTransferExecutable(), this.job.getExecutable(), this.job.getTransferInputs(), this.job.getInputFiles(), job.getSubmitFile()); String targetFile = String.format("%s/%s", remoteWorkDir, job.getSubmitFile().getName()); command = String.format("bsub -J %s < %s", job.getName(), targetFile); String submitOutput = SSHConnectionUtil.execute(command, site.getUsername(), getSite().getSubmitHost()); LineNumberReader lnr = new LineNumberReader(new StringReader(submitOutput)); String line; throw new JLRMException("failed to parse the jobid number"); } else { job.setId(matcher.group(1));
LSFSSHJob job = new LSFSSHJob(); job.setTransferExecutable(Boolean.TRUE); job.setTransferInputs(Boolean.TRUE); job.setQueueName(this.queue.getName()); job.setName(this.jobName); job.setHostCount(1); job.setNumberOfProcessors(getQueue().getNumberOfProcessors()); job.setOutput(new File("glidein.out")); job.setError(new File("glidein.err")); job.setWallTime(queue.getRunTime()); job.setMemory(null); velocityContext.put("siteName", getSite().getSubmitHost()); velocityContext.put("collectorHost", this.collectorHost); velocityContext.put("jlrmUser", this.username); velocityContext.put("jlrmSiteName", getSite().getName()); velocityContext.put("hostAllowRead", this.hostAllowRead); velocityContext.put("hostAllowWrite", this.hostAllowWrite); String remoteHome = SSHConnectionUtil.execute(command, site.getUsername(), getSite().getSubmitHost()); .getResourceAsStream("org/renci/jlrm/lsf/ssh/glidein.sh.vm")); File glideinScript = new File(localWorkDir.getAbsolutePath(), "glidein.sh"); writeTemplate(velocityContext, glideinScript, glideinScriptMacro); job.setExecutable(glideinScript); writeTemplate(velocityContext, condorConfigLocal, condorConfigLocalScriptMacro); job.getInputFiles().add(condorConfigLocal);
public T export(File workDir, String remoteWorkDir, T job) throws IOException { logger.info("ENTERING export(File, LSFJob)"); File submitFile = new File(workDir, String.format("%s.sub", job.getName())); if (StringUtils.isNotEmpty(job.getQueueName())) { submitFileWriter.write(String.format("#BSUB -q %s%n", job.getQueueName())); if (StringUtils.isNotEmpty(job.getName())) { submitFileWriter.write(String.format("#BSUB -J %s%n", job.getName())); if (StringUtils.isNotEmpty(job.getProject())) { submitFileWriter.write(String.format("#BSUB -P %s%n", job.getProject())); if (job.getWallTime() != null) { submitFileWriter.write(String.format("#BSUB -W %d%n", job.getWallTime())); if (job.getMemory() != null) { submitFileWriter.write(String.format("#BSUB -M %s%n", job.getMemory())); job.setOutput(new File(String.format("%s/%s.out", remoteWorkDir, job.getOutput().getName()))); job.setError(new File(String.format("%s/%s.err", remoteWorkDir, job.getError().getName()))); submitFileWriter.write(String.format("#BSUB -o %s%n", job.getOutput().getAbsolutePath())); submitFileWriter.write(String.format("#BSUB -e %s%n", job.getError().getAbsolutePath())); if (job.getNumberOfProcessors() != null) { submitFileWriter.write(String.format("#BSUB -n %s%n", job.getNumberOfProcessors())); if (job.getHostCount() != null) { submitFileWriter.write(String.format("#BSUB -R \"span[hosts=%d]\"%n", job.getHostCount()));