Search in sources :

Example 21 with TaskStateData

use of org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskStateData in project scheduling by ow2-proactive.

the class JobStateImpl method getTasks.

@Override
public List<TaskState> getTasks() {
    Map<String, TaskStateData> taskStateMap = jobStateData.getTasks();
    List<TaskState> taskStateList = new ArrayList<>(taskStateMap.size());
    for (TaskStateData ts : taskStateMap.values()) {
        taskStateList.add(DataUtility.taskState(ts));
    }
    return taskStateList;
}
Also used : TaskStateData(org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskStateData) ArrayList(java.util.ArrayList) TaskState(org.ow2.proactive.scheduler.common.task.TaskState)

Example 22 with TaskStateData

use of org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskStateData in project scheduling by ow2-proactive.

the class ListTaskStatesCommand method execute.

@Override
public void execute(ApplicationContext currentContext) throws CLIException {
    SchedulerRestInterface scheduler = currentContext.getRestClient().getScheduler();
    try {
        List<TaskStateData> tasks = null;
        if (this.tag == null) {
            if (this.limit == 0) {
                tasks = scheduler.getJobTaskStates(currentContext.getSessionId(), jobId).getList();
            } else {
                tasks = scheduler.getJobTaskStatesPaginated(currentContext.getSessionId(), jobId, offset, limit).getList();
            }
        } else {
            if (this.limit == 0) {
                tasks = scheduler.getJobTaskStatesByTag(currentContext.getSessionId(), jobId, tag).getList();
            } else {
                tasks = scheduler.getJobTaskStatesByTagPaginated(currentContext.getSessionId(), jobId, tag, offset, limit).getList();
            }
        }
        resultStack(currentContext).push(tasks);
        if (!currentContext.isSilent()) {
            writeLine(currentContext, "%s", StringUtility.taskStatesAsString(tasks, false));
        }
    } catch (Exception e) {
        handleError(String.format("An error occurred while retrieving %s state:", job()), e, currentContext);
    }
}
Also used : TaskStateData(org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskStateData) SchedulerRestInterface(org.ow2.proactive_grid_cloud_portal.common.SchedulerRestInterface) CLIException(org.ow2.proactive_grid_cloud_portal.cli.CLIException)

Example 23 with TaskStateData

use of org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskStateData 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);
}
Also used : TaskStateData(org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskStateData) TaskInfoData(org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskInfoData) TaskIdData(org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskIdData) ArrayList(java.util.ArrayList) ObjectArrayFormatter(org.ow2.proactive.utils.ObjectArrayFormatter)

Example 24 with TaskStateData

use of org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskStateData in project scheduling by ow2-proactive.

the class ListTaskStatesCommandTest method setUp.

@Before
public void setUp() throws Exception {
    super.setUp();
    JobIdData jobId = jobIdFaker.fake();
    taskStateFaker = new DataFaker<TaskStateData>(TaskStateData.class);
    taskStateFaker.setGenerator("taskInfo.jobId", new FixedPropertyGenerator<JobIdData>(jobId));
    taskStateFaker.setGenerator("taskInfo.taskId.readableName", new PrefixPropertyGenerator("task", 1));
    taskStateFaker.setGenerator("name", new PrefixPropertyGenerator("task", 1));
    taskStateFaker.setGenerator("tag", new FixedPropertyGenerator("LOOP-T2-1"));
    this.taskData = this.taskStateFaker.fakeList(6);
    this.taskDataFiltered = new ArrayList<>();
    this.taskDataFiltered.add(this.taskData.get(0));
    this.taskDataFiltered.add(this.taskData.get(1));
    this.taskDataFiltered.add(this.taskData.get(2));
}
Also used : PrefixPropertyGenerator(objectFaker.propertyGenerator.PrefixPropertyGenerator) JobIdData(org.ow2.proactive_grid_cloud_portal.scheduler.dto.JobIdData) TaskStateData(org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskStateData) FixedPropertyGenerator(objectFaker.propertyGenerator.FixedPropertyGenerator) Before(org.junit.Before)

Aggregations

TaskStateData (org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskStateData)22 TaskState (org.ow2.proactive.scheduler.common.task.TaskState)11 ArrayList (java.util.ArrayList)8 NotConnectedException (org.ow2.proactive.scheduler.common.exception.NotConnectedException)8 PermissionException (org.ow2.proactive.scheduler.common.exception.PermissionException)8 NotConnectedRestException (org.ow2.proactive_grid_cloud_portal.scheduler.exception.NotConnectedRestException)8 PermissionRestException (org.ow2.proactive_grid_cloud_portal.scheduler.exception.PermissionRestException)8 Test (org.junit.Test)7 JobState (org.ow2.proactive.scheduler.common.job.JobState)7 RestPage (org.ow2.proactive_grid_cloud_portal.scheduler.dto.RestPage)7 UnknownJobRestException (org.ow2.proactive_grid_cloud_portal.scheduler.exception.UnknownJobRestException)6 Scheduler (org.ow2.proactive.scheduler.common.Scheduler)5 SortSpecifierContainer (org.ow2.proactive.scheduler.common.SortSpecifierContainer)5 UnknownJobException (org.ow2.proactive.scheduler.common.exception.UnknownJobException)5 GET (javax.ws.rs.GET)4 Path (javax.ws.rs.Path)4 Produces (javax.ws.rs.Produces)4 TaskIdData (org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskIdData)4 GZIP (org.jboss.resteasy.annotations.GZIP)3 TaskStatesPage (org.ow2.proactive.scheduler.common.task.TaskStatesPage)3