Search in sources :

Example 1 with Job

use of uk.gov.gchq.gaffer.jobtracker.Job in project Gaffer by gchq.

the class PersistentCachingJobServiceV2IT method scheduleJob.

private JobDetail scheduleJob(final Repeat repeat) throws IOException {
    final Job job = new Job(repeat, new OperationChain.Builder().first(new GetAllElements()).build());
    final Response scheduleResponse = client.scheduleJob(job);
    return scheduleResponse.readEntity(new GenericType<JobDetail>() {
    });
}
Also used : Response(javax.ws.rs.core.Response) JobDetail(uk.gov.gchq.gaffer.jobtracker.JobDetail) OperationChain(uk.gov.gchq.gaffer.operation.OperationChain) GetAllElements(uk.gov.gchq.gaffer.operation.impl.get.GetAllElements) Job(uk.gov.gchq.gaffer.jobtracker.Job)

Example 2 with Job

use of uk.gov.gchq.gaffer.jobtracker.Job in project Gaffer by gchq.

the class JobControllerIT method shouldCorrectlyDoAndThenCancelScheduledJob.

@Test
public void shouldCorrectlyDoAndThenCancelScheduledJob() throws IOException, InterruptedException {
    // When
    final Repeat repeat = new Repeat(1, 2, TimeUnit.SECONDS);
    Job job = new Job(repeat, new OperationChain.Builder().first(new GetAllElements()).build());
    final ResponseEntity<JobDetail> jobSchedulingResponse = post("/graph/jobs/schedule", job, JobDetail.class);
    JobDetail jobDetailParent = jobSchedulingResponse.getBody();
    // Then
    assertEquals(201, jobSchedulingResponse.getStatusCode().value());
    String parentJobId = jobDetailParent.getJobId();
    // Wait for first scheduled to run
    Thread.sleep(1500);
    final ResponseEntity<List> getAllJobDetailsResponse = post("/graph/operations/execute", new GetAllJobDetails(), List.class);
    Iterable<JobDetail> jobDetails = deserialiseJobDetailIterable(getAllJobDetailsResponse.getBody());
    for (JobDetail jobDetail : jobDetails) {
        if (null != jobDetail.getParentJobId() && jobDetail.getParentJobId().equals(parentJobId)) {
            assertEquals(JobStatus.FINISHED, jobDetail.getStatus());
        }
        if (jobDetail.getJobId().equals(parentJobId)) {
            assertEquals(JobStatus.SCHEDULED_PARENT, jobDetail.getStatus());
        }
    }
    post("/graph/operations/execute", new CancelScheduledJob.Builder().jobId(parentJobId).build(), Set.class);
    final Iterable<JobDetail> cancelledJobDetails = deserialiseJobDetailIterable(post("/graph/operations/execute", new GetAllJobDetails(), List.class).getBody());
    for (JobDetail jobDetail : cancelledJobDetails) {
        if (parentJobId.equals(jobDetail.getJobId())) {
            assertEquals(JobStatus.CANCELLED, jobDetail.getStatus());
        }
    }
}
Also used : Repeat(uk.gov.gchq.gaffer.jobtracker.Repeat) JobDetail(uk.gov.gchq.gaffer.jobtracker.JobDetail) GetAllJobDetails(uk.gov.gchq.gaffer.operation.impl.job.GetAllJobDetails) OperationChain(uk.gov.gchq.gaffer.operation.OperationChain) GetAllElements(uk.gov.gchq.gaffer.operation.impl.get.GetAllElements) ArrayList(java.util.ArrayList) List(java.util.List) CancelScheduledJob(uk.gov.gchq.gaffer.operation.impl.job.CancelScheduledJob) Job(uk.gov.gchq.gaffer.jobtracker.Job) CancelScheduledJob(uk.gov.gchq.gaffer.operation.impl.job.CancelScheduledJob) Test(org.junit.Test)

Example 3 with Job

use of uk.gov.gchq.gaffer.jobtracker.Job in project Gaffer by gchq.

the class GraphTest method shouldThrowExceptionOnExecuteJobUsingJobWithANullOperation.

