diff options
author | Adithya Chakilam <achakila@codeaurora.org> | 2021-08-30 19:52:37 -0500 |
---|---|---|
committer | Adithya Chakilam <achakila@codeaurora.org> | 2021-08-30 19:54:56 -0500 |
commit | cc190c7cd9ef73dcdfa336076dc4f4c2db08cebc (patch) | |
tree | 85195d3c6320cbd699e03e3b7cbdf88b7551ff90 | |
parent | 35c1e64d31d811c6bf25980a93013b6016e1c74a (diff) | |
parent | c9322bf319e6376e3ef27c87a75e189bec3dedd6 (diff) |
Merge branch 'stable-2.15' into stable-2.16
* stable-2.15:
Introduce flag '--migrate-draft-to'
Change-Id: Idb991811f6ad26bfe07fa6008285ec1c294f4968
-rw-r--r-- | java/com/google/gerrit/pgm/Init.java | 14 | ||||
-rw-r--r-- | java/com/google/gerrit/pgm/init/BaseInit.java | 11 | ||||
-rw-r--r-- | java/com/google/gerrit/pgm/init/api/BUILD | 1 | ||||
-rw-r--r-- | java/com/google/gerrit/pgm/init/api/InitFlags.java | 4 | ||||
-rw-r--r-- | java/com/google/gerrit/server/schema/Schema_159.java | 10 | ||||
-rw-r--r-- | java/com/google/gerrit/server/schema/UpdateUI.java | 4 | ||||
-rw-r--r-- | java/com/google/gerrit/testing/TestUpdateUI.java | 6 |
7 files changed, 48 insertions, 2 deletions
diff --git a/java/com/google/gerrit/pgm/Init.java b/java/com/google/gerrit/pgm/Init.java index 4ea31da540..19ace426e4 100644 --- a/java/com/google/gerrit/pgm/Init.java +++ b/java/com/google/gerrit/pgm/Init.java @@ -31,6 +31,7 @@ import com.google.gerrit.pgm.util.ErrorLogFile; import com.google.gerrit.server.config.GerritServerConfigModule; import com.google.gerrit.server.config.SitePath; import com.google.gerrit.server.ioutil.HostPlatform; +import com.google.gerrit.server.schema.Schema_159.DraftWorkflowMigrationStrategy; import com.google.gerrit.server.securestore.SecureStoreClassName; import com.google.inject.AbstractModule; import com.google.inject.Guice; @@ -88,6 +89,14 @@ public class Init extends BaseInit { @Option(name = "--skip-download", usage = "Don't download given library") private List<String> skippedDownloads; + @Option( + name = "--migrate-draft-to", + usage = + "Strategy to migrate draft changes during Schema 159 migration(private or work_in_progress)." + + " Applicable only when migrating from a version lower than 2.15") + private DraftWorkflowMigrationStrategy draftMigrationStrategy = + DraftWorkflowMigrationStrategy.WORK_IN_PROGRESS; + @Inject Browser browser; public Init() { @@ -194,6 +203,11 @@ public class Init extends BaseInit { } @Override + protected DraftWorkflowMigrationStrategy getDraftMigrationStrategy() { + return draftMigrationStrategy; + } + + @Override protected String getSecureStoreLib() { return secureStoreLib; } diff --git a/java/com/google/gerrit/pgm/init/BaseInit.java b/java/com/google/gerrit/pgm/init/BaseInit.java index 234abfdded..c5bcabfd20 100644 --- a/java/com/google/gerrit/pgm/init/BaseInit.java +++ b/java/com/google/gerrit/pgm/init/BaseInit.java @@ -44,6 +44,7 @@ import com.google.gerrit.server.index.IndexModule; import com.google.gerrit.server.plugins.JarScanner; import com.google.gerrit.server.schema.ReviewDbFactory; import com.google.gerrit.server.schema.SchemaUpdater; +import com.google.gerrit.server.schema.Schema_159.DraftWorkflowMigrationStrategy; import com.google.gerrit.server.schema.UpdateUI; import com.google.gerrit.server.securestore.SecureStore; import com.google.gerrit.server.securestore.SecureStoreClassName; @@ -130,6 +131,7 @@ public class BaseInit extends SiteProgram { init.flags.skipPlugins = skipPlugins(); init.flags.deleteCaches = getDeleteCaches(); init.flags.isNew = init.site.isNew; + init.flags.draftMigrationStrategy = getDraftMigrationStrategy(); final SiteRun run; try { @@ -423,6 +425,11 @@ public class BaseInit extends SiteProgram { } } } + + @Override + public DraftWorkflowMigrationStrategy getDraftMigrationStrategy() { + return flags.draftMigrationStrategy; + } }); if (!pruneList.isEmpty()) { @@ -529,4 +536,8 @@ public class BaseInit extends SiteProgram { protected boolean getDeleteCaches() { return false; } + + protected DraftWorkflowMigrationStrategy getDraftMigrationStrategy() { + return DraftWorkflowMigrationStrategy.WORK_IN_PROGRESS; + } } diff --git a/java/com/google/gerrit/pgm/init/api/BUILD b/java/com/google/gerrit/pgm/init/api/BUILD index aa989907d6..b56be3ddcd 100644 --- a/java/com/google/gerrit/pgm/init/api/BUILD +++ b/java/com/google/gerrit/pgm/init/api/BUILD @@ -9,6 +9,7 @@ java_library( "//java/com/google/gerrit/common:server", "//java/com/google/gerrit/reviewdb:server", "//java/com/google/gerrit/server", + "//java/com/google/gerrit/server/schema", "//lib:guava", "//lib:gwtorm", "//lib/flogger:api", diff --git a/java/com/google/gerrit/pgm/init/api/InitFlags.java b/java/com/google/gerrit/pgm/init/api/InitFlags.java index 7bb1366bb0..2b8e574590 100644 --- a/java/com/google/gerrit/pgm/init/api/InitFlags.java +++ b/java/com/google/gerrit/pgm/init/api/InitFlags.java @@ -16,6 +16,7 @@ package com.google.gerrit.pgm.init.api; import com.google.common.annotations.VisibleForTesting; import com.google.gerrit.server.config.SitePaths; +import com.google.gerrit.server.schema.Schema_159.DraftWorkflowMigrationStrategy; import com.google.gerrit.server.securestore.SecureStore; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -46,6 +47,9 @@ public class InitFlags { /** Dev mode */ public boolean dev; + /** Used for Schema 159 Migration */ + public DraftWorkflowMigrationStrategy draftMigrationStrategy; + public final FileBasedConfig cfg; public final SecureStore sec; public final List<String> installPlugins; diff --git a/java/com/google/gerrit/server/schema/Schema_159.java b/java/com/google/gerrit/server/schema/Schema_159.java index d6e37d7ae7..a0555c3305 100644 --- a/java/com/google/gerrit/server/schema/Schema_159.java +++ b/java/com/google/gerrit/server/schema/Schema_159.java @@ -23,7 +23,7 @@ import com.google.inject.Provider; /** Migrate draft changes to private or wip changes. */ public class Schema_159 extends SchemaVersion { - private enum DraftWorkflowMigrationStrategy { + public enum DraftWorkflowMigrationStrategy { PRIVATE, WORK_IN_PROGRESS } @@ -36,7 +36,13 @@ public class Schema_159 extends SchemaVersion { @Override protected void migrateData(ReviewDb db, UpdateUI ui) throws OrmException { DraftWorkflowMigrationStrategy strategy = DraftWorkflowMigrationStrategy.WORK_IN_PROGRESS; - if (ui.yesno(false, "Migrate draft changes to private changes (default is work-in-progress)")) { + boolean migrateDraftToPrivate = + ui.getDraftMigrationStrategy() == DraftWorkflowMigrationStrategy.PRIVATE; + if (ui.yesno( + migrateDraftToPrivate, + "Migrate draft changes to private changes (default is " + + (migrateDraftToPrivate ? "private" : "work-in-progress") + + ")")) { strategy = DraftWorkflowMigrationStrategy.PRIVATE; } ui.message( diff --git a/java/com/google/gerrit/server/schema/UpdateUI.java b/java/com/google/gerrit/server/schema/UpdateUI.java index 0c02607214..2d7db64842 100644 --- a/java/com/google/gerrit/server/schema/UpdateUI.java +++ b/java/com/google/gerrit/server/schema/UpdateUI.java @@ -14,6 +14,7 @@ package com.google.gerrit.server.schema; +import com.google.gerrit.server.schema.Schema_159.DraftWorkflowMigrationStrategy; import com.google.gwtorm.server.OrmException; import com.google.gwtorm.server.StatementExecutor; import java.util.List; @@ -39,4 +40,7 @@ public interface UpdateUI { boolean isBatch(); void pruneSchema(StatementExecutor e, List<String> pruneList) throws OrmException; + + /** Used for Schema_159 migration. */ + DraftWorkflowMigrationStrategy getDraftMigrationStrategy(); } diff --git a/java/com/google/gerrit/testing/TestUpdateUI.java b/java/com/google/gerrit/testing/TestUpdateUI.java index f36fc7eb5d..6f153037ca 100644 --- a/java/com/google/gerrit/testing/TestUpdateUI.java +++ b/java/com/google/gerrit/testing/TestUpdateUI.java @@ -14,6 +14,7 @@ package com.google.gerrit.testing; +import com.google.gerrit.server.schema.Schema_159.DraftWorkflowMigrationStrategy; import com.google.gerrit.server.schema.UpdateUI; import com.google.gwtorm.server.OrmException; import com.google.gwtorm.server.StatementExecutor; @@ -48,4 +49,9 @@ public class TestUpdateUI implements UpdateUI { e.execute(sql); } } + + @Override + public DraftWorkflowMigrationStrategy getDraftMigrationStrategy() { + return DraftWorkflowMigrationStrategy.WORK_IN_PROGRESS; + } } |