use of com.netflix.titus.api.jobmanager.store.JobStore in project titus-control-plane by Netflix.
the class CassandraJobStoreTest method testRetrieveArchivedTask.
private void testRetrieveArchivedTask(boolean archive) {
JobStore store = getJobStore();
Job<BatchJobExt> job = createFinishedBatchJobObject();
store.init().await();
store.storeJob(job).await();
Pair<List<Job<?>>, Integer> jobsAndErrors = store.retrieveJobs().toBlocking().first();
checkRetrievedJob(job, jobsAndErrors.getLeft().get(0));
Task task = createFinishedTaskObject(job);
store.storeTask(task).await();
if (archive) {
store.deleteTask(task).await();
}
Task archivedTask = store.retrieveArchivedTask(task.getId()).toBlocking().first();
checkRetrievedTask(task, archivedTask);
}
use of com.netflix.titus.api.jobmanager.store.JobStore in project titus-control-plane by Netflix.
the class CassandraJobStoreTest method testMoveTask.
@Test
public void testMoveTask() {
JobStore store = getJobStore();
store.init().await();
Job<ServiceJobExt> jobFrom = createServiceJobObject();
store.storeJob(jobFrom).await();
Job<ServiceJobExt> jobTo = createServiceJobObject();
store.storeJob(jobTo).await();
Task task = createServiceTaskObject(jobFrom);
store.storeTask(task).await();
Job<ServiceJobExt> updatedFromJob = JobFunctions.incrementJobSize(jobFrom, -1);
Job<ServiceJobExt> updatedToJob = JobFunctions.incrementJobSize(jobTo, 1);
Task updatedTask = task.toBuilder().withJobId(updatedToJob.getId()).build();
store.moveTask(updatedFromJob, updatedToJob, updatedTask).await();
// Load jobFrom from store
Job<?> jobFromLoaded = store.retrieveJob(jobFrom.getId()).toBlocking().first();
assertThat(JobFunctions.getJobDesiredSize(jobFromLoaded)).isEqualTo(0);
Pair<List<Task>, Integer> jobFromTasksLoaded = store.retrieveTasksForJob(jobFrom.getId()).toBlocking().first();
assertThat(jobFromTasksLoaded.getLeft()).hasSize(0);
// Load jobTo from store
Job<?> jobToLoaded = store.retrieveJob(jobTo.getId()).toBlocking().first();
assertThat(JobFunctions.getJobDesiredSize(jobToLoaded)).isEqualTo(2);
Pair<List<Task>, Integer> jobToTasksLoaded = store.retrieveTasksForJob(jobTo.getId()).toBlocking().first();
assertThat(jobToTasksLoaded.getLeft()).hasSize(1);
jobToTasksLoaded.getLeft().forEach(t -> assertThat(t.getJobId()).isEqualTo(jobTo.getId()));
}
use of com.netflix.titus.api.jobmanager.store.JobStore in project titus-control-plane by Netflix.
the class CassandraJobStoreTest method testRetrieveArchivedTasksForJob.
private void testRetrieveArchivedTasksForJob(boolean archive) {
JobStore store = getJobStore();
Job<BatchJobExt> job = createFinishedBatchJobObject();
store.init().await();
store.storeJob(job).await();
Pair<List<Job<?>>, Integer> jobsAndErrors = store.retrieveJobs().toBlocking().first();
checkRetrievedJob(job, jobsAndErrors.getLeft().get(0));
Task task = createFinishedTaskObject(job);
store.storeTask(task).await();
if (archive) {
store.deleteTask(task).await();
}
Task archivedTask = store.retrieveArchivedTasksForJob(job.getId()).toBlocking().first();
checkRetrievedTask(task, archivedTask);
}
use of com.netflix.titus.api.jobmanager.store.JobStore in project titus-control-plane by Netflix.
the class CassandraJobStoreTest method testReplaceTask.
@Test
public void testReplaceTask() {
JobStore store = getJobStore();
Job<BatchJobExt> job = createBatchJobObject();
store.init().await();
store.storeJob(job).await();
Pair<List<Job<?>>, Integer> jobsAndErrors = store.retrieveJobs().toBlocking().first();
checkRetrievedJob(job, jobsAndErrors.getLeft().get(0));
Task firstTask = createTaskObject(job);
store.storeTask(firstTask).await();
Task retrievedTask = store.retrieveTask(firstTask.getId()).toBlocking().first();
checkRetrievedTask(firstTask, retrievedTask);
Task secondTask = createTaskObject(job);
store.replaceTask(firstTask, secondTask).await();
Pair<List<Task>, Integer> tasks = store.retrieveTasksForJob(job.getId()).toBlocking().first();
assertThat(tasks.getLeft()).hasSize(1);
assertThat(tasks.getRight()).isEqualTo(0);
checkRetrievedTask(secondTask, tasks.getLeft().get(0));
}
use of com.netflix.titus.api.jobmanager.store.JobStore in project titus-control-plane by Netflix.
the class CassandraJobStoreTest method testRetrieveJobs.
@Test
public void testRetrieveJobs() {
Session session = cassandraCqlUnit.getSession();
JobStore bootstrappingStore = getJobStore(session);
Job<BatchJobExt> job = createBatchJobObject();
bootstrappingStore.storeJob(job).await();
JobStore store = getJobStore(session);
store.init().await();
Pair<List<Job<?>>, Integer> jobsAndErrors = store.retrieveJobs().toBlocking().first();
assertThat(jobsAndErrors.getLeft()).hasSize(1);
assertThat(jobsAndErrors.getRight()).isEqualTo(0);
checkRetrievedJob(job, jobsAndErrors.getLeft().get(0));
// Check that archive access does not return anything.
try {
store.retrieveArchivedJob(job.getId()).toBlocking().first();
fail("Should not return active job");
} catch (JobStoreException e) {
assertThat(e.getErrorCode()).isEqualTo(JobStoreException.ErrorCode.JOB_DOES_NOT_EXIST);
}
}
Aggregations