protected String getCatalogOutdirId(String studyStr, ObjectMap options, String sessionId) throws CatalogException { String catalogOutDirId; if (isCatalogPathDefined(options)) { String catalogOutDirIdStr = options.getString(CATALOG_PATH); catalogOutDirId = catalogManager.getFileManager() .getUid(catalogOutDirIdStr, studyStr, sessionId).getResource().getId(); } else { catalogOutDirId = null; } return catalogOutDirId; }
public List<QueryResult<FileAclEntry>> getAcls(String studyStr, List<String> fileList, String member, boolean silent, String sessionId) throws CatalogException { List<QueryResult<FileAclEntry>> fileAclList = new ArrayList<>(fileList.size()); for (String file : fileList) { try { MyResource<File> resource = getUid(file, studyStr, sessionId); QueryResult<FileAclEntry> allFileAcls; if (StringUtils.isNotEmpty(member)) { allFileAcls = authorizationManager.getFileAcl(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), member); } else { allFileAcls = authorizationManager.getAllFileAcls(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), true); } allFileAcls.setId(file); fileAclList.add(allFileAcls); } catch (CatalogException e) { if (silent) { fileAclList.add(new QueryResult<>(file, 0, 0, 0, "", e.toString(), new ArrayList<>(0))); } else { throw e; } } } return fileAclList; }
MyResource<File> resource = getUid(fileIdStr, studyStr, sessionId);
public DataInputStream download(String studyStr, String fileStr, int start, int limit, QueryOptions options, String sessionId) throws CatalogException { MyResource<File> resource = getUid(fileStr, studyStr, sessionId); authorizationManager.checkFilePermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), FileAclEntry.FilePermissions.DOWNLOAD); URI fileUri = getUri(resource.getResource()); return catalogIOManagerFactory.get(fileUri).getFileObject(fileUri, start, limit); }
@Deprecated public void setModificationDate(String studyStr, String fileId, String date, String sessionId) throws CatalogException { MyResource<File> resource = getUid(fileId, studyStr, sessionId); String userId = resource.getUser(); long studyId = resource.getStudy().getUid(); authorizationManager.checkFilePermission(studyId, resource.getResource().getUid(), userId, FileAclEntry.FilePermissions.WRITE); ObjectMap parameters = new ObjectMap(FileDBAdaptor.QueryParams.MODIFICATION_DATE.key(), date); fileDBAdaptor.update(resource.getResource().getUid(), parameters, QueryOptions.empty()); auditManager.recordUpdate(AuditRecord.Resource.file, resource.getResource().getUid(), userId, parameters, null, null); }
public QueryResult<File> rename(String studyStr, String fileStr, String newName, String sessionId) throws CatalogException { ParamUtils.checkFileName(newName, "name"); MyResource<File> resource = getUid(fileStr, studyStr, sessionId); String userId = resource.getUser(); Study study = resource.getStudy();
public DataInputStream grep(String studyStr, String fileStr, String pattern, QueryOptions options, String sessionId) throws CatalogException { MyResource<File> resource = getUid(fileStr, studyStr, sessionId); authorizationManager.checkFilePermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), FileAclEntry.FilePermissions.VIEW); URI fileUri = getUri(resource.getResource()); boolean ignoreCase = options.getBoolean("ignoreCase"); boolean multi = options.getBoolean("multi"); return catalogIOManagerFactory.get(fileUri).getGrepFileObject(fileUri, pattern, ignoreCase, multi); }
@Test public void getFileIdByString() throws CatalogException { Study.StudyAclParams aclParams = new Study.StudyAclParams("", AclParams.Action.ADD, "analyst"); catalogManager.getStudyManager().updateAcl(Arrays.asList(studyFqn), "user2", aclParams, sessionIdUser).get(0); File file = catalogManager.getFileManager().create(studyFqn, File.Type.FILE, File.Format.UNKNOWN, File.Bioformat.NONE, "data/test/folder/file.txt", null, "My description", null, 0, -1, null, (long) -1, null, null, true, null, null, sessionIdUser2).first(); long fileId = catalogManager.getFileManager().getUid(file.getPath(), studyFqn, sessionIdUser).getResource().getUid(); assertEquals(file.getUid(), fileId); fileId = catalogManager.getFileManager().getUid(file.getPath(), studyFqn, sessionIdUser).getResource().getUid(); assertEquals(file.getUid(), fileId); fileId = catalogManager.getFileManager().getUid("/", studyFqn, sessionIdUser).getResource().getUid(); System.out.println(fileId); }
public QueryResult<File> getFilesFromFolder(String folderStr, String studyStr, QueryOptions options, String sessionId) throws CatalogException { ParamUtils.checkObj(folderStr, "folder"); MyResource<File> resource = getUid(folderStr, studyStr, sessionId); options = ParamUtils.defaultObject(options, QueryOptions::new); if (!resource.getResource().getType().equals(File.Type.DIRECTORY)) { throw new CatalogDBException("File {path:'" + resource.getResource().getPath() + "'} is not a folder."); } Query query = new Query(FileDBAdaptor.QueryParams.DIRECTORY.key(), resource.getResource().getPath()); return get(studyStr, query, options, sessionId); }
options = ParamUtils.defaultObject(options, QueryOptions::new); MyResource<File> resource = getUid(entryStr, studyStr, sessionId);
public void setUri(String studyStr, String fileId, String uri, String sessionId) throws CatalogException { MyResource<File> resource = getUid(fileId, studyStr, sessionId); String userId = resource.getUser(); long studyId = resource.getStudy().getUid(); authorizationManager.checkFilePermission(studyId, resource.getResource().getUid(), userId, FileAclEntry.FilePermissions.WRITE); ObjectMap parameters = new ObjectMap(FileDBAdaptor.QueryParams.URI.key(), uri); fileDBAdaptor.update(resource.getResource().getUid(), parameters, QueryOptions.empty()); auditManager.recordUpdate(AuditRecord.Resource.file, resource.getResource().getUid(), userId, parameters, null, null); }
@Test public void testGetFileParents1() throws CatalogException { long fileId; QueryResult<File> fileParents; fileId = catalogManager.getFileManager().getUid("data/test/folder/", studyFqn, sessionIdUser).getResource().getUid(); fileParents = catalogManager.getFileManager().getParents(fileId, null, sessionIdUser); assertEquals(4, fileParents.getNumResults()); assertEquals("", fileParents.getResult().get(0).getPath()); assertEquals("data/", fileParents.getResult().get(1).getPath()); assertEquals("data/test/", fileParents.getResult().get(2).getPath()); assertEquals("data/test/folder/", fileParents.getResult().get(3).getPath()); }
public void setDiskUsage(String studyStr, String fileId, long size, String sessionId) throws CatalogException { MyResource<File> resource = getUid(fileId, studyStr, sessionId); authorizationManager.checkFilePermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), FileAclEntry.FilePermissions.WRITE); ObjectMap parameters = new ObjectMap(FileDBAdaptor.QueryParams.SIZE.key(), size); fileDBAdaptor.update(resource.getResource().getUid(), parameters, QueryOptions.empty()); auditManager.recordUpdate(AuditRecord.Resource.file, resource.getResource().getUid(), resource.getUser(), parameters, null, null); }
public void setFileIndex(String studyStr, String fileId, FileIndex index, String sessionId) throws CatalogException { MyResource<File> resource = getUid(fileId, studyStr, sessionId); authorizationManager.checkFilePermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), FileAclEntry.FilePermissions.WRITE); ObjectMap parameters = new ObjectMap(FileDBAdaptor.QueryParams.INDEX.key(), index); fileDBAdaptor.update(resource.getResource().getUid(), parameters, QueryOptions.empty()); auditManager.recordUpdate(AuditRecord.Resource.file, resource.getResource().getUid(), resource.getUser(), parameters, null, null); }
@Test public void testGetFileParents2() throws CatalogException { long fileId; QueryResult<File> fileParents; fileId = catalogManager.getFileManager().getUid("data/test/folder/test_1K.txt.gz", studyFqn, sessionIdUser) .getResource().getUid(); fileParents = catalogManager.getFileManager().getParents(fileId, null, sessionIdUser); assertEquals(5, fileParents.getNumResults()); assertEquals("", fileParents.getResult().get(0).getPath()); assertEquals("data/", fileParents.getResult().get(1).getPath()); assertEquals("data/test/", fileParents.getResult().get(2).getPath()); assertEquals("data/test/folder/", fileParents.getResult().get(3).getPath()); assertEquals("data/test/folder/test_1K.txt.gz", fileParents.getResult().get(4).getPath()); }
public void setStatus(String studyStr, String fileId, String status, String message, String sessionId) throws CatalogException { MyResource<File> resource = getUid(fileId, studyStr, sessionId); String userId = resource.getUser(); long fileUid = resource.getResource().getUid(); authorizationManager.checkFilePermission(resource.getStudy().getUid(), fileUid, userId, FileAclEntry.FilePermissions.WRITE); if (status != null && !File.FileStatus.isValid(status)) { throw new CatalogException("The status " + status + " is not valid file status."); } ObjectMap parameters = new ObjectMap(); parameters.putIfNotNull(FileDBAdaptor.QueryParams.STATUS_NAME.key(), status); parameters.putIfNotNull(FileDBAdaptor.QueryParams.STATUS_MSG.key(), message); fileDBAdaptor.update(fileUid, parameters, QueryOptions.empty()); auditManager.recordUpdate(AuditRecord.Resource.file, fileUid, userId, parameters, null, null); }
for (LinkedHashMap<String, Object> interpretationMap : interpretationList) { LinkedHashMap<String, Object> fileMap = (LinkedHashMap<String, Object>) interpretationMap.get("file"); MyResource<File> fileResource = catalogManager.getFileManager().getUid(String.valueOf(fileMap.get("path")), studyStr, sessionId); fileMap.put(FileDBAdaptor.QueryParams.UID.key(), fileResource.getResource().getUid());
@Test public void testGetFileParents3() throws CatalogException { long fileId; QueryResult<File> fileParents; fileId = catalogManager.getFileManager().getUid("data/test/", studyFqn, sessionIdUser).getResource().getUid(); fileParents = catalogManager.getFileManager().getParents(fileId, new QueryOptions("include", "projects.studies.files.path," + "projects.studies.files.id"), sessionIdUser); assertEquals(3, fileParents.getNumResults()); assertEquals("", fileParents.getResult().get(0).getPath()); assertEquals("data/", fileParents.getResult().get(1).getPath()); assertEquals("data/test/", fileParents.getResult().get(2).getPath()); fileParents.getResult().forEach(f -> { assertNull(f.getName()); assertNotNull(f.getPath()); assertTrue(f.getUid() != 0); }); }
public QueryResult<File> unlink(@Nullable String studyStr, String fileIdStr, String sessionId) throws CatalogException, IOException { ParamUtils.checkParameter(fileIdStr, "File"); MyResource<File> resource = catalogManager.getFileManager().getUid(fileIdStr, studyStr, sessionId); String userId = resource.getUser(); long fileId = resource.getResource().getUid();
.getUid(query.getString(ClinicalAnalysisDBAdaptor.QueryParams.GERMLINE.key()), study.getFqn(), sessionId); query.put(ClinicalAnalysisDBAdaptor.QueryParams.GERMLINE_UID.key(), resource.getResource().getUid()); query.remove(ClinicalAnalysisDBAdaptor.QueryParams.GERMLINE.key()); .getUid(query.getString(ClinicalAnalysisDBAdaptor.QueryParams.SOMATIC.key()), study.getFqn(), sessionId); query.put(ClinicalAnalysisDBAdaptor.QueryParams.SOMATIC_UID.key(), resource.getResource().getUid()); query.remove(ClinicalAnalysisDBAdaptor.QueryParams.SOMATIC.key());