int getCurrentRelease(Study study, String userId) throws CatalogException { return catalogManager.getProjectManager().resolveId(StringUtils.split(study.getFqn(), ":")[0], userId).getCurrentRelease(); }
public static void updateProjectMetadata(CatalogManager catalog, StudyConfigurationManager scm, String project, String sessionId) throws CatalogException, StorageEngineException { final Project p = catalog.getProjectManager().get(project, new QueryOptions(QueryOptions.INCLUDE, Arrays.asList( ProjectDBAdaptor.QueryParams.ORGANISM.key(), ProjectDBAdaptor.QueryParams.CURRENT_RELEASE.key())), sessionId) .first(); StorageOperation.updateProjectMetadata(scm, p.getOrganism(), p.getCurrentRelease()); }
public Project getProjectFromQuery(Query query, String sessionId, QueryOptions options) throws CatalogException { if (isValidParam(query, VariantCatalogQueryUtils.PROJECT)) { String project = query.getString(VariantCatalogQueryUtils.PROJECT.key()); return catalogManager.getProjectManager().get(project, options, sessionId).first(); } else { String studyFqn = getAnyStudy(query, sessionId); String project = catalogManager.getStudyManager().getProjectFqn(studyFqn); return catalogManager.getProjectManager().get(new Query(ProjectDBAdaptor.QueryParams.FQN.key(), project), options, sessionId) .first(); } }
public static DataStore getDataStoreByProjectId(CatalogManager catalogManager, String projectStr, File.Bioformat bioformat, String sessionId) throws CatalogException { DataStore dataStore; QueryOptions queryOptions = new QueryOptions(QueryOptions.INCLUDE, Arrays.asList(ProjectDBAdaptor.QueryParams.ID.key(), ProjectDBAdaptor.QueryParams.DATASTORES.key())); Project project = catalogManager.getProjectManager().get(projectStr, queryOptions, sessionId).first(); if (project.getDataStores() != null && project.getDataStores().containsKey(bioformat)) { dataStore = project.getDataStores().get(bioformat); } else { //get default datastore //Must use the UserByStudyId instead of the file owner. String userId = catalogManager.getProjectManager().getOwner(project.getUid()); // Replace possible dots at the userId. Usually a special character in almost all databases. See #532 userId = userId.replace('.', '_'); String databasePrefix = catalogManager.getConfiguration().getDatabasePrefix(); String dbName = buildDatabaseName(databasePrefix, userId, project.getId()); dataStore = new DataStore(StorageEngineFactory.get().getDefaultStorageEngineId(), dbName); } return dataStore; }
@Test public void testCreateProject() throws Exception { String projectAlias = "projectAlias_ASDFASDF"; catalogManager.getProjectManager().create(projectAlias, "Project", "", "", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser); thrown.expect(CatalogDBException.class); thrown.expectMessage(containsString("already exists")); catalogManager.getProjectManager().create(projectAlias, "Project", "", "", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser); }
@Test public void readProject() throws CatalogException { QueryResult<Project> project = catalogManager.getProjectManager().get(p1, null, ownerSessionId); assertEquals(1, project.getNumResults()); project = catalogManager.getProjectManager().get(p1, null, memberSessionId); assertEquals(1, project.getNumResults()); }
@Test public void createStudyFailMoreThanOneProject() throws CatalogException { catalogManager.getProjectManager().incrementRelease(project1, sessionIdUser); catalogManager.getProjectManager().create("1000G2", "Project about some genomes", "", "ACME", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser); // Create a new study without providing the project. It should raise an error because the user owns more than one project thrown.expect(CatalogException.class); thrown.expectMessage("More than one project found"); catalogManager.getStudyManager().create(null, "phasexx", null, "Phase 1", Study.Type.TRIO, null, "Done", null, null, null, null, null, null, null, null, sessionIdUser); }
@Test public void getOwnProjectNoStudies() throws CatalogException { QueryResult<Project> projectQueryResult = catalogManager.getProjectManager().get(project3, null, sessionIdUser3); assertEquals(1, projectQueryResult.getNumResults()); }
@Before public void setUp() throws IOException, CatalogException, URISyntaxException { catalogManager = catalogManagerExternalResource.getCatalogManager(); catalogManager.getUserManager().create("user", "User Name", "mail@ebi.ac.uk", PASSWORD, "", null, Account.FULL, null, null); sessionIdUser = catalogManager.getUserManager().login("user", PASSWORD); project = catalogManager.getProjectManager().create("1000G", "Project about some genomes", "", "ACME", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser).first(); study = catalogManager.getStudyManager().create(project.getId(), "phase1", null, "Phase 1", Study.Type.TRIO, null, "Done", null, null, null, null, null, null, null, null, sessionIdUser).first(); folder = catalogManager.getFileManager().createFolder(study.getId(), Paths.get("data/vcf/").toString(), null, true, null, QueryOptions.empty(), sessionIdUser).first(); Path vcfPath = catalogManagerExternalResource.getOpencgaHome().resolve(VCF_FILE_NAME); Files.copy(this.getClass().getClassLoader().getResourceAsStream("biofiles/" + VCF_FILE_NAME), vcfPath, StandardCopyOption.REPLACE_EXISTING); vcfFileUri = vcfPath.toUri(); Path bamPath = catalogManagerExternalResource.getOpencgaHome().resolve(BAM_FILE_NAME); Files.copy(this.getClass().getClassLoader().getResourceAsStream("biofiles/" + BAM_FILE_NAME), bamPath, StandardCopyOption.REPLACE_EXISTING); bamFileUri = bamPath.toUri(); }
/** * Project methods * *************************** */ @Test public void testGetAllProjects() throws Exception { Query query = new Query(ProjectDBAdaptor.QueryParams.USER_ID.key(), "user"); QueryResult<Project> projects = catalogManager.getProjectManager().get(query, null, sessionIdUser); assertEquals(1, projects.getNumResults()); thrown.expect(CatalogAuthorizationException.class); thrown.expectMessage("Permission denied"); catalogManager.getProjectManager().get(query, null, sessionIdUser2); }
@Test public void readProjectDeny() throws CatalogException { catalogManager.getStudyManager().updateGroup(studyFqn, "@members", new GroupParams(externalUser, GroupParams.Action.REMOVE), ownerSessionId); thrown.expect(CatalogAuthorizationException.class); catalogManager.getProjectManager().get(p1, null, externalSessionId); }
@Before public void setUp() throws IOException, CatalogException { catalogManager = catalogManagerExternalResource.getCatalogManager(); catalogManager.getUserManager().create("user", "User Name", "mail@ebi.ac.uk", PASSWORD, "", null, Account.FULL, null, null); sessionIdUser = catalogManager.getUserManager().login("user", PASSWORD); project = catalogManager.getProjectManager().create("1000G", "Project about some genomes", "", "ACME", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser).first(); study = catalogManager.getStudyManager().create(project.getId(), "phase1", null, "Phase 1", Study.Type.TRIO, null, "Done", null, null, null, null, null, null, null, null, sessionIdUser).first(); folder = catalogManager.getFileManager().createFolder(study.getId(), Paths.get("data/test/folder/").toString(), null, true, null, QueryOptions.empty(), sessionIdUser).first(); directory = catalogManagerExternalResource.getOpencgaHome().resolve("catalog_scan_test_folder").toAbsolutePath(); if (directory.toFile().exists()) { IOUtils.deleteDirectory(directory); } Files.createDirectory(directory); }
@Test public void testModifyProject() throws CatalogException { String newProjectName = "ProjectName " + StringUtils.randomString(10); String projectId = catalogManager.getUserManager().get("user", null, new QueryOptions(), sessionIdUser).first().getProjects().get(0) .getId(); ObjectMap options = new ObjectMap(); options.put("name", newProjectName); ObjectMap attributes = new ObjectMap("myBoolean", true); attributes.put("value", 6); attributes.put("object", new ObjectMap("id", 1234)); options.put("attributes", attributes); catalogManager.getProjectManager().update(projectId, options, null, sessionIdUser); QueryResult<Project> result = catalogManager.getProjectManager().get(projectId, null, sessionIdUser); Project project = result.first(); System.out.println(result); assertEquals(newProjectName, project.getName()); for (Map.Entry<String, Object> entry : attributes.entrySet()) { assertEquals(project.getAttributes().get(entry.getKey()), entry.getValue()); } options = new ObjectMap(); options.put(ProjectDBAdaptor.QueryParams.ID.key(), "newProjectId"); catalogManager.getProjectManager().update(projectId, options, null, sessionIdUser); thrown.expect(CatalogException.class); thrown.expectMessage("not found"); catalogManager.getProjectManager().update(projectId, options, null, sessionIdUser); }
public static File createFile(String path, boolean indexed) throws CatalogException { File file = catalog.getFileManager().create("s1", File.Type.FILE, File.Format.VCF, File.Bioformat.VARIANT, path, null, null, null, 10, -1, null, -1, null, null, true, "", null, sessionId).first(); if (indexed) { int release = catalog.getProjectManager().get("p1", null, sessionId).first().getCurrentRelease(); catalog.getFileManager().updateFileIndexStatus(file, Status.READY, "", release, sessionId); } return file; }
public void setUpCatalogManager(CatalogManager catalogManager) throws IOException, CatalogException { catalogManager.getUserManager().create("user", "User Name", "mail@ebi.ac.uk", PASSWORD, "", null, Account.FULL, null, null); sessionIdUser = catalogManager.getUserManager().login("user", PASSWORD); String projectId = catalogManager.getProjectManager().create("1000G", "Project about some genomes", "", "ACME", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser).first().getId(); catalogManager.getStudyManager().create(projectId, "phase1", null, "Phase 1", Study.Type.TRIO, null, "Done", null, null, null, null, null, null, null, null, sessionIdUser); }
private void setUpCatalogManager(CatalogManager catalogManager) throws IOException, CatalogException { catalogManager.getUserManager().create("user", "User Name", "mail@ebi.ac.uk", PASSWORD, "", null, Account.FULL, null, null); sessionIdUser = catalogManager.getUserManager().login("user", PASSWORD); String projectId = catalogManager.getProjectManager().create("1000G", "Project about some genomes", "", "ACME", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser).first().getId(); catalogManager.getStudyManager().create(projectId, "phase1", null, "Phase 1", Study.Type.TRIO, null, "Done", null, null, null, null, null, null, null, null, sessionIdUser); }
public void setUpCatalogManager(CatalogManager catalogManager) throws IOException, CatalogException { catalogManager.getUserManager().create("user", "User Name", "mail@ebi.ac.uk", PASSWORD, "", null, Account.FULL, null, null); sessionIdUser = catalogManager.getUserManager().login("user", PASSWORD); String projectId = catalogManager.getProjectManager().create("1000G", "Project about some genomes", "", "ACME", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser).first().getId(); catalogManager.getStudyManager().create(projectId, "phase1", null, "Phase 1", Study.Type.TRIO, null, "Done", null, null, null, null, null, null, null, null, sessionIdUser); }
@Test public void getSharedProject() throws CatalogException, IOException { catalogManager.getUserManager().create("dummy", "dummy", "asd@asd.asd", "dummy", "", 50000L, Account.GUEST, QueryOptions.empty(), null); catalogManager.getStudyManager().updateGroup(studyFqn, "@members", new GroupParams("dummy", GroupParams.Action.ADD), sessionIdUser); String token = catalogManager.getUserManager().login("dummy", "dummy"); QueryResult<Project> queryResult = catalogManager.getProjectManager().getSharedProjects("dummy", QueryOptions.empty(), token); assertEquals(1, queryResult.getNumResults()); catalogManager.getStudyManager().updateGroup(studyFqn, "@members", new GroupParams("*", GroupParams.Action.ADD), sessionIdUser); queryResult = catalogManager.getProjectManager().getSharedProjects("*", QueryOptions.empty(), null); assertEquals(1, queryResult.getNumResults()); }
@Test public void testByStepsMultiRelease() throws Exception { List<File> inputFiles = new ArrayList<>(); File transformFile; for (int i = 77; i <= 79; i++) { inputFiles.add(create("platinum/1K.end.platinum-genomes-vcf-NA128" + i + "_S1.genome.vcf.gz")); } for (File inputFile : inputFiles) { transformFile = transformFile(inputFile, new QueryOptions()); loadFile(transformFile, new QueryOptions(), outputId); opencga.getCatalogManager().getProjectManager().incrementRelease(projectAlias, sessionId); } int i = 1; for (File inputFile : inputFiles) { inputFile = opencga.getCatalogManager().getFileManager().get(studyId, inputFile.getId(), null, sessionId).first(); assertEquals(1, inputFile.getRelease()); assertEquals(i, inputFile.getIndex().getRelease()); i++; } variantManager.iterator(new Query(VariantQueryParam.STUDY.key(), studyId), new QueryOptions(), sessionId).forEachRemaining(variant -> { System.out.println("variant = " + variant); }); }
public void setUpCatalogManager(CatalogManager catalogManager) throws IOException, CatalogException { catalogManager.getUserManager().create("user", "User Name", "mail@ebi.ac.uk", PASSWORD, "", null, Account.FULL, null, null); catalogManager.getUserManager().create("user2", "User2 Name", "mail2@ebi.ac.uk", PASSWORD, "", null, Account.FULL, null, null); catalogManager.getUserManager().create("user3", "User3 Name", "user.2@e.mail", PASSWORD, "ACME", null, Account.FULL, null, null); sessionIdUser = catalogManager.getUserManager().login("user", PASSWORD); sessionIdUser2 = catalogManager.getUserManager().login("user2", PASSWORD); sessionIdUser3 = catalogManager.getUserManager().login("user3", PASSWORD); project1 = catalogManager.getProjectManager().create("1000G", "Project about some genomes", "", "ACME", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser).first().getId(); project2 = catalogManager.getProjectManager().create("pmp", "Project Management Project", "life art intelligent system", "myorg", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser2).first().getId(); project3 = catalogManager.getProjectManager().create("p1", "project 1", "", "", "Homo sapiens", null, null, "GRCh38", new QueryOptions(), sessionIdUser3).first().getId(); studyId = catalogManager.getStudyManager().create(project1, "phase1", null, "Phase 1", Study.Type.TRIO, null, "Done", null, null, null, null, null, null, null, null, sessionIdUser).first().getFqn(); studyId2 = catalogManager.getStudyManager().create(project1, "phase3", null, "Phase 3", Study.Type.CASE_CONTROL, null, "d", null, null, null, null, null, null, null, null, sessionIdUser).first().getFqn(); studyId3 = catalogManager.getStudyManager().create(project2, "s1", null, "Study 1", Study.Type.CONTROL_SET, null, "", null, null, null, null, null, null, null, null, sessionIdUser2).first().getFqn(); }