use of com.netflix.titus.grpc.protogen.Job 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");
}
Aggregations