Ignore multi-site version refs from global-refdb checks
Global-refdb checks should skip the refs/multi-site/version/*
refs because they are meant to be tracing the local refdb
versioning across the different Gerrit sites.
Use the new global-refdb library v3.3.1 that allows to specify
the list of refs to ignored.
Also global-refdb library uses provided plugin name as a prefix for
metrics.
Bug: Issue 13971
Change-Id: I9d452809d7a8de9c2c4e4cd21af492be5bfb77bf
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
index c2f45a0..82cd5e8 100644
--- a/external_plugin_deps.bzl
+++ b/external_plugin_deps.bzl
@@ -3,8 +3,8 @@
def external_plugin_deps():
maven_jar(
name = "global-refdb",
- artifact = "com.gerritforge:global-refdb:3.3.0-rc1",
- sha1 = "1b005b31c27a30ff10de97f903fa2834051bcadf",
+ artifact = "com.gerritforge:global-refdb:3.3.1",
+ sha1 = "5df9dddad2fc67c922406f41549186b210cd957e",
)
maven_jar(
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
index d6fa749..81e1c12 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
@@ -82,7 +82,9 @@
projects = memoize(() -> new Projects(lazyMultiSiteCfg));
sharedRefDb =
memoize(
- () -> new SharedRefDbConfiguration(enableSharedRefDbByDefault(lazyMultiSiteCfg.get())));
+ () ->
+ new SharedRefDbConfiguration(
+ enableSharedRefDbByDefault(lazyMultiSiteCfg.get()), PLUGIN_NAME));
broker = memoize(() -> new Broker(lazyMultiSiteCfg));
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ValidationModule.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ValidationModule.java
index 1d9d2c4..16fa09a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ValidationModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ValidationModule.java
@@ -29,15 +29,19 @@
import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.CustomSharedRefEnforcementByProject;
import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.DefaultSharedRefEnforcement;
import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedRefEnforcement;
+import com.google.common.collect.ImmutableSet;
import com.google.gerrit.extensions.config.FactoryModule;
import com.google.gerrit.extensions.registration.DynamicItem;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.inject.Scopes;
+import com.google.inject.TypeLiteral;
+import com.google.inject.name.Names;
import com.googlesource.gerrit.plugins.multisite.Configuration;
import com.googlesource.gerrit.plugins.multisite.Log4jProjectVersionLogger;
import com.googlesource.gerrit.plugins.multisite.ProjectVersionLogger;
import com.googlesource.gerrit.plugins.replication.ReplicationExtensionPointModule;
import com.googlesource.gerrit.plugins.replication.ReplicationPushFilter;
+import java.util.Set;
public class ValidationModule extends FactoryModule {
private final Configuration cfg;
@@ -63,6 +67,12 @@
factory(BatchRefUpdateValidator.Factory.class);
bind(SharedRefDbConfiguration.class).toInstance(cfg.getSharedRefDbConfiguration());
+ bind(new TypeLiteral<Set<String>>() {})
+ .annotatedWith(Names.named(SharedRefDbGitRepositoryManager.IGNORED_REFS))
+ .toInstance(
+ ImmutableSet.of(
+ ProjectVersionRefUpdate.MULTI_SITE_VERSIONING_REF,
+ ProjectVersionRefUpdate.MULTI_SITE_VERSIONING_VALUE_REF));
bind(GitRepositoryManager.class).to(SharedRefDbGitRepositoryManager.class);
DynamicItem.bind(binder(), ReplicationPushFilter.class)
.to(MultisiteReplicationPushFilter.class);