@Deprecated @Override public QueryResult<Job> run(Job job) throws Exception { // TODO: Lock job before submit. Avoid double submission // SgeManager.queueJob(job.getToolName(), job.getResourceManagerAttributes().get(Job.JOB_SCHEDULER_NAME).toString(), // -1, job.getTmpOutDirUri().getPath(), job.getCommandLine(), null, "job." + job.getId()); return catalogManager.getJobManager().update(job.getUid(), new ObjectMap(JobDBAdaptor.QueryParams.STATUS_NAME.key(), Job.JobStatus.QUEUED), null, sessionId); //TODO: Add query options }
public ToolAnalysis(Configuration configuration) throws CatalogException, AnalysisToolException { this.catalogManager = new CatalogManager(configuration); this.toolManager = new ToolManager(Paths.get(configuration.getToolDir())); this.jobManager = catalogManager.getJobManager(); this.fileManager = catalogManager.getFileManager(); }
catalogManager.getJobManager().update(job.getUid(), parameters, null, sessionId); catalogManager.getJobManager().update(job.getUid(), parameters, null, sessionId); objectMapper.writer().writeValue(outdir.resolve(JOB_STATUS_FILE).toFile(), new Job.JobStatus(Job.JobStatus.ERROR, "Job finished with error.")); return catalogManager.getJobManager().get(job.getUid(), new QueryOptions(), sessionId);
public void updateJobStatus(Job job, Job.JobStatus jobStatus) throws CatalogException { if (jobStatus != null) { if (jobStatus.getName().equalsIgnoreCase(Job.JobStatus.DONE)) { jobStatus.setName(Job.JobStatus.READY); jobStatus.setMessage("The job has finished"); } else if (jobStatus.getName().equalsIgnoreCase(Job.JobStatus.ERROR)) { jobStatus.setName(Job.JobStatus.ERROR); jobStatus.setMessage("The job finished with an error"); } else { logger.error("This block should never be executed. Accepted status in " + JOB_STATUS_FILE + " file are DONE and ERROR"); jobStatus.setName(Job.JobStatus.ERROR); jobStatus.setMessage("The finished with an unexpected error"); } // ObjectMap params = new ObjectMap(JobDBAdaptor.QueryParams.STATUS.key(), jobStatus); // catalogManager.getJobManager().update(job.getId(), params, new QueryOptions(), sessionId); Study study = catalogManager.getJobManager().getStudy(job, sessionId); catalogManager.getJobManager().setStatus(study.getFqn(), job.getId(), jobStatus.getName(), jobStatus.getMessage(), sessionId); } else { logger.error("This code should never be executed."); throw new CatalogException("Job status = null"); } }
parameters.put(JobDBAdaptor.QueryParams.END_TIME.key(), System.currentTimeMillis()); try { catalogManager.getJobManager().update(job.getUid(), parameters, null, this.sessionId); } catch (CatalogException e) { logger.error("Critical error. Could not update job output files from job {} with output {}. Error: {}", job.getUid(),
return catalogManager.getJobManager().get(job.getUid(), new QueryOptions(), sessionId);
throw new AnalysisExecutionException(e.getCause()); jobQueryResult = catalogManager.getJobManager().get(job.getUid(), null, sessionId);
public int execute(Job job) throws CatalogException, AnalysisExecutionException { return execute(job.getToolId(), job.getExecution(), catalogManager.getJobManager().getStudyId(job.getUid()), job.getParams()); }
parameters.put(JobDBAdaptor.QueryParams.END_TIME.key(), System.currentTimeMillis()); try { catalogManager.getJobManager().update(studyStr, job.getUuid(), parameters, null, this.sessionId); } catch (CatalogException e) { logger.error("Critical error. Could not update job output files from job {} with output {}. Error: {}", job.getUuid(),
private void checkGetAllJobs(Collection<Long> expectedJobs, String sessionId) throws CatalogException { QueryResult<Job> allJobs = catalogManager.getJobManager().get(studyFqn, (Query) null, null, sessionId); assertEquals(expectedJobs.size(), allJobs.getNumResults()); allJobs.getResult().forEach(job -> assertTrue(expectedJobs + " does not contain job " + job.getName(), expectedJobs.contains(job .getUid()))); }
public static Job runStorageJob(CatalogManager catalogManager, Job job, Logger logger, String sessionId) throws CatalogException, IOException { try { ExecutorManager.execute(catalogManager, job, sessionId); } catch (ExecutionException e) { throw new IOException(e.getCause()); } return catalogManager.getJobManager().get(job.getUid(), null, sessionId).first(); }
@Test public void getAllJobs() throws CatalogException { Job job = new Job() .setId("job1") .setToolId("toolId") .setOutDir(new File().setPath(data_d1_d2)); long job1 = catalogManager.getJobManager().create(studyFqn, job, null, ownerSessionId).first().getUid(); job.setId("job2"); long job2 = catalogManager.getJobManager().create(studyFqn, job, null, ownerSessionId).first().getUid(); job.setId("job3"); long job3 = catalogManager.getJobManager().create(studyFqn, job, null, ownerSessionId).first().getUid(); job.setId("job4"); long job4 = catalogManager.getJobManager().create(studyFqn, job, null, ownerSessionId).first().getUid(); checkGetAllJobs(Arrays.asList(job1, job2, job3, job4), ownerSessionId); //Owner can see everything checkGetAllJobs(Collections.emptyList(), externalSessionId); //Can't see inside data_d1_d2_d3 }
jobQueryResult = catalogManager.getJobManager().queue(studyStr, jobName, description, "opencga-analysis.sh", Job.Type.INDEX, params, fileIdList, outputList, outDir, attributes, sessionId); jobQueryResult.first().setToolId(jobName);
@Test public void testGetAllJobs() throws CatalogException { Query query = new Query(StudyDBAdaptor.QueryParams.OWNER.key(), "user"); String studyId = catalogManager.getStudyManager().get(query, null, sessionIdUser).first().getId(); catalogManager.getJobManager().create(studyId, new Job().setId("myErrorJob").setToolId("samtools"), null, sessionIdUser); QueryResult<Job> allJobs = catalogManager.getJobManager().get(studyId, (Query) null, null, sessionIdUser); assertEquals(1, allJobs.getNumTotalResults()); assertEquals(1, allJobs.getNumResults()); }
/** * Job methods * *************************** */ @Test public void testCreateJob() throws CatalogException, IOException { Query query = new Query(StudyDBAdaptor.QueryParams.OWNER.key(), "user"); String studyId = catalogManager.getStudyManager().get(query, null, sessionIdUser).first().getId(); File outDir = catalogManager.getFileManager().createFolder(studyId, Paths.get("jobs", "myJob").toString(), null, true, null, QueryOptions.empty(), sessionIdUser).first(); catalogManager.getJobManager().create(studyId,new Job().setId("myJob").setToolId("samtool").setDescription("description") .setOutDir(outDir).setExecution("echo \"Hello world!\"").setStatus(new Job.JobStatus(Job.JobStatus.PREPARED)), null, sessionIdUser); catalogManager.getJobManager().create(studyId, new Job().setId("myReadyJob").setToolId("samtool").setDescription("description") .setOutDir(outDir).setExecution("echo \"Hello world!\"").setStatus(new Job.JobStatus(Job.JobStatus.READY)), null, sessionIdUser); catalogManager.getJobManager().create(studyId, new Job().setId("myQueuedJob").setToolId("samtool").setDescription("description") .setOutDir(outDir).setExecution("echo \"Hello world!\"").setStatus(new Job.JobStatus(Job.JobStatus.QUEUED)), null, sessionIdUser); catalogManager.getJobManager().create(studyId, new Job().setId("myErrorJob").setToolId("samtool").setDescription("description") .setOutDir(outDir).setExecution("echo \"Hello world!\"").setStatus(new Job.JobStatus(Job.JobStatus.ERROR)), null, sessionIdUser); query = new Query() .append(JobDBAdaptor.QueryParams.STATUS_NAME.key(), Arrays.asList(Job.JobStatus.PREPARED, Job.JobStatus.QUEUED, Job.JobStatus.RUNNING, Job.JobStatus.DONE)); QueryResult<Job> unfinishedJobs = catalogManager.getJobManager().get(String.valueOf(studyId), query, null, sessionIdUser); assertEquals(2, unfinishedJobs.getNumResults()); QueryResult<Job> allJobs = catalogManager.getJobManager().get(String.valueOf(studyId), (Query) null, null, sessionIdUser); assertEquals(4, allJobs.getNumResults()); }