use of org.ow2.proactive.scheduler.common.task.TaskId in project scheduling by ow2-proactive.
the class DataUtility method taskInfo.
public static TaskInfo taskInfo(TaskInfoData d) {
TaskInfoImpl impl = new TaskInfoImpl();
JobIdData jobIdData = d.getJobId();
if (jobIdData != null) {
JobId jobId = jobId(jobIdData);
impl.setJobId(jobId);
TaskId taskId = taskId(jobId, d.getTaskId());
impl.setTaskId(taskId);
}
impl.setExecutionDuration(d.getExecutionDuration());
impl.setExecutionHostName(d.getExecutionHostName());
impl.setInErrorTime(d.getInErrorTime());
impl.setFinishedTime(d.getFinishedTime());
impl.setNumberOfExecutionLeft(d.getNumberOfExecutionLeft());
impl.setNumberOfExecutionOnFailureLeft(d.getNumberOfExecutionOnFailureLeft());
impl.setStartTime(d.getStartTime());
impl.setStatus(TaskStatus.valueOf(d.getTaskStatus().name()));
impl.setName(d.getTaskId().getReadableName());
impl.setProgress(d.getProgress());
return impl;
}
use of org.ow2.proactive.scheduler.common.task.TaskId in project scheduling by ow2-proactive.
the class PreemptTaskCommand method execute.
@Override
public void execute(ApplicationContext currentContext) throws CLIException {
SchedulerRestInterface scheduler = currentContext.getRestClient().getScheduler();
try {
boolean success = scheduler.preemptTask(currentContext.getSessionId(), jobId, taskId);
resultStack(currentContext).push(success);
if (success) {
writeLine(currentContext, "%s has been stopped and will be rescheduled after 5 seconds.", task());
} else {
writeLine(currentContext, "%s cannot be stopped and most likely it is not running.", task());
}
} catch (Exception e) {
handleError(String.format("An error occurred while attempting to preemt %s:", task()), e, currentContext);
}
}
use of org.ow2.proactive.scheduler.common.task.TaskId in project scheduling by ow2-proactive.
the class StringUtility method taskStatesAsString.
public static String taskStatesAsString(Collection<TaskStateData> tasks, boolean displayTags) {
// create formatter
ObjectArrayFormatter formatter = new ObjectArrayFormatter();
formatter.setMaxColumnLength(80);
// space between column
formatter.setSpace(4);
// title line
List<String> list = new ArrayList<>();
list.add("ID");
list.add("NAME");
if (displayTags) {
list.add("TAG");
}
list.add("ITER");
list.add("DUP");
list.add("STATUS");
list.add("HOSTNAME");
list.add("EXEC DURATION");
list.add("TOT DURATION");
list.add("#NODES USED");
list.add("#EXECUTIONS");
list.add("#NODES KILLED");
formatter.setTitle(list);
formatter.addEmptyLine();
for (TaskStateData taskState : tasks) {
list = new ArrayList<>();
TaskInfoData taskInfo = taskState.getTaskInfo();
TaskIdData taskId = taskInfo.getTaskId();
list.add(String.valueOf(taskId.getId()));
list.add(taskId.getReadableName());
if (displayTags) {
list.add(toStringNullable(taskState.getTag()));
}
list.add((taskState.getIterationIndex() > 0) ? "" + taskState.getIterationIndex() : "");
list.add((taskState.getReplicationIndex() > 0) ? "" + taskState.getReplicationIndex() : "");
list.add(taskInfo.getTaskStatus().toString());
list.add(toStringNullable(taskInfo.getExecutionHostName(), "unknown"));
if (taskInfo.getTaskStatus() == TaskStatusData.IN_ERROR) {
list.add(Tools.getFormattedDuration(taskInfo.getInErrorTime(), taskInfo.getStartTime()));
} else {
list.add(Tools.getFormattedDuration(0, taskInfo.getExecutionDuration()));
}
list.add(Tools.getFormattedDuration(taskInfo.getFinishedTime(), taskInfo.getStartTime()));
list.add("" + taskState.getNumberOfNodesNeeded());
list.add((taskState.getMaxNumberOfExecution() - taskInfo.getNumberOfExecutionLeft()) + "/" + taskState.getMaxNumberOfExecution());
list.add((taskState.getMaxNumberOfExecutionOnFailure() - taskInfo.getNumberOfExecutionOnFailureLeft()) + "/" + taskState.getMaxNumberOfExecutionOnFailure());
formatter.addLine(list);
}
return Tools.getStringAsArray(formatter);
}
use of org.ow2.proactive.scheduler.common.task.TaskId in project scheduling by ow2-proactive.
the class TerminationDataTest method testAddTaskData.
@Test
public void testAddTaskData() {
assertThat(terminationData.isEmpty(), is(true));
InternalJob job = new InternalTaskFlowJob("test-name", JobPriority.NORMAL, OnTaskError.CANCEL_JOB, "description");
JobId jobId = new JobIdImpl(666, "readableName");
InternalTask internalTask = new InternalScriptTask(job);
TaskId taskId = TaskIdImpl.createTaskId(jobId, "task-name", 777L);
internalTask.setId(taskId);
internalTask.setName("task-name");
internalTask.setStatus(TaskStatus.RUNNING);
internalTask.setExecuterInformation(Mockito.mock(ExecuterInformation.class));
RunningTaskData taskData = new RunningTaskData(internalTask, "user", null, null);
terminationData.addTaskData(null, taskData, TerminationData.TerminationStatus.NORMAL, null);
assertThat(terminationData.isEmpty(), is(false));
assertThat(terminationData.taskTerminated(jobId, "task-name"), is(true));
}
use of org.ow2.proactive.scheduler.common.task.TaskId in project scheduling by ow2-proactive.
the class TerminationDataTest method testAddRestartData.
@Test
public void testAddRestartData() {
assertThat(terminationData.isEmpty(), is(true));
JobId jobId = new JobIdImpl(666, "readableName");
TaskId taskId = TaskIdImpl.createTaskId(jobId, "task-name", 777L);
terminationData.addRestartData(taskId, 1000L);
assertThat(terminationData.isEmpty(), is(false));
}
Aggregations