diff options
author | David Pursehouse <dpursehouse@collab.net> | 2019-10-17 23:09:58 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-10-17 23:09:58 +0000 |
commit | 62c90668093e1fe582e8f816177161ba08f16e19 (patch) | |
tree | 53e044ec7136b806dab4514d8e5f8726c6138ce9 | |
parent | e837edde63712fbc34c01cf7142c985c9cff2968 (diff) | |
parent | a51f1c0b32b7809da3a4cfd44b58ee9e45780ee9 (diff) |
Merge "Use container.replica as the property for readonly replicas"
-rw-r--r-- | Documentation/config-gerrit.txt | 6 | ||||
-rw-r--r-- | java/com/google/gerrit/acceptance/GerritServer.java | 12 | ||||
-rw-r--r-- | java/com/google/gerrit/acceptance/ReindexGroupsAtStartup.java | 5 | ||||
-rw-r--r-- | java/com/google/gerrit/pgm/Init.java | 3 | ||||
-rw-r--r-- | java/com/google/gerrit/pgm/Reindex.java | 8 | ||||
-rw-r--r-- | java/com/google/gerrit/server/util/ReplicaUtil.java | 25 | ||||
-rw-r--r-- | java/com/google/gerrit/testing/InMemoryModule.java | 2 | ||||
-rw-r--r-- | javatests/com/google/gerrit/acceptance/pgm/AbstractReindexTests.java | 2 |
8 files changed, 47 insertions, 16 deletions
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt index 00350d1ee3..982d7c68ab 100644 --- a/Documentation/config-gerrit.txt +++ b/Documentation/config-gerrit.txt @@ -1565,12 +1565,16 @@ line, separated by spaces. Execute `java -jar gerrit.war daemon --help` to see all possible options. -[[container.slave]]container.slave:: +[[container.replica]]container.replica:: + Used on Gerrit replica installations. If set to true the Gerrit JVM is called with the '--replica' switch, enabling replica mode. If no value is set (or any other value), Gerrit defaults to master mode. +[[container.replica]]container.slave:: ++ +Backward compatibility for 'container.slave' config setting. + [[container.startupTimeout]]container.startupTimeout:: + The maximum time (in seconds) to wait for a gerrit.sh start command diff --git a/java/com/google/gerrit/acceptance/GerritServer.java b/java/com/google/gerrit/acceptance/GerritServer.java index a5066b7b47..678bc315c1 100644 --- a/java/com/google/gerrit/acceptance/GerritServer.java +++ b/java/com/google/gerrit/acceptance/GerritServer.java @@ -44,6 +44,7 @@ import com.google.gerrit.server.config.SitePath; import com.google.gerrit.server.git.receive.AsyncReceiveCommits; import com.google.gerrit.server.schema.JdbcAccountPatchReviewStore; import com.google.gerrit.server.ssh.NoSshModule; +import com.google.gerrit.server.util.ReplicaUtil; import com.google.gerrit.server.util.SocketUtil; import com.google.gerrit.server.util.SystemLog; import com.google.gerrit.testing.FakeEmailSender; @@ -450,7 +451,7 @@ public class GerritServer implements AutoCloseable { @Nullable InMemoryRepositoryManager inMemoryRepoManager) throws Exception { Config cfg = desc.buildConfig(baseConfig); - daemon.setReplica(isReplica(baseConfig) || isReplica(cfg)); + daemon.setReplica(ReplicaUtil.isReplica(baseConfig) || ReplicaUtil.isReplica(cfg)); mergeTestConfig(cfg); // Set the log4j configuration to an invalid one to prevent system logs // from getting configured and creating log files. @@ -463,7 +464,8 @@ public class GerritServer implements AutoCloseable { cfg.setString( "accountPatchReviewDb", null, "url", JdbcAccountPatchReviewStore.TEST_IN_MEMORY_URL); daemon.setEnableHttpd(desc.httpd()); - daemon.setLuceneModule(LuceneIndexModule.singleVersionAllLatest(0, isReplica(baseConfig))); + daemon.setLuceneModule( + LuceneIndexModule.singleVersionAllLatest(0, ReplicaUtil.isReplica(baseConfig))); daemon.setDatabaseForTesting( ImmutableList.of( new InMemoryTestingDatabaseModule(cfg, site, inMemoryRepoManager), @@ -479,10 +481,6 @@ public class GerritServer implements AutoCloseable { return new GerritServer(desc, null, createTestInjector(daemon), daemon, null); } - private static boolean isReplica(Config baseConfig) { - return baseConfig.getBoolean("container", "slave", false); - } - private static GerritServer startOnDisk( Description desc, Path site, @@ -662,7 +660,7 @@ public class GerritServer implements AutoCloseable { Path site = server.testInjector.getInstance(Key.get(Path.class, SitePath.class)); Config cfg = server.testInjector.getInstance(Key.get(Config.class, GerritServerConfig.class)); - cfg.setBoolean("container", null, "slave", true); + cfg.setBoolean("container", null, "replica", true); InMemoryRepositoryManager inMemoryRepoManager = null; if (hasBinding(server.testInjector, InMemoryRepositoryManager.class)) { diff --git a/java/com/google/gerrit/acceptance/ReindexGroupsAtStartup.java b/java/com/google/gerrit/acceptance/ReindexGroupsAtStartup.java index bd8a926bf8..b985e409f0 100644 --- a/java/com/google/gerrit/acceptance/ReindexGroupsAtStartup.java +++ b/java/com/google/gerrit/acceptance/ReindexGroupsAtStartup.java @@ -20,6 +20,7 @@ import com.google.gerrit.lifecycle.LifecycleModule; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.group.db.Groups; import com.google.gerrit.server.index.group.GroupIndexer; +import com.google.gerrit.server.util.ReplicaUtil; import com.google.inject.Inject; import com.google.inject.Scopes; import java.io.IOException; @@ -50,8 +51,8 @@ public class ReindexGroupsAtStartup implements LifecycleListener { @Override public void start() { - // Gerrit slaves without a reindex - if (cfg.getBoolean("container", "slave", false) + // Gerrit replicas without a reindex + if (ReplicaUtil.isReplica(cfg) && !cfg.getBoolean("index", "scheduledIndexer", "runOnStartup", true)) { return; } diff --git a/java/com/google/gerrit/pgm/Init.java b/java/com/google/gerrit/pgm/Init.java index 0537fe9267..799377c8a8 100644 --- a/java/com/google/gerrit/pgm/Init.java +++ b/java/com/google/gerrit/pgm/Init.java @@ -32,6 +32,7 @@ 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.securestore.SecureStoreClassName; +import com.google.gerrit.server.util.ReplicaUtil; import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Inject; @@ -144,7 +145,7 @@ public class Init extends BaseInit { }); modules.add(new GerritServerConfigModule()); Guice.createInjector(modules).injectMembers(this); - if (!run.flags.cfg.getBoolean("container", "slave", false)) { + if (!ReplicaUtil.isReplica(run.flags.cfg)) { reindexProjects(); } start(run); diff --git a/java/com/google/gerrit/pgm/Reindex.java b/java/com/google/gerrit/pgm/Reindex.java index 3cc9315ab3..2e526bb454 100644 --- a/java/com/google/gerrit/pgm/Reindex.java +++ b/java/com/google/gerrit/pgm/Reindex.java @@ -34,6 +34,7 @@ import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.index.IndexModule; import com.google.gerrit.server.index.change.ChangeSchemaDefinitions; import com.google.gerrit.server.plugins.PluginGuiceEnvironment; +import com.google.gerrit.server.util.ReplicaUtil; import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.Key; @@ -144,14 +145,15 @@ public class Reindex extends SiteProgram { if (changesVersion != null) { versions.put(ChangeSchemaDefinitions.INSTANCE.getName(), changesVersion); } - boolean slave = globalConfig.getBoolean("container", "slave", false); + boolean replica = ReplicaUtil.isReplica(globalConfig); List<Module> modules = new ArrayList<>(); Module indexModule; IndexType indexType = IndexModule.getIndexType(dbInjector); if (indexType.isLucene()) { - indexModule = LuceneIndexModule.singleVersionWithExplicitVersions(versions, threads, slave); + indexModule = LuceneIndexModule.singleVersionWithExplicitVersions(versions, threads, replica); } else if (indexType.isElasticsearch()) { - indexModule = ElasticIndexModule.singleVersionWithExplicitVersions(versions, threads, slave); + indexModule = + ElasticIndexModule.singleVersionWithExplicitVersions(versions, threads, replica); } else { throw new IllegalStateException("unsupported index.type = " + indexType); } diff --git a/java/com/google/gerrit/server/util/ReplicaUtil.java b/java/com/google/gerrit/server/util/ReplicaUtil.java new file mode 100644 index 0000000000..bf6111a7e3 --- /dev/null +++ b/java/com/google/gerrit/server/util/ReplicaUtil.java @@ -0,0 +1,25 @@ +// Copyright (C) 2019 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.gerrit.server.util; + +import org.eclipse.jgit.lib.Config; + +public class ReplicaUtil { + /** Provides backward compatibility for container.slave property. */ + public static boolean isReplica(Config cfg) { + return cfg.getBoolean("container", "slave", false) + || cfg.getBoolean("container", "replica", false); + } +} diff --git a/java/com/google/gerrit/testing/InMemoryModule.java b/java/com/google/gerrit/testing/InMemoryModule.java index 08835cc0a5..97350bc331 100644 --- a/java/com/google/gerrit/testing/InMemoryModule.java +++ b/java/com/google/gerrit/testing/InMemoryModule.java @@ -299,7 +299,7 @@ public class InMemoryModule extends FactoryModule { private Module indexModule(String moduleClassName) { try { - boolean slave = cfg.getBoolean("container", "slave", false); + boolean slave = cfg.getBoolean("container", "replica", false); Class<?> clazz = Class.forName(moduleClassName); Method m = clazz.getMethod("singleVersionWithExplicitVersions", Map.class, int.class, boolean.class); diff --git a/javatests/com/google/gerrit/acceptance/pgm/AbstractReindexTests.java b/javatests/com/google/gerrit/acceptance/pgm/AbstractReindexTests.java index b77825ac7d..cad0b83942 100644 --- a/javatests/com/google/gerrit/acceptance/pgm/AbstractReindexTests.java +++ b/javatests/com/google/gerrit/acceptance/pgm/AbstractReindexTests.java @@ -241,7 +241,7 @@ public abstract class AbstractReindexTests extends StandaloneSiteTest { } private void enableSlaveMode() throws Exception { - updateConfig(config -> config.setBoolean("container", null, "slave", true)); + updateConfig(config -> config.setBoolean("container", null, "replica", true)); } private void updateConfig(Consumer<Config> configConsumer) throws Exception { |