use of org.ow2.proactive.scheduler.rest.data.TaskResultImpl in project scheduling by ow2-proactive.
the class TestJobRemove method removeScenario.
private void removeScenario(int tasksNumber) throws Exception {
TaskFlowJob jobDef = createJob(tasksNumber);
InternalJob job = defaultSubmitJobAndLoadInternal(false, jobDef);
for (int i = 0; i < tasksNumber; i++) {
dbManager.updateAfterTaskFinished(job, job.getTask("javaTask-" + i), new TaskResultImpl(null, "OK", null, 0));
dbManager.updateAfterTaskFinished(job, job.getTask("javaTask-" + i), new TaskResultImpl(null, "OK", null, 0));
dbManager.updateAfterTaskFinished(job, job.getTask("forkedJavaTask-" + i), new TaskResultImpl(null, "OK", null, 0));
dbManager.updateAfterTaskFinished(job, job.getTask("forkedJavaTask-" + i), new TaskResultImpl(null, "OK", null, 0));
dbManager.updateAfterTaskFinished(job, job.getTask("nativeTask-" + i), new TaskResultImpl(null, "OK", null, 0));
dbManager.updateAfterTaskFinished(job, job.getTask("nativeTask-" + i), new TaskResultImpl(null, "OK", null, 0));
}
System.out.println("Remove job");
long start = System.currentTimeMillis();
dbManager.removeJob(job.getId(), 0, true);
System.out.println("Remove time (tasks: " + tasksNumber + ")" + (System.currentTimeMillis() - start));
checkAllEntitiesDeleted();
}
use of org.ow2.proactive.scheduler.rest.data.TaskResultImpl in project scheduling by ow2-proactive.
the class TestJobRemove method testRuntimeDataRemoveAfterFinishParallel.
@Test
public void testRuntimeDataRemoveAfterFinishParallel() throws Throwable {
int THREAD_COUNT = 4;
ExecutorService executorService = Executors.newCachedThreadPool();
List<InternalJob> jobs = new ArrayList<>(THREAD_COUNT);
TaskFlowJob jobDef;
for (int i = 0; i < THREAD_COUNT; i++) {
jobDef = createJob(2);
jobs.add(defaultSubmitJobAndLoadInternal(false, jobDef));
}
for (int i = 0; i < THREAD_COUNT; i++) {
final InternalJob job = jobs.get(i);
executorService.submit(new Runnable() {
@Override
public void run() {
try {
dbManager.updateAfterTaskFinished(job, job.getTask("javaTask-0"), new TaskResultImpl(null, "OK1", null, 0));
dbManager.updateAfterTaskFinished(job, job.getTask("forkedJavaTask-0"), new TaskResultImpl(null, "OK2", null, 0));
dbManager.updateAfterTaskFinished(job, job.getTask("nativeTask-0"), new TaskResultImpl(null, "OK3", null, 0));
job.setStatus(JobStatus.FINISHED);
dbManager.updateAfterTaskFinished(job, null, null);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
});
}
executorService.shutdown();
executorService.awaitTermination(30, TimeUnit.SECONDS);
for (int i = 0; i < THREAD_COUNT; i++) {
final InternalJob job = jobs.get(i);
List<InternalJob> jobsNotFinished = dbManager.loadNotFinishedJobs(true);
Assert.assertEquals("All jobs should be finished", 0, jobsNotFinished.size());
checkAllEntitiesDeleted(JobData.class.getName(), JobContent.class.getName(), TaskData.class.getName(), TaskResultData.class.getName());
// check can still load task results
Assert.assertEquals("OK1", dbManager.loadTaskResult(job.getTask("javaTask-0").getId(), 0).value());
Assert.assertEquals("OK2", dbManager.loadTaskResult(job.getTask("forkedJavaTask-0").getId(), 0).value());
Assert.assertEquals("OK3", dbManager.loadTaskResult(job.getTask("nativeTask-0").getId(), 0).value());
}
}
use of org.ow2.proactive.scheduler.rest.data.TaskResultImpl 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.rest.data.TaskResultImpl in project scheduling by ow2-proactive.
the class TestLoadJobsPagination method testPagingAndFilteting.
@Test
public void testPagingAndFilteting() throws Exception {
InternalJob job;
InternalTask task;
// pending job - 1
defaultSubmitJob(createJob());
// job for user1 - 2
defaultSubmitJob(createJob(), "user1");
// running job - 3
job = defaultSubmitJob(createJob());
job.start();
task = startTask(job, job.getITasks().get(0));
dbManager.jobTaskStarted(job, task, true);
// killed job - 4
job = defaultSubmitJob(createJob());
job.failed(null, JobStatus.KILLED);
dbManager.updateAfterJobKilled(job, Collections.<TaskId>emptySet());
// job for user2 - 5
defaultSubmitJob(createJob(), "user2");
// finished job - 6
job = defaultSubmitJob(createJob());
job.start();
task = startTask(job, job.getITasks().get(0));
dbManager.jobTaskStarted(job, task, true);
TaskResultImpl result = new TaskResultImpl(null, new TestResult(0, "result"), null, 0);
job.terminateTask(false, task.getId(), null, null, result);
job.terminate();
dbManager.updateAfterTaskFinished(job, task, new TaskResultImpl(null, new TestResult(0, "result"), null, 0));
// canceled job - 7
job = defaultSubmitJob(createJob());
job.failed(job.getITasks().get(0).getId(), JobStatus.CANCELED);
dbManager.updateAfterJobKilled(job, Collections.<TaskId>emptySet());
// job marked as removed, method 'getJobs' shouldn't return it
job = defaultSubmitJob(createJob());
dbManager.removeJob(job.getId(), System.currentTimeMillis(), false);
List<JobInfo> jobs;
List<SortParameter<JobSortParameter>> sortParameters = new ArrayList<>();
sortParameters.add(new SortParameter<>(JobSortParameter.ID, SortOrder.ASC));
jobs = dbManager.getJobs(5, 1, null, true, true, true, sortParameters).getList();
JobInfo jobInfo = jobs.get(0);
Assert.assertEquals("6", jobInfo.getJobId().value());
Assert.assertEquals(JobStatus.FINISHED, jobInfo.getStatus());
Assert.assertEquals("TestLoadJobsPagination", jobInfo.getJobId().getReadableName());
Assert.assertEquals(1, jobInfo.getTotalNumberOfTasks());
Assert.assertEquals(1, jobInfo.getNumberOfFinishedTasks());
Assert.assertEquals(0, jobInfo.getNumberOfRunningTasks());
Assert.assertEquals(0, jobInfo.getNumberOfPendingTasks());
Assert.assertEquals(JobPriority.NORMAL, jobInfo.getPriority());
Assert.assertEquals(DEFAULT_USER_NAME, jobInfo.getJobOwner());
jobs = dbManager.getJobs(0, 10, null, true, true, true, sortParameters).getList();
checkJobs(jobs, 1, 2, 3, 4, 5, 6, 7);
jobs = dbManager.getJobs(-1, -1, null, true, true, true, sortParameters).getList();
checkJobs(jobs, 1, 2, 3, 4, 5, 6, 7);
jobs = dbManager.getJobs(-1, 5, null, true, true, true, sortParameters).getList();
checkJobs(jobs, 1, 2, 3, 4, 5);
jobs = dbManager.getJobs(2, -1, null, true, true, true, sortParameters).getList();
checkJobs(jobs, 3, 4, 5, 6, 7);
jobs = dbManager.getJobs(0, 0, null, true, true, true, sortParameters).getList();
checkJobs(jobs, 1, 2, 3, 4, 5, 6, 7);
jobs = dbManager.getJobs(0, 1, null, true, true, true, sortParameters).getList();
checkJobs(jobs, 1);
jobs = dbManager.getJobs(0, 3, null, true, true, true, sortParameters).getList();
checkJobs(jobs, 1, 2, 3);
jobs = dbManager.getJobs(1, 10, null, true, true, true, sortParameters).getList();
checkJobs(jobs, 2, 3, 4, 5, 6, 7);
jobs = dbManager.getJobs(5, 10, null, true, true, true, sortParameters).getList();
checkJobs(jobs, 6, 7);
jobs = dbManager.getJobs(6, 10, null, true, true, true, sortParameters).getList();
checkJobs(jobs, 7);
jobs = dbManager.getJobs(7, 10, null, true, true, true, sortParameters).getList();
checkJobs(jobs);
jobs = dbManager.getJobs(0, 10, DEFAULT_USER_NAME, true, true, true, sortParameters).getList();
checkJobs(jobs, 1, 3, 4, 6, 7);
jobs = dbManager.getJobs(0, 10, "user1", true, true, true, sortParameters).getList();
checkJobs(jobs, 2);
jobs = dbManager.getJobs(0, 10, DEFAULT_USER_NAME, true, false, false, sortParameters).getList();
checkJobs(jobs, 1);
jobs = dbManager.getJobs(0, 10, DEFAULT_USER_NAME, false, true, false, sortParameters).getList();
checkJobs(jobs, 3);
jobs = dbManager.getJobs(0, 10, DEFAULT_USER_NAME, false, false, true, sortParameters).getList();
checkJobs(jobs, 4, 6, 7);
jobs = dbManager.getJobs(0, 10, DEFAULT_USER_NAME, false, true, true, sortParameters).getList();
checkJobs(jobs, 3, 4, 6, 7);
jobs = dbManager.getJobs(0, 10, DEFAULT_USER_NAME, true, false, true, sortParameters).getList();
checkJobs(jobs, 1, 4, 6, 7);
jobs = dbManager.getJobs(0, 10, DEFAULT_USER_NAME, true, true, false, sortParameters).getList();
checkJobs(jobs, 1, 3);
jobs = dbManager.getJobs(0, 10, DEFAULT_USER_NAME, false, false, false, sortParameters).getList();
checkJobs(jobs);
}
use of org.ow2.proactive.scheduler.rest.data.TaskResultImpl in project scheduling by ow2-proactive.
the class TestReportingQueries method finishTask.
private long finishTask(InternalJob job, String taskName) throws Exception {
Thread.sleep(100);
InternalTask task = job.getTask(taskName);
TaskResultImpl res = new TaskResultImpl(null, "ok", null, 0);
job.terminateTask(false, task.getId(), null, null, res);
if (job.isFinished()) {
job.terminate();
}
dbManager.updateAfterTaskFinished(job, task, res);
return task.getFinishedTime() - task.getStartTime();
}
Aggregations