Search in sources :

Example 11 with Task

use of com.netflix.titus.api.jobmanager.model.job.Task in project titus-control-plane by Netflix.

the class CassandraJobStoreTest method testRetrieveArchivedTaskCountForJob.

@Test
public void testRetrieveArchivedTaskCountForJob() {
    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();
    store.deleteTask(task).await();
    Long count = store.retrieveArchivedTaskCountForJob(job.getId()).toBlocking().first();
    assertThat(count).isEqualTo(1);
}
Also used : BatchJobTask(com.netflix.titus.api.jobmanager.model.job.BatchJobTask) Task(com.netflix.titus.api.jobmanager.model.job.Task) ServiceJobTask(com.netflix.titus.api.jobmanager.model.job.ServiceJobTask) BatchJobExt(com.netflix.titus.api.jobmanager.model.job.ext.BatchJobExt) JobStore(com.netflix.titus.api.jobmanager.store.JobStore) ArrayList(java.util.ArrayList) List(java.util.List) Test(org.junit.Test) IntegrationNotParallelizableTest(com.netflix.titus.testkit.junit.category.IntegrationNotParallelizableTest)

Example 12 with Task

use of com.netflix.titus.api.jobmanager.model.job.Task in project titus-control-plane by Netflix.

the class CassandraJobStoreTest method testDeleteArchivedTask.

@Test
public void testDeleteArchivedTask() {
    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();
    store.deleteTask(task).await();
    Long count = store.retrieveArchivedTaskCountForJob(job.getId()).toBlocking().first();
    assertThat(count).isEqualTo(1);
    store.deleteArchivedTask(job.getId(), task.getId()).await();
    Long count2 = store.retrieveArchivedTaskCountForJob(job.getId()).toBlocking().first();
    assertThat(count2).isEqualTo(0);
}
Also used : BatchJobTask(com.netflix.titus.api.jobmanager.model.job.BatchJobTask) Task(com.netflix.titus.api.jobmanager.model.job.Task) ServiceJobTask(com.netflix.titus.api.jobmanager.model.job.ServiceJobTask) BatchJobExt(com.netflix.titus.api.jobmanager.model.job.ext.BatchJobExt) JobStore(com.netflix.titus.api.jobmanager.store.JobStore) ArrayList(java.util.ArrayList) List(java.util.List) Test(org.junit.Test) IntegrationNotParallelizableTest(com.netflix.titus.testkit.junit.category.IntegrationNotParallelizableTest)

Example 13 with Task

use of com.netflix.titus.api.jobmanager.model.job.Task in project titus-control-plane by Netflix.

the class CassandraJobStoreTest method testRetrieveTask.

@Test
public void testRetrieveTask() {
    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 task = createTaskObject(job);
    store.storeTask(task).await();
    Task retrievedTask = store.retrieveTask(task.getId()).toBlocking().first();
    checkRetrievedTask(task, retrievedTask);
    // Check that archive access does not return anything.
    try {
        store.retrieveArchivedTask(task.getId()).toBlocking().first();
        fail("Should not return active task");
    } catch (JobStoreException e) {
        assertThat(e.getErrorCode()).isEqualTo(JobStoreException.ErrorCode.TASK_DOES_NOT_EXIST);
    }
}
Also used : BatchJobTask(com.netflix.titus.api.jobmanager.model.job.BatchJobTask) Task(com.netflix.titus.api.jobmanager.model.job.Task) ServiceJobTask(com.netflix.titus.api.jobmanager.model.job.ServiceJobTask) JobStoreException(com.netflix.titus.api.jobmanager.store.JobStoreException) BatchJobExt(com.netflix.titus.api.jobmanager.model.job.ext.BatchJobExt) JobStore(com.netflix.titus.api.jobmanager.store.JobStore) ArrayList(java.util.ArrayList) List(java.util.List) Test(org.junit.Test) IntegrationNotParallelizableTest(com.netflix.titus.testkit.junit.category.IntegrationNotParallelizableTest)

Example 14 with Task

use of com.netflix.titus.api.jobmanager.model.job.Task 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);
}
Also used : BatchJobTask(com.netflix.titus.api.jobmanager.model.job.BatchJobTask) Task(com.netflix.titus.api.jobmanager.model.job.Task) ServiceJobTask(com.netflix.titus.api.jobmanager.model.job.ServiceJobTask) BatchJobExt(com.netflix.titus.api.jobmanager.model.job.ext.BatchJobExt) JobStore(com.netflix.titus.api.jobmanager.store.JobStore) ArrayList(java.util.ArrayList) List(java.util.List)

Example 15 with Task

use of com.netflix.titus.api.jobmanager.model.job.Task 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()));
}
Also used : BatchJobTask(com.netflix.titus.api.jobmanager.model.job.BatchJobTask) Task(com.netflix.titus.api.jobmanager.model.job.Task) ServiceJobTask(com.netflix.titus.api.jobmanager.model.job.ServiceJobTask) ServiceJobExt(com.netflix.titus.api.jobmanager.model.job.ext.ServiceJobExt) JobStore(com.netflix.titus.api.jobmanager.store.JobStore) ArrayList(java.util.ArrayList) List(java.util.List) Test(org.junit.Test) IntegrationNotParallelizableTest(com.netflix.titus.testkit.junit.category.IntegrationNotParallelizableTest)

Aggregations

Task (com.netflix.titus.api.jobmanager.model.job.Task)222 Test (org.junit.Test)98 ArrayList (java.util.ArrayList)63 List (java.util.List)62 Job (com.netflix.titus.api.jobmanager.model.job.Job)58 BatchJobTask (com.netflix.titus.api.jobmanager.model.job.BatchJobTask)45 TaskStatus (com.netflix.titus.api.jobmanager.model.job.TaskStatus)45 TaskState (com.netflix.titus.api.jobmanager.model.job.TaskState)42 TitusRuntime (com.netflix.titus.common.runtime.TitusRuntime)38 BatchJobExt (com.netflix.titus.api.jobmanager.model.job.ext.BatchJobExt)34 Pair (com.netflix.titus.common.util.tuple.Pair)32 V1Pod (io.kubernetes.client.openapi.models.V1Pod)32 V3JobOperations (com.netflix.titus.api.jobmanager.service.V3JobOperations)31 ServiceJobTask (com.netflix.titus.api.jobmanager.model.job.ServiceJobTask)29 Optional (java.util.Optional)27 Collections (java.util.Collections)26 Collectors (java.util.stream.Collectors)25 CallMetadata (com.netflix.titus.api.model.callmetadata.CallMetadata)24 HashMap (java.util.HashMap)24 TaskUpdateEvent (com.netflix.titus.api.jobmanager.model.job.event.TaskUpdateEvent)23