Search in sources :

Example 26 with Task

use of com.netflix.titus.grpc.protogen.Task in project titus-control-plane by Netflix.

the class TaskDataInjectorTest method testFindTasksWithLegacyMigration.

@Test
public void testFindTasksWithLegacyMigration() {
    long deadline1 = titusRuntime.getClock().wallTime() + 1_000;
    long legacyDeadline2 = titusRuntime.getClock().wallTime() + 2_000;
    Task legacyTask = toLegacyTask(TASK2, legacyDeadline2);
    TaskQueryResult queryResult = TaskQueryResult.newBuilder().addItems(TASK1).addItems(legacyTask).build();
    when(relocationDataReplicator.getCurrent()).thenReturn(newRelocationSnapshot(newRelocationPlan(TASK1, deadline1)));
    TaskQueryResult merged = Observable.just(queryResult).map(queryResult1 -> taskDataInjector.injectIntoTaskQueryResult(queryResult1)).toBlocking().first();
    assertThat(merged.getItems(0).getMigrationDetails().getNeedsMigration()).isTrue();
    assertThat(merged.getItems(0).getMigrationDetails().getDeadline()).isEqualTo(deadline1);
    assertThat(merged.getItems(1)).isEqualTo(legacyTask);
}
Also used : Task(com.netflix.titus.grpc.protogen.Task) TaskQueryResult(com.netflix.titus.grpc.protogen.TaskQueryResult) Test(org.junit.Test)

Example 27 with Task

use of com.netflix.titus.grpc.protogen.Task in project titus-control-plane by Netflix.

the class JobCursorArchiveQueryTest method testArchiveQuery.

@Test(timeout = TEST_TIMEOUT_MS)
public void testArchiveQuery() {
    Evaluators.times(TASKS_PER_JOB, idx -> jobScenarioBuilder.getTaskByIndex(idx).killTask().completeKillInitiated().expectStateUpdateSkipOther(TaskStatus.TaskState.Finished));
    Evaluators.times(TASKS_PER_JOB, idx -> jobScenarioBuilder.expectTaskInSlot(idx, 1));
    int allTasksCount = TASKS_PER_JOB * 2;
    Set<String> taskIds = new HashSet<>();
    Page current = TWO_ITEM_PAGE;
    for (int i = 0; i < TASKS_PER_JOB; i++) {
        TaskQuery query = TaskQuery.newBuilder().setPage(current).putFilteringCriteria("jobIds", jobScenarioBuilder.getJobId()).putFilteringCriteria("taskStates", ALL_TASK_STATES).build();
        TaskQueryResult result = client.findTasks(query);
        assertThat(result.getPagination().getTotalItems()).isEqualTo(allTasksCount);
        assertThat(result.getPagination().getCursor()).isNotEmpty();
        taskIds.addAll(result.getItemsList().stream().map(Task::getId).collect(Collectors.toList()));
        current = query.getPage().toBuilder().setCursor(result.getPagination().getCursor()).build();
    }
    assertThat(taskIds).hasSize(allTasksCount);
}
Also used : Task(com.netflix.titus.grpc.protogen.Task) TaskQuery(com.netflix.titus.grpc.protogen.TaskQuery) Page(com.netflix.titus.grpc.protogen.Page) TaskQueryResult(com.netflix.titus.grpc.protogen.TaskQueryResult) HashSet(java.util.HashSet) BaseIntegrationTest(com.netflix.titus.master.integration.BaseIntegrationTest) IntegrationTest(com.netflix.titus.testkit.junit.category.IntegrationTest) Test(org.junit.Test)

Example 28 with Task

use of com.netflix.titus.grpc.protogen.Task in project titus-control-plane by Netflix.

the class JobDirectQueryTest method testFindArchivedTaskByIdV3.

@Test(timeout = 30_000)
public void testFindArchivedTaskByIdV3() throws Exception {
    Task task = client.findTask(TaskId.newBuilder().setId(v3ArchivedBatchTaskId).build());
    assertThat(task.getId()).isEqualTo(v3ArchivedBatchTaskId);
}
Also used : Task(com.netflix.titus.grpc.protogen.Task) BaseIntegrationTest(com.netflix.titus.master.integration.BaseIntegrationTest) IntegrationTest(com.netflix.titus.testkit.junit.category.IntegrationTest) Test(org.junit.Test)

Example 29 with Task

use of com.netflix.titus.grpc.protogen.Task in project titus-control-plane by Netflix.

the class JobFederationTest method testJobCreateRouting.

