diff options
author | Luca Milanesio <luca.milanesio@gmail.com> | 2023-07-12 12:26:57 +0100 |
---|---|---|
committer | Luca Milanesio <luca.milanesio@gmail.com> | 2023-07-12 12:26:57 +0100 |
commit | 535fe0786e57acdf32bfa7860c5c8a86aec0617e (patch) | |
tree | e1afeaf6d71ef7758d4054f5d143dd17e3c98373 | |
parent | cc4114a4802c4555c6e7611d6737cc161b8643d4 (diff) | |
parent | 77a440890d4c6287f55f93fbe4813e0e687d034f (diff) |
Merge branch 'stable-3.5' into stable-3.6
* stable-3.5:
Fix GerritServer replica mode when used with @UseLocalDisk
Format bazel files using buildifier
Format sources using gjf
Add jgit-ssh-jsch as licensed under JGit's license
Release-Notes: skip
Change-Id: I983d643c1fc542a5a14fc9d388016516260d9c4c
4 files changed, 54 insertions, 10 deletions
diff --git a/java/com/google/gerrit/acceptance/GerritServer.java b/java/com/google/gerrit/acceptance/GerritServer.java index a149f29b91..998217214c 100644 --- a/java/com/google/gerrit/acceptance/GerritServer.java +++ b/java/com/google/gerrit/acceptance/GerritServer.java @@ -450,6 +450,12 @@ public class GerritServer implements AutoCloseable { bind(TestTicker.class).toInstance(testTicker); } }); + daemon.setEnableHttpd(desc.httpd()); + // Assure that SSHD is enabled if HTTPD is not required, otherwise the Gerrit server would not + // even start. + daemon.setEnableSshd(!desc.httpd() || desc.useSsh()); + daemon.setReplica( + ReplicaUtil.isReplica(baseConfig) || ReplicaUtil.isReplica(desc.buildConfig(baseConfig))); if (desc.memory()) { checkArgument(additionalArgs.length == 0, "cannot pass args to in-memory server"); @@ -466,7 +472,6 @@ public class GerritServer implements AutoCloseable { @Nullable InMemoryRepositoryManager inMemoryRepoManager) throws Exception { Config cfg = desc.buildConfig(baseConfig); - 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. @@ -743,4 +748,8 @@ public class GerritServer implements AutoCloseable { public String toString() { return MoreObjects.toStringHelper(this).addValue(desc).toString(); } + + public boolean isReplica() { + return daemon.isReplica(); + } } diff --git a/java/com/google/gerrit/pgm/Daemon.java b/java/com/google/gerrit/pgm/Daemon.java index 75891fe9dc..21c1bbd849 100644 --- a/java/com/google/gerrit/pgm/Daemon.java +++ b/java/com/google/gerrit/pgm/Daemon.java @@ -247,6 +247,10 @@ public class Daemon extends SiteProgram { this.replica = replica; } + public boolean isReplica() { + return replica; + } + @VisibleForTesting public Injector getHttpdInjector() { return httpdInjector; @@ -367,6 +371,7 @@ public class Daemon extends SiteProgram { } cfgInjector = createCfgInjector(); config = cfgInjector.getInstance(Key.get(Config.class, GerritServerConfig.class)); + config.setBoolean("container", null, "replica", replica); indexType = IndexModule.getIndexType(cfgInjector); sysInjector = createSysInjector(); sysInjector.getInstance(PluginGuiceEnvironment.class).setDbCfgInjector(dbInjector, cfgInjector); diff --git a/java/com/google/gerrit/server/config/GerritIsReplicaProvider.java b/java/com/google/gerrit/server/config/GerritIsReplicaProvider.java index bd07f7df8f..213cd1c95a 100644 --- a/java/com/google/gerrit/server/config/GerritIsReplicaProvider.java +++ b/java/com/google/gerrit/server/config/GerritIsReplicaProvider.java @@ -14,6 +14,7 @@ package com.google.gerrit.server.config; +import com.google.gerrit.server.util.ReplicaUtil; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; @@ -26,21 +27,15 @@ import org.eclipse.jgit.lib.Config; */ @Singleton public final class GerritIsReplicaProvider implements Provider<Boolean> { - public static final String CONFIG_SECTION = "container"; - public static final String REPLICA_KEY = "replica"; - public static final String DEPRECATED_REPLICA_KEY = "slave"; - - public final boolean isReplica; + private final Config config; @Inject public GerritIsReplicaProvider(@GerritServerConfig Config config) { - this.isReplica = - config.getBoolean(CONFIG_SECTION, REPLICA_KEY, false) - || config.getBoolean(CONFIG_SECTION, DEPRECATED_REPLICA_KEY, false); + this.config = config; } @Override public Boolean get() { - return isReplica; + return ReplicaUtil.isReplica(config); } } diff --git a/javatests/com/google/gerrit/acceptance/server/config/GerritIsReplicaIT.java b/javatests/com/google/gerrit/acceptance/server/config/GerritIsReplicaIT.java index d01a81dd73..b8ec57b2bc 100644 --- a/javatests/com/google/gerrit/acceptance/server/config/GerritIsReplicaIT.java +++ b/javatests/com/google/gerrit/acceptance/server/config/GerritIsReplicaIT.java @@ -18,6 +18,8 @@ import static com.google.common.truth.Truth.assertThat; import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.Sandboxed; +import com.google.gerrit.acceptance.UseLocalDisk; +import com.google.gerrit.acceptance.config.GerritConfig; import com.google.gerrit.server.config.GerritIsReplicaProvider; import com.google.gerrit.testing.ConfigSuite; import com.google.inject.Inject; @@ -35,6 +37,14 @@ public class GerritIsReplicaIT extends AbstractDaemonTest { @Test public void isNotReplica() { assertThat(isReplicaProvider.get()).isFalse(); + assertThat(server.isReplica()).isFalse(); + } + + @Test + @UseLocalDisk + public void isNotReplicaWithLocalDisk() { + assertThat(isReplicaProvider.get()).isFalse(); + assertThat(server.isReplica()).isFalse(); } @Test @@ -42,5 +52,30 @@ public class GerritIsReplicaIT extends AbstractDaemonTest { public void isReplica() throws Exception { restartAsSlave(); assertThat(isReplicaProvider.get()).isTrue(); + assertThat(server.isReplica()).isTrue(); + } + + @Test + @GerritConfig(name = "container.replica", value = "true") + public void isReplicaFromGerritConfigAnnotation() throws Exception { + assertThat(isReplicaProvider.get()).isTrue(); + assertThat(server.isReplica()).isTrue(); + } + + @Test + @UseLocalDisk + @GerritConfig(name = "container.replica", value = "true") + public void isReplicaWithLocalDisk() throws Exception { + assertThat(isReplicaProvider.get()).isTrue(); + assertThat(server.isReplica()).isTrue(); + } + + @Test + @Sandboxed + @UseLocalDisk + public void isReplicaWithLocalDiskAfterRestart() throws Exception { + restartAsSlave(); + assertThat(isReplicaProvider.get()).isTrue(); + assertThat(server.isReplica()).isTrue(); } } |