Don't require secondary index when running daemon in slave mode
Add a dummy index implementation and install it when the daemon is started in slave mode. Make the reindex program exit with an error if run on a server that is configured to run in slave mode. Disable the query ssh command when in slave mode. Change-Id: Ia323d7dfc3b8f333857ba310072e41943878c11b
This commit is contained in:
@@ -27,6 +27,7 @@ import com.google.gerrit.extensions.registration.DynamicSet;
|
||||
import com.google.gerrit.lifecycle.LifecycleManager;
|
||||
import com.google.gerrit.lifecycle.LifecycleModule;
|
||||
import com.google.gerrit.lucene.LuceneIndexModule;
|
||||
import com.google.gerrit.pgm.util.Die;
|
||||
import com.google.gerrit.pgm.util.SiteProgram;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
@@ -124,6 +125,7 @@ public class Reindex extends SiteProgram {
|
||||
private boolean dryRun;
|
||||
|
||||
private Injector dbInjector;
|
||||
private Config cfg;
|
||||
private Injector sysInjector;
|
||||
private ChangeIndex index;
|
||||
|
||||
@@ -131,6 +133,9 @@ public class Reindex extends SiteProgram {
|
||||
public int run() throws Exception {
|
||||
mustHaveValidSite();
|
||||
dbInjector = createDbInjector(MULTI_USER);
|
||||
cfg = dbInjector.getInstance(
|
||||
Key.get(Config.class, GerritServerConfig.class));
|
||||
checkNotSlaveMode();
|
||||
limitThreads();
|
||||
disableLuceneAutomaticCommit();
|
||||
if (version == null) {
|
||||
@@ -160,9 +165,13 @@ public class Reindex extends SiteProgram {
|
||||
return result;
|
||||
}
|
||||
|
||||
private void checkNotSlaveMode() throws Die {
|
||||
if (cfg.getBoolean("container", "slave", false)) {
|
||||
throw die("Cannot run reindex in slave mode");
|
||||
}
|
||||
}
|
||||
|
||||
private void limitThreads() {
|
||||
Config cfg =
|
||||
dbInjector.getInstance(Key.get(Config.class, GerritServerConfig.class));
|
||||
boolean usePool = cfg.getBoolean("database", "connectionpool",
|
||||
dbInjector.getInstance(DataSourceType.class).usePool());
|
||||
int poolLimit = cfg.getInt("database", "poollimit",
|
||||
|
Reference in New Issue
Block a user