use of ca.corefacility.bioinformatics.irida.model.NcbiExportSubmission in project irida by phac-nml.
the class ProjectExportController method getExportsForProject.
/**
* Ajax method for getting the {@link NcbiExportSubmission}s for a given
* {@link Project}
*
* @param projectId {@link Project} id
* @param params Parameters from the datatables request
* @return DatatablesResponse of Map of submission params
*/
@RequestMapping("/ajax/projects/{projectId}/export/list")
@ResponseBody
public DataTablesResponse getExportsForProject(@DataTablesRequest DataTablesParams params, @PathVariable Long projectId) {
Project project = projectService.read(projectId);
List<NcbiExportSubmission> submissions = exportSubmissionService.getSubmissionsForProject(project);
List<DataTablesResponseModel> dtExportSubmissions = submissions.stream().map(s -> new DTExportSubmission(s)).collect(Collectors.toList());
return new DataTablesResponse(params, submissions.size(), dtExportSubmissions);
}
use of ca.corefacility.bioinformatics.irida.model.NcbiExportSubmission in project irida by phac-nml.
the class ExportUploadServiceTest method testGetResultsSubmitted.
@SuppressWarnings("unchecked")
@Test
public void testGetResultsSubmitted() throws IOException, UploadException {
NcbiExportSubmissionService exportSubmissionService = mock(NcbiExportSubmissionService.class);
NcbiBioSampleFiles sample2 = new NcbiBioSampleFiles();
sample2.setId("NMLTEST2");
NcbiBioSampleFiles sample3 = new NcbiBioSampleFiles();
sample3.setId("NMLTEST3");
NcbiExportSubmission submission = new NcbiExportSubmission();
submission.setBioSampleFiles(Lists.newArrayList(sample2, sample3));
submission.setDirectoryPath("submit/Test/example");
when(exportSubmissionService.getSubmissionsWithState(any(Set.class))).thenReturn(Lists.newArrayList(submission));
String report = "<?xml version='1.0' encoding='utf-8'?>\n" + "<SubmissionStatus submission_id=\"SUB189884\" status=\"processing\">\n" + " <Action action_id=\"SUB189884-nmltest2\" target_db=\"SRA\" status=\"processing\">\n" + " <Response status=\"processing\"/>\n" + " </Action>\n" + " <Action action_id=\"SUB189884-nmltest3\" target_db=\"SRA\" status=\"submitted\"/>\n" + "</SubmissionStatus>\n";
String ftpHost = "localhost";
String ftpUser = "test";
String ftpPassword = "password";
String baseDirectory = "/home/test/submit/Test";
String submissionDirectory = baseDirectory + "/example";
String reportFile = submissionDirectory + "/report.2.xml";
FakeFtpServer server = new FakeFtpServer();
server.addUserAccount(new UserAccount(ftpUser, ftpPassword, "/home/test"));
FileSystem fileSystem = new UnixFakeFileSystem();
fileSystem.add(new DirectoryEntry(submissionDirectory));
fileSystem.add(new FileEntry(reportFile, report));
server.setFileSystem(fileSystem);
// finds an open port
server.setServerControlPort(0);
ExportUploadService exportUploadService = new ExportUploadService(exportSubmissionService, null, new TestEmailController());
try {
server.start();
int ftpPort = server.getServerControlPort();
exportUploadService.setConnectionDetails(ftpHost, ftpPort, ftpUser, ftpPassword, baseDirectory);
exportUploadService.updateRunningUploads();
} finally {
server.stop();
}
assertEquals("sample2 should have processing state", ExportUploadState.PROCESSING, sample2.getSubmissionStatus());
assertEquals("sample3 should have processing state", ExportUploadState.SUBMITTED, sample3.getSubmissionStatus());
}
use of ca.corefacility.bioinformatics.irida.model.NcbiExportSubmission in project irida by phac-nml.
the class ExportUploadServiceTest method testUploadSubmissionBadServer.
@Test(expected = UploadException.class)
public void testUploadSubmissionBadServer() throws UploadException, IOException {
NcbiExportSubmission submission = createFakeSubmission();
String ftpHost = "localhost";
String ftpUser = "test";
String ftpPassword = "password";
String baseDirectory = "/home/test/submit/Test";
int ftpPort = 1;
ExportUploadService exportUploadService = new ExportUploadService(null, null, new TestEmailController());
exportUploadService.setConnectionDetails(ftpHost, ftpPort, ftpUser, ftpPassword, baseDirectory);
String xml = "<xml></xml>";
exportUploadService.uploadSubmission(submission, xml);
}
use of ca.corefacility.bioinformatics.irida.model.NcbiExportSubmission in project irida by phac-nml.
the class ExportUploadServiceTest method testGetResultsWithAccession.
@SuppressWarnings("unchecked")
@Test
public void testGetResultsWithAccession() throws IOException, UploadException {
NcbiExportSubmissionService exportSubmissionService = mock(NcbiExportSubmissionService.class);
NcbiBioSampleFiles sample2 = new NcbiBioSampleFiles();
sample2.setId("NMLTEST2");
NcbiExportSubmission submission = new NcbiExportSubmission();
submission.setBioSampleFiles(Lists.newArrayList(sample2));
submission.setDirectoryPath("submit/Test/example");
String newAccession = "SRR12345";
when(exportSubmissionService.getSubmissionsWithState(any(Set.class))).thenReturn(Lists.newArrayList(submission));
String report = "<?xml version='1.0' encoding='utf-8'?>\n" + "<SubmissionStatus submission_id=\"SUB11245\" status=\"processed-ok\">\n" + " <Action action_id=\"SUB11245-nmltest2\" target_db=\"SRA\" status=\"processed-ok\" notify_submitter=\"true\">\n" + " <Response status=\"processed-ok\">\n" + " <Object target_db=\"SRA\" object_id=\"RUN:3119494\" spuid_namespace=\"NML\" spuid=\"nmltest2\" accession=\"" + newAccession + "\" status=\"updated\">\n" + " <Meta>\n" + " <SRAStudy>SRP12345</SRAStudy>\n" + " </Meta>\n" + " </Object>\n" + " </Response>\n" + " </Action>\n" + "</SubmissionStatus>";
String ftpHost = "localhost";
String ftpUser = "test";
String ftpPassword = "password";
String baseDirectory = "/home/test/submit/Test";
String submissionDirectory = baseDirectory + "/example";
String reportFile = submissionDirectory + "/report.2.xml";
FakeFtpServer server = new FakeFtpServer();
server.addUserAccount(new UserAccount(ftpUser, ftpPassword, "/home/test"));
FileSystem fileSystem = new UnixFakeFileSystem();
fileSystem.add(new DirectoryEntry(submissionDirectory));
fileSystem.add(new FileEntry(reportFile, report));
server.setFileSystem(fileSystem);
// finds an open port
server.setServerControlPort(0);
ExportUploadService exportUploadService = new ExportUploadService(exportSubmissionService, null, new TestEmailController());
try {
server.start();
int ftpPort = server.getServerControlPort();
exportUploadService.setConnectionDetails(ftpHost, ftpPort, ftpUser, ftpPassword, baseDirectory);
exportUploadService.updateRunningUploads();
} finally {
server.stop();
}
assertEquals("sample2 should have processing state", ExportUploadState.PROCESSED_OK, sample2.getSubmissionStatus());
assertEquals("sample2 should have an accession", newAccession, sample2.getAccession());
}
use of ca.corefacility.bioinformatics.irida.model.NcbiExportSubmission in project irida by phac-nml.
the class ExportUploadServiceTest method testUploadSubmission.
@Test
public void testUploadSubmission() throws UploadException, IOException {
NcbiExportSubmission submission = createFakeSubmission();
String ftpHost = "localhost";
String ftpUser = "test";
String ftpPassword = "password";
String baseDirectory = "/home/test/submit/Test";
FakeFtpServer server = new FakeFtpServer();
server.addUserAccount(new UserAccount(ftpUser, ftpPassword, "/home/test"));
FileSystem fileSystem = new UnixFakeFileSystem();
fileSystem.add(new DirectoryEntry(baseDirectory));
server.setFileSystem(fileSystem);
// finds an open port
server.setServerControlPort(0);
ExportUploadService exportUploadService = new ExportUploadService(null, null, new TestEmailController());
try {
server.start();
int ftpPort = server.getServerControlPort();
exportUploadService.setConnectionDetails(ftpHost, ftpPort, ftpUser, ftpPassword, baseDirectory);
String xml = "<xml></xml>";
exportUploadService.uploadSubmission(submission, xml);
} finally {
server.stop();
}
@SuppressWarnings("unchecked") List<String> listNames = fileSystem.listNames(baseDirectory);
assertEquals("submission directory exists", 1, listNames.size());
String createdDirectory = baseDirectory + "/" + listNames.iterator().next();
assertTrue("submission.xml created", fileSystem.exists(createdDirectory + "/submission.xml"));
assertTrue("submit.ready created", fileSystem.exists(createdDirectory + "/submit.ready"));
SequenceFile createdFile = submission.getBioSampleFiles().iterator().next().getFiles().iterator().next().getSequenceFile();
assertTrue("seqfile created", fileSystem.exists(createdDirectory + "/" + createdFile.getId() + ".fastq"));
}
Aggregations