summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdithya Chakilam <achakila@codeaurora.org>2021-08-30 19:52:37 -0500
committerAdithya Chakilam <achakila@codeaurora.org>2021-08-30 19:54:56 -0500
commitcc190c7cd9ef73dcdfa336076dc4f4c2db08cebc (patch)
tree85195d3c6320cbd699e03e3b7cbdf88b7551ff90
parent35c1e64d31d811c6bf25980a93013b6016e1c74a (diff)
parentc9322bf319e6376e3ef27c87a75e189bec3dedd6 (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.java14
-rw-r--r--java/com/google/gerrit/pgm/init/BaseInit.java11
-rw-r--r--java/com/google/gerrit/pgm/init/api/BUILD1
-rw-r--r--java/com/google/gerrit/pgm/init/api/InitFlags.java4
-rw-r--r--java/com/google/gerrit/server/schema/Schema_159.java10
-rw-r--r--java/com/google/gerrit/server/schema/UpdateUI.java4
-rw-r--r--java/com/google/gerrit/testing/TestUpdateUI.java6
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;
+ }
}