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);
}
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);
}
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);
}
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");
}
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);
}
Aggregations