Skip to content

Commit

Permalink
Merge pull request #2533 from opencb/TASK-7213
Browse files Browse the repository at this point in the history
TASK-7213 - Port Patch 2.0.2 -> 2.4.0
  • Loading branch information
juanfeSanahuja authored Dec 16, 2024
2 parents b4b431c + 317e356 commit e2b0541
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1757,8 +1757,7 @@ public static DataStore defaultDataStore(CatalogManager catalogManager, Project
return defaultDataStore(catalogManager.getConfiguration().getDatabasePrefix(), project.getFqn());
}

public static DataStore defaultDataStore(String databasePrefix, String projectFqnStr)
throws CatalogException {
public static DataStore defaultDataStore(String databasePrefix, String projectFqnStr) {
CatalogFqn projectFqn = CatalogFqn.extractFqnFromProjectFqn(projectFqnStr);

String dbName = buildDatabaseName(databasePrefix, projectFqn.getOrganizationId(), projectFqn.getProjectId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ private void runMigrationToV3() throws Exception {
setCatalogDatabaseCredentials(options, options.commonOptions);

OrganizationMigration organizationMigration = new OrganizationMigration(configuration, options.commonOptions.adminPassword,
options.user);
options.user, options.organizationId, Paths.get(appHome));
organizationMigration.execute();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ public class OrganizationMigrationCommandOptions extends AdminCliOptionsParser.C
@Parameter(names = {"--user"}, description = "User whose data is going to be migrated. If more than one user of type FULL contains"
+ " projects and studies, only the one provided will keep the data and will be fully migrated.")
public String user;

@Parameter(names = {"--organization-id"}, description = "Optional parameter to specify how the new organization will be named." +
" By default, if not provided, the organization id will match the user id that is currently owning the data.")
public String organizationId;
}

@Parameters(commandNames = {"summary"}, commandDescription = "Obtain migrations status summary")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@
import org.opencb.opencga.catalog.migration.MigrationTool;
import org.opencb.opencga.core.config.Configuration;

import java.nio.file.Path;

@Migration(id = "add_organizations", description = "Add new Organization layer #TASK-4389", version = "3.0.0",
language = Migration.MigrationLanguage.JAVA, domain = Migration.MigrationDomain.CATALOG, date = 20231212,
language = Migration.MigrationLanguage.JAVA, domain = Migration.MigrationDomain.CATALOG, date = 20231212, manual = true,
deprecatedSince = "3.1.0")

public class OrganizationMigration extends MigrationTool {

public OrganizationMigration(Configuration configuration, String adminPassword, String userId) {
public OrganizationMigration(Configuration configuration, String adminPassword, String userId, String organizationId, Path appHome) {
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,17 @@ protected final void migrateCollection(MongoCollection<Document> inputCollection
.cursor()) {
while (it.hasNext()) {
Document document = it.next();
migrateFunc.accept(document, list);
try {
migrateFunc.accept(document, list);
} catch (Exception e) {
try {
logger.error("Error migrating document: {}", document.toJson());
} catch (Exception e1) {
e.addSuppressed(e1);
logger.error("Error migrating document: {}", e.getMessage());
}
throw e;
}

if (list.size() >= batchSize) {
count += list.size();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ public String toString() {
final StringBuilder sb = new StringBuilder("DataStore{");
sb.append("storageEngine='").append(storageEngine).append('\'');
sb.append(", dbName='").append(dbName).append('\'');
sb.append(", options=").append(options);
sb.append('}');
return sb.toString();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import org.opencb.biodata.models.variant.VariantFileMetadata;
import org.opencb.commons.datastore.core.ObjectMap;
import org.opencb.commons.datastore.core.QueryOptions;
import org.opencb.opencga.core.common.TimeUtils;
import org.opencb.opencga.core.tools.ToolParams;
import org.opencb.opencga.storage.core.exceptions.StorageEngineException;
import org.opencb.opencga.storage.core.metadata.VariantStorageMetadataManager;
Expand Down Expand Up @@ -151,6 +152,10 @@ private void rename(String currentStudyName, String newStudyName) throws Storage
int studyId = mm.getStudyId(currentStudyName);
mm.updateStudyMetadata(studyId, studyMetadata -> {
studyMetadata.setName(newStudyName);
studyMetadata.getAttributes().put("rename_" + TimeUtils.getTime(), new ObjectMap()
.append("newName", newStudyName)
.append("oldName", currentStudyName)
);
});
}
}
Expand Down

0 comments on commit e2b0541

Please sign in to comment.