use of org.ow2.proactive.scheduler.common.job.JobResult in project scheduling by ow2-proactive.
the class TaskUsingCredentialsTest method jobs_using_third_party_credentials.
private void jobs_using_third_party_credentials() throws Exception {
Scheduler scheduler = schedulerHelper.getSchedulerInterface();
scheduler.putThirdPartyCredential("MY_APP_PASSWORD", "superpassword");
TaskFlowJob job = (TaskFlowJob) StaxJobFactory.getFactory().createJob(new File(jobDescriptor.toURI()).getAbsolutePath());
if (OperatingSystem.getOperatingSystem() == org.objectweb.proactive.utils.OperatingSystem.unix) {
NativeTask nativeTask = new NativeTask();
nativeTask.setCommandLine("echo", "$credentials_MY_APP_PASSWORD");
job.addTask(nativeTask);
}
JobId jobId = scheduler.submit(job);
schedulerHelper.waitForEventJobFinished(jobId);
JobResult jobResult = schedulerHelper.getJobResult(jobId);
for (TaskResult taskResult : jobResult.getAllResults().values()) {
assertTrue("task " + taskResult.getTaskId().getReadableName() + " did not print the credential", taskResult.getOutput().getAllLogs(false).contains("superpassword"));
}
}
use of org.ow2.proactive.scheduler.common.job.JobResult in project scheduling by ow2-proactive.
the class TestThirdPartyCredentialsDefined method createAndSubmitTaskPrintingCredentials.
public String createAndSubmitTaskPrintingCredentials() throws Exception {
ScriptTask scriptTask = new ScriptTask();
scriptTask.setName("task");
scriptTask.setScript(new TaskScript(new SimpleScript("print credentials", "python")));
TaskFlowJob job = new TaskFlowJob();
job.addTask(scriptTask);
JobId id = schedulerHelper.submitJob(job);
schedulerHelper.waitForEventJobFinished(id);
JobResult jobResult = schedulerHelper.getJobResult(id);
TaskResult result = jobResult.getResult(scriptTask.getName());
return result.getOutput().getStdoutLogs(false).replaceAll("\n|\r", "");
}
use of org.ow2.proactive.scheduler.common.job.JobResult in project scheduling by ow2-proactive.
the class TestJobDataspaceSubmission method testJobDataspaceSubmission.
/**
* Tests start here.
*
* @throws Throwable any exception that can be thrown during the test.
*/
@org.junit.Test
public void testJobDataspaceSubmission() throws Throwable {
// create initial directories and files
setup();
TaskFlowJob job = new TaskFlowJob();
FileSystemServerDeployer filesServerIn = new FileSystemServerDeployer(IN, IOSPACE + IN, true, true);
String url = filesServerIn.getVFSRootURL();
job.setInputSpace(url);
FileSystemServerDeployer filesServerOut = new FileSystemServerDeployer(OUT, IOSPACE + OUT, true);
url = filesServerOut.getVFSRootURL();
job.setOutputSpace(url);
FileSystemServerDeployer filesServerGlob = new FileSystemServerDeployer(GLOB, IOSPACE + GLOB, true);
url = filesServerGlob.getVFSRootURL();
job.setGlobalSpace(url);
FileSystemServerDeployer filesServerUser = new FileSystemServerDeployer(USER, IOSPACE + USER, true);
url = filesServerUser.getVFSRootURL();
job.setUserSpace(url);
job.setName(this.getClass().getSimpleName());
NativeTask t1 = new NativeTask();
t1.addInputFiles(in1, InputAccessMode.TransferFromInputSpace);
t1.addOutputFiles(out1, OutputAccessMode.TransferToOutputSpace);
t1.setName("native_java1");
switch(OperatingSystem.getOperatingSystem()) {
case windows:
t1.setCommandLine(new String[] { "cmd", "/C", "type " + in1 + " > " + out1 });
break;
case unix:
t1.setCommandLine(new String[] { "/bin/bash", "-c", "cat " + in1 + " > " + out1 });
break;
default:
throw new IllegalStateException("Unsupported operating system");
}
job.addTask(t1);
NativeTask t2 = new NativeTask();
t2.addInputFiles(in2, InputAccessMode.TransferFromOutputSpace);
t2.addOutputFiles(out2, OutputAccessMode.TransferToOutputSpace);
t2.setName("native_java2");
switch(OperatingSystem.getOperatingSystem()) {
case windows:
t2.setCommandLine(new String[] { "cmd", "/C", "type " + in2 + " > " + out2 });
break;
case unix:
t2.setCommandLine(new String[] { "/bin/bash", "-c", "cat " + in2 + " > " + out2 });
break;
default:
throw new IllegalStateException("Unsupported operating system");
}
job.addTask(t2);
NativeTask t3 = new NativeTask();
t3.addInputFiles(in3, InputAccessMode.TransferFromGlobalSpace);
t3.addOutputFiles(out3, OutputAccessMode.TransferToGlobalSpace);
t3.setName("native_java3");
switch(OperatingSystem.getOperatingSystem()) {
case windows:
t3.setCommandLine(new String[] { "cmd", "/C", "type " + in3 + " > " + out3 });
break;
case unix:
t3.setCommandLine(new String[] { "/bin/bash", "-c", "cat " + in3 + " > " + out3 });
break;
default:
throw new IllegalStateException("Unsupported operating system");
}
job.addTask(t3);
NativeTask t4 = new NativeTask();
t4.addInputFiles(in4, InputAccessMode.TransferFromUserSpace);
t4.addOutputFiles(out4, OutputAccessMode.TransferToUserSpace);
t4.setName("native_java4");
switch(OperatingSystem.getOperatingSystem()) {
case windows:
t4.setCommandLine(new String[] { "cmd", "/C", "type " + in4 + " > " + out4 });
break;
case unix:
t4.setCommandLine(new String[] { "/bin/bash", "-c", "cat " + in4 + " > " + out4 });
break;
default:
throw new IllegalStateException("Unsupported operating system");
}
job.addTask(t4);
NativeTask t10 = new NativeTask();
t10.addDependence(t2);
t10.addInputFiles(in1, InputAccessMode.TransferFromInputSpace);
t10.addInputFiles(new FileSelector("*b.txt"), InputAccessMode.TransferFromOutputSpace);
t10.addOutputFiles("*aa.txt", OutputAccessMode.TransferToOutputSpace);
t10.setName("native_java10");
switch(OperatingSystem.getOperatingSystem()) {
case windows:
t10.setCommandLine(new String[] { "cmd", "/C", "type " + in1 + " " + out2 + " > " + out10 });
break;
case unix:
t10.setCommandLine(new String[] { "/bin/bash", "-c", "cat " + in1 + " " + out2 + " > " + out10 });
break;
default:
throw new IllegalStateException("Unsupported operating system");
}
job.addTask(t10);
NativeTask t11 = new NativeTask();
t11.addDependence(t3);
t11.addInputFiles(in1, InputAccessMode.TransferFromInputSpace);
t11.addInputFiles(new FileSelector("*c.txt"), InputAccessMode.TransferFromGlobalSpace);
t11.addOutputFiles("*bb.txt", OutputAccessMode.TransferToGlobalSpace);
t11.setName("native_java11");
switch(OperatingSystem.getOperatingSystem()) {
case windows:
t11.setCommandLine(new String[] { "cmd", "/C", "type " + in1 + " " + out3 + " > " + out11 });
break;
case unix:
t11.setCommandLine(new String[] { "/bin/bash", "-c", "cat " + in1 + " " + out3 + " > " + out11 });
break;
default:
throw new IllegalStateException("Unsupported operating system");
}
job.addTask(t11);
NativeTask t12 = new NativeTask();
t12.addDependence(t4);
t12.addInputFiles(in1, InputAccessMode.TransferFromInputSpace);
t12.addInputFiles(new FileSelector("*d.txt"), InputAccessMode.TransferFromUserSpace);
t12.addOutputFiles("*cc.txt", OutputAccessMode.TransferToUserSpace);
t12.setName("native_java7");
switch(OperatingSystem.getOperatingSystem()) {
case windows:
t12.setCommandLine(new String[] { "cmd", "/C", "type " + in1 + " " + out4 + " > " + out12 });
break;
case unix:
t12.setCommandLine(new String[] { "/bin/bash", "-c", "cat " + in1 + " " + out4 + " > " + out12 });
break;
default:
throw new IllegalStateException("Unsupported operating system");
}
job.addTask(t12);
JobId id = schedulerHelper.testJobSubmission(job);
// check results are 0
JobResult res = schedulerHelper.getJobResult(id);
Assert.assertFalse(schedulerHelper.getJobResult(id).hadException());
for (Map.Entry<String, TaskResult> entry : res.getAllResults().entrySet()) {
Assert.assertEquals(0, entry.getValue().value());
}
// remove job
schedulerHelper.removeJob(id);
schedulerHelper.waitForEventJobRemoved(id);
// check files
File fout = new File(outputDir.getAbsolutePath() + File.separator + out1);
Assert.assertEquals(in1, getContent(fout));
fout = new File(outputDir.getAbsolutePath() + File.separator + out2);
Assert.assertEquals(in2, getContent(fout));
fout = new File(globalDir.getAbsolutePath() + File.separator + out3);
Assert.assertEquals(in3, getContent(fout));
fout = new File(userDir.getAbsolutePath() + File.separator + out4);
Assert.assertEquals(in4, getContent(fout));
fout = new File(outputDir.getAbsolutePath() + File.separator + out10);
Assert.assertEquals(in1 + in2, getContent(fout));
fout = new File(globalDir.getAbsolutePath() + File.separator + out11);
Assert.assertEquals(in1 + in3, getContent(fout));
fout = new File(userDir.getAbsolutePath() + File.separator + out12);
Assert.assertEquals(in1 + in4, getContent(fout));
// fout = new File(outputDir.getAbsolutePath() + File.separator + out20);
// Assert.assertEquals(in1 + in2, getContent(fout));
// fout = new File(globalDir.getAbsolutePath() + File.separator + out21);
// Assert.assertEquals(in1 + in3, getContent(fout));
// fout = new File(userDir.getAbsolutePath() + File.separator + out22);
// Assert.assertEquals(in1 + in4, getContent(fout));
filesServerIn.terminate();
filesServerOut.terminate();
filesServerGlob.terminate();
filesServerUser.terminate();
// and clean tmp space
clean();
}
use of org.ow2.proactive.scheduler.common.job.JobResult in project scheduling by ow2-proactive.
the class TestLoadJobResult method testEmptyResult.
@Test
public void testEmptyResult() throws Throwable {
TaskFlowJob jobDef = new TaskFlowJob();
jobDef.addTask(createDefaultTask("task1"));
InternalJob job = defaultSubmitJobAndLoadInternal(true, jobDef);
InternalTask task1 = job.getTask("task1");
JobResult result;
result = dbManager.loadJobResult(job.getId());
Assert.assertNotNull(result.getJobInfo());
Assert.assertEquals(0, result.getAllResults().size());
Assert.assertEquals(1, result.getJobInfo().getTotalNumberOfTasks());
dbManager.updateAfterTaskFinished(job, task1, new TaskResultImpl(null, new TestResult(0, "1_1"), null, 0));
result = dbManager.loadJobResult(job.getId());
Assert.assertNotNull(result.getJobInfo());
Assert.assertEquals(1, result.getAllResults().size());
Assert.assertEquals(1, result.getJobInfo().getTotalNumberOfTasks());
}
use of org.ow2.proactive.scheduler.common.job.JobResult in project scheduling by ow2-proactive.
the class TestKillPendingTask method testKillPendingTasks.
@Test
public void testKillPendingTasks() throws Throwable {
String task1Name = "task1";
String task2Name = "task2";
JobId id = schedulerHelper.submitJob(new File(jobDescriptor.toURI()).getAbsolutePath());
// check events reception
log("Job submitted, id " + id.toString());
log("Waiting for jobSubmitted");
schedulerHelper.waitForEventJobSubmitted(id);
schedulerHelper.killTask(id.toString(), task1Name);
log("Waiting for task finished : " + task1Name);
schedulerHelper.waitForEventTaskFinished(id, task1Name);
schedulerHelper.killTask(id.toString(), task2Name);
log("Waiting for task finished : " + task2Name);
schedulerHelper.waitForEventTaskFinished(id, task2Name);
log("Waiting for job finished");
schedulerHelper.waitForEventJobFinished(id);
JobResult res = schedulerHelper.getJobResult(id);
Map<String, TaskResult> results = res.getAllResults();
// check that all tasks results are defined
assertTrue(results.get(task1Name).hadException());
assertNotNull(results.get(task1Name).getException());
assertTrue(results.get(task2Name).hadException());
assertNotNull(results.get(task2Name).getException());
}
Aggregations