Search in sources :

Example 26 with Page

use of org.ow2.proactive.scheduler.common.Page in project scheduling by ow2-proactive.

the class SchedulerStateRestPaginationTest method testGetJobTasksIdsByTagPaginated.

@Test
public void testGetJobTasksIdsByTagPaginated() throws Throwable {
    JobState job = newMockedJob(jobIdStr, nbTasks);
    when(mockOfScheduler.getJobState(jobIdStr)).thenReturn(job);
    RestPage<String> page = restInterface.getTasksNamesPaginated(sessionId, jobIdStr, 0, nbTasks);
    assertTasks(nbTasks, jobIdStr, page);
}
Also used : JobState(org.ow2.proactive.scheduler.common.job.JobState) Test(org.junit.Test)

Example 27 with Page

use of org.ow2.proactive.scheduler.common.Page in project scheduling by ow2-proactive.

the class SchedulerStateRestTaskCentricTest method testGetTaskStatesByTagNoSorting.

@Test
public void testGetTaskStatesByTagNoSorting() throws Throwable {
    int nbTasksInPage = 50;
    int nbTotalTasks = 100;
    String jobIdStr = "1";
    String tag = "TAG-TEST";
    Page<TaskState> expectedPage = RestTestUtils.newMockedTaskStatePage(jobIdStr, tag, nbTasksInPage, nbTotalTasks);
    when(mockOfScheduler.getTaskStates(anyString(), anyLong(), anyLong(), anyBoolean(), anyBoolean(), anyBoolean(), anyBoolean(), anyInt(), anyInt(), any(SortSpecifierContainer.class))).thenReturn(expectedPage);
    RestPage<TaskStateData> page = restInterface.getTaskStatesByTag(sessionId, tag, 0, 0, false, true, true, true, 0, nbTasksInPage, new SortSpecifierContainer());
    RestTestUtils.assertTaskStates(expectedPage, page);
}
Also used : SortSpecifierContainer(org.ow2.proactive.scheduler.common.SortSpecifierContainer) TaskStateData(org.ow2.proactive_grid_cloud_portal.scheduler.dto.TaskStateData) TaskState(org.ow2.proactive.scheduler.common.task.TaskState) Test(org.junit.Test)

Example 28 with Page

use of org.ow2.proactive.scheduler.common.Page in project scheduling by ow2-proactive.

the class SchedulerDBManagerTest method assertTaskInfoPage.

private void assertTaskInfoPage(Page<TaskInfo> page, TaskFilterCriteria criterias) {
    List<TaskInfo> taskInfos = page.getList();
    for (TaskInfo taskInfo : taskInfos) {
        String taskStr = taskInfo.getName() + "," + taskInfo.getTaskId().getTag() + "," + String.valueOf(taskInfo.getFinishedTime()) + "," + taskInfo.getStatus();
        System.out.println(taskStr);
        String tag = criterias.getTag();
        // tag
        if (tag != null && "".compareTo(tag) != 0)
            assertEquals("Tag is incorrect for task " + taskStr, tag, taskInfo.getTaskId().getTag());
        // from
        long from = criterias.getFrom();
        if (from != 0)
            assertEquals("startTime is incorrect", from, taskInfo.getStartTime());
        // to
        long to = criterias.getTo();
        if (to != 0)
            assertEquals("finishedTime is incorrect", to, taskInfo.getFinishedTime());
        // pagination
        int pageSize = criterias.getLimit() - criterias.getOffset();
        if (pageSize > 0) {
            assertTrue("Page size is incorrect", pageSize >= taskInfos.size());
        }
        // user
        String user = criterias.getUser();
        if (user != null && "".compareTo(user) != 0) {
            assertEquals("user is incorrect", user, taskInfo.getJobInfo().getJobOwner());
        }
        // the corresponding criteria should be true
        switch(taskInfo.getStatus()) {
            case SUBMITTED:
            case PENDING:
            case NOT_STARTED:
                assertTrue("Task status is incorrect", criterias.isPending());
                break;
            case PAUSED:
            case RUNNING:
            case WAITING_ON_ERROR:
            case WAITING_ON_FAILURE:
                assertTrue("Task status is incorrect", criterias.isRunning());
                break;
            case FAILED:
            case NOT_RESTARTED:
            case ABORTED:
            case FAULTY:
            case FINISHED:
            case SKIPPED:
                assertTrue("Task status is incorrect", criterias.isFinished());
                break;
            default:
                fail("Incoherent task status");
        }
    }
}
Also used : TaskInfo(org.ow2.proactive.scheduler.common.task.TaskInfo)