@Test
public void shouldThrowExceptionOnExecuteJobUsingJobWithANullOperation() throws OperationException {
    // Given
    final Context context = new Context();
    final Graph graph = new Graph.Builder().config(new GraphConfig.Builder().graphId(GRAPH_ID).build()).storeProperties(StreamUtil.storeProps(getClass())).addSchemas(StreamUtil.schemas(getClass())).build();
    final Job job = new Job(new Repeat(), new OperationChain<>());
    // When / Then
    assertThatIllegalArgumentException().isThrownBy(() -> graph.executeJob(job, context)).withMessage("An operation is required");
}
Also used : Context(uk.gov.gchq.gaffer.store.Context) Repeat(uk.gov.gchq.gaffer.jobtracker.Repeat) Job(uk.gov.gchq.gaffer.jobtracker.Job) Test(org.junit.jupiter.api.Test)

Example 4 with Job

use of uk.gov.gchq.gaffer.jobtracker.Job in project Gaffer by gchq.

the class GraphTest method shouldThrowExceptionOnExecuteJobUsingJobWithANullContext.

@Test
public void shouldThrowExceptionOnExecuteJobUsingJobWithANullContext() throws OperationException {
    // Given
    final Context context = null;
    final OperationChain opChain = mock(OperationChain.class);
    final Graph graph = new Graph.Builder().config(new GraphConfig.Builder().graphId(GRAPH_ID).build()).storeProperties(StreamUtil.storeProps(getClass())).addSchemas(StreamUtil.schemas(getClass())).build();
    final Job job = new Job(null, opChain);
    // When / Then
    assertThatIllegalArgumentException().isThrownBy(() -> graph.executeJob(job, context)).withMessage("A context is required");
}
Also used : Context(uk.gov.gchq.gaffer.store.Context) OperationChain(uk.gov.gchq.gaffer.operation.OperationChain) Job(uk.gov.gchq.gaffer.jobtracker.Job) Test(org.junit.jupiter.api.Test)

Example 5 with Job

use of uk.gov.gchq.gaffer.jobtracker.Job in project Gaffer by gchq.

the class GraphTest method shouldThrowExceptionOnExecuteJobUsingJobWithANullUser.

@Test
public void shouldThrowExceptionOnExecuteJobUsingJobWithANullUser() throws OperationException {
    // Given
    final User user = null;
    final OperationChain opChain = mock(OperationChain.class);
    final Graph graph = new Graph.Builder().config(new GraphConfig.Builder().graphId(GRAPH_ID).build()).storeProperties(StreamUtil.storeProps(getClass())).addSchemas(StreamUtil.schemas(getClass())).build();
    final Job job = new Job(null, opChain);
    // When / Then
    assertThatIllegalArgumentException().isThrownBy(() -> graph.executeJob(job, user)).withMessage("User is required");
}
Also used : User(uk.gov.gchq.gaffer.user.User) OperationChain(uk.gov.gchq.gaffer.operation.OperationChain) Job(uk.gov.gchq.gaffer.jobtracker.Job) Test(org.junit.jupiter.api.Test)

Aggregations

Job (uk.gov.gchq.gaffer.jobtracker.Job)10 Test (org.junit.jupiter.api.Test)8 OperationChain (uk.gov.gchq.gaffer.operation.OperationChain)8 JobDetail (uk.gov.gchq.gaffer.jobtracker.JobDetail)6 Repeat (uk.gov.gchq.gaffer.jobtracker.Repeat)5 GetAllElements (uk.gov.gchq.gaffer.operation.impl.get.GetAllElements)5 CancelScheduledJob (uk.gov.gchq.gaffer.operation.impl.job.CancelScheduledJob)4 Context (uk.gov.gchq.gaffer.store.Context)4 List (java.util.List)3 Response (javax.ws.rs.core.Response)3 GetAllJobDetails (uk.gov.gchq.gaffer.operation.impl.job.GetAllJobDetails)3 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 ScheduledExecutorService (java.util.concurrent.ScheduledExecutorService)1 TimeUnit (java.util.concurrent.TimeUnit)1 GenericType (javax.ws.rs.core.GenericType)1 Test (org.junit.Test)1 Assertions.assertEquals (org.junit.jupiter.api.Assertions.assertEquals)1 Assertions.assertNotNull (org.junit.jupiter.api.Assertions.assertNotNull)1 Assertions.assertTrue (org.junit.jupiter.api.Assertions.assertTrue)1