public QueryResult<Job> get(long jobId, QueryOptions options, String sessionId) throws CatalogException { return get(null, String.valueOf(jobId), options, sessionId); }
@Deprecated public QueryResult<Job> create(long studyId, String name, String toolName, String description, String executor, Map<String, String> params, String commandLine, URI tmpOutDirUri, long outDirId, List<File> inputFiles, List<File> outputFiles, Map<String, Object> attributes, Map<String, Object> resourceManagerAttributes, Job.JobStatus status, long startTime, long endTime, QueryOptions options, String sessionId) throws CatalogException { Job job = new Job(-1, null, name, "", toolName, null, "", description, startTime, endTime, executor, "", commandLine, false, status, -1, new File().setUid(outDirId), inputFiles, outputFiles, Collections.emptyList(), params, -1, attributes, resourceManagerAttributes); return create(String.valueOf(studyId), job, options, sessionId); }
MyResources<Job> resource = getUids(jobList, studyStr, sessionId); authorizationManager.checkCanAssignOrSeePermissions(resource.getStudy().getUid(), resource.getUser()); checkMembers(resource.getStudy().getUid(), members);
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);
@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 job = jobManager.get(null, query, QueryOptions.empty(), sessionId).first(); long studyUid = jobManager.getStudyId(jobId);
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"); } }
study = catalogManager.getStudyManager().resolveId(studyStr, userId); fixQueryObject(study, query, sessionId); finalQuery.append(JobDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); checkJobCanBeDeleted(job);
@Override public DBIterator<Job> iterator(String studyStr, Query query, QueryOptions options, String sessionId) throws CatalogException { query = ParamUtils.defaultObject(query, Query::new); options = ParamUtils.defaultObject(options, QueryOptions::new); String userId = userManager.getUserId(sessionId); Study study = catalogManager.getStudyManager().resolveId(studyStr, userId); query.put(JobDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); fixQueryObject(study, query, sessionId); return jobDBAdaptor.iterator(query, options, userId); }
projectManager = new ProjectManager(authorizationManager, auditManager, this, catalogDBAdaptorFactory, catalogIOManagerFactory, configuration); jobManager = new JobManager(authorizationManager, auditManager, this, catalogDBAdaptorFactory, catalogIOManagerFactory, this.configuration); sampleManager = new SampleManager(authorizationManager, auditManager, this, catalogDBAdaptorFactory,
/** * 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()); }
@Override public QueryResult<Job> count(String studyStr, Query query, String sessionId) throws CatalogException { query = ParamUtils.defaultObject(query, Query::new); String userId = userManager.getUserId(sessionId); Study study = catalogManager.getStudyManager().resolveId(studyStr, userId); fixQueryObject(study, query, sessionId); query.append(JobDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); QueryResult<Long> queryResultAux = jobDBAdaptor.count(query, userId, StudyAclEntry.StudyPermissions.VIEW_JOBS); return new QueryResult<>("count", queryResultAux.getDbTime(), 0, queryResultAux.first(), queryResultAux.getWarningMsg(), queryResultAux.getErrorMsg(), Collections.emptyList()); }
public List<QueryResult<Job>> get(List<String> jobIds, QueryOptions options, boolean silent, String sessionId) throws CatalogException { return get(null, jobIds, new Query(), options, silent, sessionId); }
public QueryResult<Job> queue(String studyStr, String jobName, String description, String executable, Job.Type type, Map<String, String> params, List<File> input, List<File> output, File outDir, Map<String, Object> attributes, String token) throws CatalogException { Job job = new Job(jobName, null, executable, type, input, output, outDir, params, -1) .setDescription(description) .setToolId("variant_index") .setAttributes(attributes); return create(studyStr, job, QueryOptions.empty(), token); }
@Override public QueryResult<Job> get(String studyStr, Query query, QueryOptions options, String sessionId) throws CatalogException { query = ParamUtils.defaultObject(query, Query::new); options = ParamUtils.defaultObject(options, QueryOptions::new); String userId = userManager.getUserId(sessionId); Study study = catalogManager.getStudyManager().resolveId(studyStr, userId); query.put(JobDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); fixQueryObject(study, query, sessionId); QueryResult<Job> jobQueryResult = jobDBAdaptor.get(query, options, userId); if (jobQueryResult.getNumResults() == 0 && query.containsKey(JobDBAdaptor.QueryParams.UID.key())) { List<Long> idList = query.getAsLongList(JobDBAdaptor.QueryParams.UID.key()); for (Long myId : idList) { authorizationManager.checkJobPermission(study.getUid(), myId, userId, JobAclEntry.JobPermissions.VIEW); } } return jobQueryResult; }
return catalogManager.getJobManager().get(job.getUid(), new QueryOptions(), sessionId);
public QueryResult<Job> create(String studyStr, String jobName, String description, String toolId, String execution, String outDir, Map<String, String> params, String sessionId) throws CatalogException { ParamUtils.checkObj(toolId, "toolId"); if (StringUtils.isEmpty(jobName)) { jobName = toolId + "_" + TimeUtils.getTime(); } ObjectMap attributes = new ObjectMap(); attributes.putIfNotNull(Job.OPENCGA_OUTPUT_DIR, outDir); attributes.putIfNotNull(Job.OPENCGA_STUDY, studyStr); Job job = new Job(jobName, toolId, execution, Job.Type.ANALYSIS, description, params, attributes); return create(studyStr, job, QueryOptions.empty(), sessionId); }
throw new AnalysisExecutionException(e.getCause()); jobQueryResult = catalogManager.getJobManager().get(job.getUid(), null, sessionId);
@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 }
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()))); }