use of org.apache.metron.job.manager.InMemoryJobManager in project metron by apache.
the class PcapServiceImplTest method getStatusShouldReturnNullOnMissingStatus.
@Test
public void getStatusShouldReturnNullOnMissingStatus() throws Exception {
JobManager jobManager = new InMemoryJobManager();
PcapServiceImpl pcapService = new PcapServiceImpl(environment, configuration, new PcapJobSupplier(), jobManager, pcapToPdmlScriptWrapper);
assertNull(pcapService.getJobStatus("user", "jobId"));
}
use of org.apache.metron.job.manager.InMemoryJobManager in project metron by apache.
the class PcapServiceImplTest method submitShouldProperlySubmitWithDefaults.
@Test
public void submitShouldProperlySubmitWithDefaults() throws Exception {
long beforeJobTime = System.currentTimeMillis();
FixedPcapRequest fixedPcapRequest = new FixedPcapRequest();
MockPcapJob mockPcapJob = new MockPcapJob();
mockPcapJobSupplier.setMockPcapJob(mockPcapJob);
JobManager jobManager = new InMemoryJobManager<>();
PcapServiceImpl pcapService = spy(new PcapServiceImpl(environment, configuration, mockPcapJobSupplier, jobManager, pcapToPdmlScriptWrapper));
FileSystem fileSystem = mock(FileSystem.class);
doReturn(fileSystem).when(pcapService).getFileSystem();
mockPcapJob.setStatus(new JobStatus().withJobId("jobId").withDescription("description").withPercentComplete(0L).withState(JobStatus.State.RUNNING));
PcapStatus expectedPcapStatus = new PcapStatus();
expectedPcapStatus.setJobId("jobId");
expectedPcapStatus.setJobStatus(JobStatus.State.RUNNING.name());
expectedPcapStatus.setDescription("description");
assertEquals(expectedPcapStatus, pcapService.submit("user", fixedPcapRequest));
assertEquals("/base/path", mockPcapJob.getBasePath());
assertEquals("/base/interim/result/path", mockPcapJob.getBaseInterrimResultPath());
assertEquals("/final/output/path", mockPcapJob.getFinalOutputPath());
assertEquals(0, mockPcapJob.getStartTimeNs());
assertTrue(beforeJobTime <= mockPcapJob.getEndTimeNs() / 1000000);
assertTrue(System.currentTimeMillis() >= mockPcapJob.getEndTimeNs() / 1000000);
assertEquals(10, mockPcapJob.getNumReducers());
assertEquals(100, mockPcapJob.getRecPerFile());
assertTrue(mockPcapJob.getFilterImpl() instanceof FixedPcapFilter.Configurator);
assertEquals(new HashMap<>(), mockPcapJob.getFixedFields());
}
use of org.apache.metron.job.manager.InMemoryJobManager in project metron by apache.
the class PcapServiceImplTest method getRawShouldProperlyReturnInputStream.
@Test
public void getRawShouldProperlyReturnInputStream() throws Exception {
FSDataInputStream inputStream = mock(FSDataInputStream.class);
Path path = new Path("./target");
PcapServiceImpl pcapService = spy(new PcapServiceImpl(environment, configuration, new PcapJobSupplier(), new InMemoryJobManager<>(), new PcapToPdmlScriptWrapper()));
FileSystem fileSystem = mock(FileSystem.class);
doReturn(fileSystem).when(pcapService).getFileSystem();
when(fileSystem.exists(path)).thenReturn(true);
doReturn(path).when(pcapService).getPath("user", "jobId", 1);
when(fileSystem.open(path)).thenReturn(inputStream);
assertEquals(inputStream, pcapService.getRawPcap("user", "jobId", 1));
}
use of org.apache.metron.job.manager.InMemoryJobManager in project metron by apache.
the class PcapServiceImplTest method getPdmlShouldThrowException.
@Test
public void getPdmlShouldThrowException() throws Exception {
Path path = new Path("./target");
PcapToPdmlScriptWrapper pcapToPdmlScriptWrapper = spy(new PcapToPdmlScriptWrapper());
PcapServiceImpl pcapService = spy(new PcapServiceImpl(environment, configuration, new PcapJobSupplier(), new InMemoryJobManager<>(), pcapToPdmlScriptWrapper));
FileSystem fileSystem = mock(FileSystem.class);
doReturn(fileSystem).when(pcapService).getFileSystem();
when(fileSystem.exists(path)).thenReturn(true);
doReturn(path).when(pcapService).getPath("user", "jobId", 1);
ProcessBuilder pb = mock(ProcessBuilder.class);
doReturn(pb).when(pcapToPdmlScriptWrapper).getProcessBuilder("/path/to/pdml/script", "target");
when(pb.start()).thenThrow(new IOException("some exception"));
RestException e = assertThrows(RestException.class, () -> pcapService.getPdml("user", "jobId", 1));
assertEquals("some exception", e.getMessage());
}
use of org.apache.metron.job.manager.InMemoryJobManager in project metron by apache.
the class PcapServiceImplTest method submitShouldThrowExceptionOnRunningJobFound.
@Test
public void submitShouldThrowExceptionOnRunningJobFound() throws Exception {
PcapStatus runningStatus1 = new PcapStatus();
runningStatus1.setJobStatus("RUNNING");
runningStatus1.setJobId("jobId1");
PcapStatus runningStatus2 = new PcapStatus();
runningStatus2.setJobStatus("RUNNING");
runningStatus2.setJobId("jobId2");
PcapServiceImpl pcapService = spy(new PcapServiceImpl(environment, configuration, mockPcapJobSupplier, new InMemoryJobManager<>(), pcapToPdmlScriptWrapper));
doReturn(Arrays.asList(runningStatus1, runningStatus2)).when(pcapService).getJobStatus("user", JobStatus.State.RUNNING);
when(environment.getProperty(MetronRestConstants.USER_JOB_LIMIT_SPRING_PROPERTY, Integer.class, 1)).thenReturn(2);
RestException e = assertThrows(RestException.class, () -> pcapService.submit("user", new FixedPcapRequest()));
assertTrue(e.getMessage().contains("Cannot submit job because a job is already running. Please contact the administrator to cancel job(s) with id(s) jobId"));
}
Aggregations