Example 29 with Page

use of org.ow2.proactive.scheduler.common.Page in project scheduling by ow2-proactive.

the class SchedulerDBManagerTest method testUpdateJobAndTasksState.

@Test
public void testUpdateJobAndTasksState() throws Exception {
    InternalJob job = createTestJob("test", "tag", 1);
    service.submitJob(job);
    job.setStatus(JobStatus.KILLED);
    job.setNumberOfFailedTasks(2);
    job.setNumberOfFaultyTasks(3);
    job.setNumberOfInErrorTasks(5);
    job.setInErrorTime(7);
    InternalTask internalTask = job.getITasks().get(0);
    internalTask.setStatus(TaskStatus.IN_ERROR);
    internalTask.setInErrorTime(11);
    dbManager.updateJobAndTasksState(job);
    Page<JobInfo> jobs = dbManager.getJobs(0, 10, null, true, true, true, null);
    assertThat(jobs.getSize()).isEqualTo(1);
    JobInfo jobInfo = jobs.getList().get(0);
    assertThat(jobInfo.getStatus()).isEqualTo(JobStatus.KILLED);
    assertThat(jobInfo.getNumberOfFailedTasks()).isEqualTo(2);
    assertThat(jobInfo.getNumberOfFaultyTasks()).isEqualTo(3);
    assertThat(jobInfo.getNumberOfInErrorTasks()).isEqualTo(5);
    assertThat(jobInfo.getInErrorTime()).isEqualTo(7);
    Page<TaskState> tasks = dbManager.getTaskStates(0, 10, null, 0, 10, null, true, true, true, new SortSpecifierContainer());
    assertThat(tasks.getSize()).isEqualTo(1);
    TaskState taskState = tasks.getList().get(0);
    assertThat(taskState.getStatus()).isEqualTo(TaskStatus.IN_ERROR);
    assertThat(taskState.getTaskInfo().getInErrorTime()).isEqualTo(11);
}
Also used : SortSpecifierContainer(org.ow2.proactive.scheduler.common.SortSpecifierContainer) InternalJob(org.ow2.proactive.scheduler.job.InternalJob) InternalTask(org.ow2.proactive.scheduler.task.internal.InternalTask) JobInfo(org.ow2.proactive.scheduler.common.job.JobInfo) TaskState(org.ow2.proactive.scheduler.common.task.TaskState) Test(org.junit.Test)

Example 30 with Page

use of org.ow2.proactive.scheduler.common.Page in project scheduling by ow2-proactive.

the class SchedulerDBManagerTest method assertTaskStatePage.

private void assertTaskStatePage(Page<TaskState> page, TaskFilterCriteria criterias) {
    int nbTaskStates = page.getList().size();
    for (TaskState taskState : page.getList()) {
        String tag = criterias.getTag();
        if (tag != null)
            assertEquals("Tag is incorrect", tag, taskState.getTag());
        // from
        long from = criterias.getFrom();
        if (from != 0)
            assertEquals("startTime is incorrect", from, taskState.getStartTime());
        // to
        long to = criterias.getTo();
        if (to != 0)
            assertEquals("finishedTime is incorrect", to, taskState.getFinishedTime());
        // pagination
        int pageSize = criterias.getLimit() - criterias.getOffset();
        if (pageSize > 0) {
            assertTrue("Page size is incorrect", pageSize >= nbTaskStates);
        }
        // user
        String expectedUser = criterias.getUser();
        String actualUser = taskState.getTaskInfo().getJobInfo().getJobOwner();
        if (expectedUser != null && "".compareTo(expectedUser) != 0) {
            assertEquals("user is incorrect", expectedUser, actualUser);
        }
        // the corresponding criteria should be true
        switch(taskState.getStatus()) {
            case SUBMITTED:
            case PENDING:
            case NOT_STARTED:
                assertTrue("Task status is incorrect", criterias.isPending());
                break;
            case PAUSED:
            case RUNNING:
            case WAITING_ON_ERROR:
            case WAITING_ON_FAILURE:
                assertTrue("Task status is incorrect", criterias.isRunning());
                break;
            case FAILED:
            case NOT_RESTARTED:
            case ABORTED:
            case FAULTY:
            case FINISHED:
            case SKIPPED:
                assertTrue("Task status is incorrect", criterias.isFinished());
                break;
            default:
                fail("Incoherent task status");
        }
    }
}
Also used : TaskState(org.ow2.proactive.scheduler.common.task.TaskState)

Aggregations

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