default QueryResult<Job> setStatus(long jobId, String status) throws CatalogDBException { return update(jobId, new ObjectMap(QueryParams.STATUS_NAME.key(), status), QueryOptions.empty()); }
default QueryResult<Long> setStatus(Query query, String status) throws CatalogDBException { return update(query, new ObjectMap(QueryParams.STATUS_NAME.key(), status), QueryOptions.empty()); }
void cleanPrivateJobInformation(Job job) { // Remove the session id from the job attributes job.getAttributes().remove(Job.OPENCGA_TMP_DIR); job.getAttributes().remove(Job.OPENCGA_OUTPUT_DIR); job.getAttributes().remove(Job.OPENCGA_STUDY); ObjectMap params = new ObjectMap(JobDBAdaptor.QueryParams.ATTRIBUTES.key(), job.getAttributes()); try { dbAdaptorFactory.getCatalogJobDBAdaptor().update(job.getUid(), params, QueryOptions.empty()); } catch (CatalogException e) { logger.error("Could not remove session id from attributes of job {}. ", job.getUid(), e); } }
void closeSessionId(Job job) { // Remove the session id from the job attributes job.getAttributes().remove("sessionId"); ObjectMap params = new ObjectMap(JobDBAdaptor.QueryParams.ATTRIBUTES.key(), job.getAttributes()); try { jobDBAdaptor.update(job.getUid(), params, QueryOptions.empty()); } catch (CatalogException e) { logger.error("Could not remove session id from attributes of job {}. ", job.getUid(), e); } } }
updateObjectMap.put(JobDBAdaptor.QueryParams.RESOURCE_MANAGER_ATTRIBUTES.key(), job.getResourceManagerAttributes()); QueryResult<Job> update = jobDBAdaptor.update(job.getUid(), updateObjectMap, QueryOptions.empty()); if (update.getNumResults() == 1) { job = update.first();
.append(JobDBAdaptor.QueryParams.RESOURCE_MANAGER_ATTRIBUTES.key(), job.getResourceManagerAttributes()); QueryResult<Job> update = jobDBAdaptor.update(job.getUid(), params, QueryOptions.empty()); if (update.getNumResults() == 1) { job = update.first();
void setNewStatus(long jobId, String status, String message) throws CatalogDBException { ObjectMap parameters = new ObjectMap(); parameters.putIfNotNull(JobDBAdaptor.QueryParams.STATUS_NAME.key(), status); parameters.putIfNotNull(JobDBAdaptor.QueryParams.STATUS_MSG.key(), message); dbAdaptorFactory.getCatalogJobDBAdaptor().update(jobId, parameters, QueryOptions.empty()); }
jobDBAdaptor.update(job.getUid(), parameters, QueryOptions.empty()); } catch (CatalogException e) { logger.error("Error updating job {} with {}", job.getUuid(), parameters.toJson(), e);
.append(JobDBAdaptor.QueryParams.ATTRIBUTES.key(), attributes) .append(JobDBAdaptor.QueryParams.INPUT.key(), inputFiles); jobDBAdaptor.update(job.getUid(), params, QueryOptions.empty()); .append(JobDBAdaptor.QueryParams.ATTRIBUTES.key(), attributes) .append(JobDBAdaptor.QueryParams.OUTPUT.key(), outputFiles); jobDBAdaptor.update(job.getUid(), params, QueryOptions.empty()); .append(JobDBAdaptor.QueryParams.ATTRIBUTES.key(), attributes) .append(JobDBAdaptor.QueryParams.OUT_DIR.key(), -1L); jobDBAdaptor.update(job.getUid(), params, QueryOptions.empty());
public QueryResult<Job> visit(String studyStr, String jobId, String sessionId) throws CatalogException { MyResource resource = getUid(jobId, studyStr, sessionId); authorizationManager.checkJobPermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), JobAclEntry.JobPermissions.VIEW); ObjectMap params = new ObjectMap(JobDBAdaptor.QueryParams.VISITED.key(), true); return jobDBAdaptor.update(resource.getResource().getUid(), params, QueryOptions.empty()); }
@Override public QueryResult<Job> update(String studyStr, String entryStr, ObjectMap parameters, QueryOptions options, String sessionId) throws CatalogException { ParamUtils.checkObj(parameters, "parameters"); options = ParamUtils.defaultObject(options, QueryOptions::new); MyResource resource = getUid(entryStr, studyStr, sessionId); authorizationManager.checkJobPermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), JobAclEntry.JobPermissions.UPDATE); QueryResult<Job> queryResult = jobDBAdaptor.update(resource.getResource().getUid(), parameters, QueryOptions.empty()); auditManager.recordUpdate(AuditRecord.Resource.job, resource.getResource().getUid(), resource.getUser(), parameters, null, null); return queryResult; }
@Test public void SetVisitedJob() throws CatalogException { long studyId = user3.getProjects().get(0).getStudies().get(0).getUid(); Job jobBefore = catalogJobDBAdaptor.insert(new Job("name", user3.getId(), "", "", "", new File().setUid(4), Collections.emptyList(), 1), studyId, null).first(); long jobId = jobBefore.getUid(); assertTrue(!jobBefore.isVisited()); ObjectMap params = new ObjectMap(JobDBAdaptor.QueryParams.VISITED.key(), true); catalogJobDBAdaptor.update(jobBefore.getUid(), params, QueryOptions.empty()); Job jobAfter = catalogJobDBAdaptor.get(jobId, null).first(); assertTrue(jobAfter.isVisited()); }
.append(JobDBAdaptor.QueryParams.STATUS_NAME.key(), Status.DELETED) .append(JobDBAdaptor.QueryParams.NAME.key(), job.getName() + suffixName); QueryResult<Long> update = jobDBAdaptor.update(updateQuery, updateParams, QueryOptions.empty()); if (update.first() > 0) { numModified += 1;
@Test public void updateInputAndOutputFiles() throws Exception { Job job = new Job() .setOutDir(new File().setUid(5)) .setStatus(new Job.JobStatus()); long studyId = user3.getProjects().get(0).getStudies().get(0).getUid(); job.setName("jobName1"); QueryResult<Job> insert = catalogJobDBAdaptor.insert(job, studyId, null); List<File> fileInput = Arrays.asList( new File().setUid(5L).setName("file1").setStatus(new File.FileStatus()), new File().setUid(6L).setName("file2").setStatus(new File.FileStatus()), new File().setUid(7L).setName("file3").setStatus(new File.FileStatus()) ); List<File> fileOutput = Arrays.asList( new File().setUid(15L).setName("file1").setStatus(new File.FileStatus()), new File().setUid(16L).setName("file2").setStatus(new File.FileStatus()), new File().setUid(17L).setName("file3").setStatus(new File.FileStatus()) ); ObjectMap params = new ObjectMap() .append(JobDBAdaptor.QueryParams.INPUT.key(), fileInput) .append(JobDBAdaptor.QueryParams.OUTPUT.key(), fileOutput); QueryResult<Job> update = catalogJobDBAdaptor.update(insert.first().getUid(), params, QueryOptions.empty()); assertEquals(3, update.first().getInput().size()); assertEquals(3, update.first().getOutput().size()); assertTrue(Arrays.asList(5L, 6L, 7L).containsAll(update.first().getInput().stream().map(File::getUid).collect(Collectors.toList()))); assertTrue(Arrays.asList(15L, 16L, 17L) .containsAll(update.first().getOutput().stream().map(File::getUid).collect(Collectors.toList()))); }
public void setStatus(String studyStr, String id, String status, String message, String sessionId) throws CatalogException { ParamUtils.checkParameter(sessionId, "sessionId"); MyResource resource = getUid(id, studyStr, sessionId); authorizationManager.checkJobPermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), JobAclEntry.JobPermissions.UPDATE); if (status != null && !Job.JobStatus.isValid(status)) { throw new CatalogException("The status " + status + " is not valid job status."); } ObjectMap parameters = new ObjectMap(); parameters.putIfNotNull(JobDBAdaptor.QueryParams.STATUS_NAME.key(), status); parameters.putIfNotNull(JobDBAdaptor.QueryParams.STATUS_MSG.key(), message); jobDBAdaptor.update(resource.getResource().getUid(), parameters, QueryOptions.empty()); auditManager.recordUpdate(AuditRecord.Resource.job, resource.getResource().getUid(), resource.getUser(), parameters, null, null); }