@Test(timeout = LONG_TEST_TIMEOUT_MS)
public void testJobCreateRouting() {
    Map<String, Job> jobs = new ConcurrentHashMap<>();
    Map<String, Task> tasks = new ConcurrentHashMap<>();
    eventStreamObserver.toObservable().subscribe(event -> {
        switch(event.getNotificationCase()) {
            case JOBUPDATE:
                Job job = event.getJobUpdate().getJob();
                jobs.put(job.getId(), job);
                break;
            case TASKUPDATE:
                Task task = event.getTaskUpdate().getTask();
                tasks.put(task.getJobId(), task);
                break;
        }
    });
    String cell1JobId = blockingJobClient.createJob(toGrpcJobDescriptor(oneTaskBatchJobDescriptor().toBuilder().withCapacityGroup("a123").build())).getId();
    String cell2JobId = blockingJobClient.createJob(toGrpcJobDescriptor(oneTaskBatchJobDescriptor().toBuilder().withCapacityGroup("b123").build())).getId();
    await().timeout(5, TimeUnit.SECONDS).until(() -> tasks.containsKey(cell1JobId));
    await().timeout(5, TimeUnit.SECONDS).until(() -> tasks.containsKey(cell2JobId));
    Map<String, String> cell1JobAttributes = jobs.get(cell1JobId).getJobDescriptor().getAttributesMap();
    assertThat(cell1JobAttributes).containsEntry("titus.stack", federatedStackName);
    assertThat(cell1JobAttributes).containsEntry("titus.cell", "defaultCell");
    Map<String, String> cell2JobAttributes = jobs.get(cell2JobId).getJobDescriptor().getAttributesMap();
    assertThat(cell2JobAttributes).containsEntry("titus.stack", federatedStackName);
    assertThat(cell2JobAttributes).containsEntry("titus.cell", "v3OnlyCell");
    Map<String, String> cell1TaskContext = tasks.get(cell1JobId).getTaskContextMap();
    assertThat(cell1TaskContext).containsEntry("titus.stack", federatedStackName);
    assertThat(cell1TaskContext).containsEntry("titus.cell", "defaultCell");
    Map<String, String> cell2TaskContext = tasks.get(cell2JobId).getTaskContextMap();
    assertThat(cell2TaskContext).containsEntry("titus.stack", federatedStackName);
    assertThat(cell2TaskContext).containsEntry("titus.cell", "v3OnlyCell");
}
Also used : Task(com.netflix.titus.grpc.protogen.Task) Job(com.netflix.titus.grpc.protogen.Job) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) BaseIntegrationTest(com.netflix.titus.master.integration.BaseIntegrationTest) IntegrationTest(com.netflix.titus.testkit.junit.category.IntegrationTest) Test(org.junit.Test)

Example 30 with Task

use of com.netflix.titus.grpc.protogen.Task in project titus-control-plane by Netflix.

the class JobCriteriaQueryTest method testFindArchivedTasksByTaskIdsV3.

@Test(timeout = 60_000)
public void testFindArchivedTasksByTaskIdsV3() {
    TaskQueryResult taskQueryResult = client.findTasks(TaskQuery.newBuilder().putFilteringCriteria("jobIds", finishedBatchJobWithFiveTasks).putFilteringCriteria("taskStates", com.netflix.titus.grpc.protogen.TaskStatus.TaskState.Finished.name()).setPage(PAGE).build());
    List<Task> tasks = taskQueryResult.getItemsList();
    assertThat(tasks).hasSize(5);
    assertThat(tasks).allMatch(task -> task.getStatus().getState() == TaskStatus.TaskState.Finished);
}
Also used : Task(com.netflix.titus.grpc.protogen.Task) TaskQueryResult(com.netflix.titus.grpc.protogen.TaskQueryResult) BaseIntegrationTest(com.netflix.titus.master.integration.BaseIntegrationTest) IntegrationTest(com.netflix.titus.testkit.junit.category.IntegrationTest) Test(org.junit.Test)

Aggregations

Task (com.netflix.titus.grpc.protogen.Task)30 Test (org.junit.Test)18 ArrayList (java.util.ArrayList)11 TaskQueryResult (com.netflix.titus.grpc.protogen.TaskQueryResult)10 Job (com.netflix.titus.grpc.protogen.Job)8 TaskQuery (com.netflix.titus.grpc.protogen.TaskQuery)6 BaseIntegrationTest (com.netflix.titus.master.integration.BaseIntegrationTest)6 IntegrationTest (com.netflix.titus.testkit.junit.category.IntegrationTest)6 HashSet (java.util.HashSet)6 List (java.util.List)6 Pair (com.netflix.titus.common.util.tuple.Pair)4 JobChangeNotification (com.netflix.titus.grpc.protogen.JobChangeNotification)4 Pagination (com.netflix.titus.api.model.Pagination)3 TitusServiceException (com.netflix.titus.api.service.TitusServiceException)3 TitusRuntime (com.netflix.titus.common.runtime.TitusRuntime)3 JobQuery (com.netflix.titus.grpc.protogen.JobQuery)3 JobQueryResult (com.netflix.titus.grpc.protogen.JobQueryResult)3 Page (com.netflix.titus.grpc.protogen.Page)3 TaskStatus (com.netflix.titus.grpc.protogen.TaskStatus)3 JobManagerCursors (com.netflix.titus.runtime.jobmanager.JobManagerCursors)3