Merge branch 'stable-2.14' into stable-2.15 * stable-2.14: Upgrade bazlets to latest stable-2.14 Change-Id: Ibe50141fdbbb237762c99a3e9c1ae6437db72969
diff --git a/WORKSPACE b/WORKSPACE index fc3f47b..a537511 100644 --- a/WORKSPACE +++ b/WORKSPACE
@@ -3,7 +3,7 @@ load("//:bazlets.bzl", "load_bazlets") load_bazlets( - commit = "b07aa8462f2618a83f3b52d6150faa831b24d3e3", + commit = "ec949feac1b9dae6cc2c8c25d254f34924c54296", #local_path = "/home/<user>/projects/bazlets", )
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl index fd37795..790d564 100644 --- a/external_plugin_deps.bzl +++ b/external_plugin_deps.bzl
@@ -3,8 +3,8 @@ def external_plugin_deps(): maven_jar( name = "mockito", - artifact = "org.mockito:mockito-core:2.27.0", - sha1 = "835fc3283b481f4758b8ef464cd560c649c08b00", + artifact = "org.mockito:mockito-core:2.28.2", + sha1 = "91110215a8cb9b77a46e045ee758f77d79167cc0", deps = [ "@byte-buddy//jar", "@byte-buddy-agent//jar",
diff --git a/src/main/java/com/googlesource/gerrit/plugins/quota/ListQuotas.java b/src/main/java/com/googlesource/gerrit/plugins/quota/ListQuotas.java index 1d8061c..fccad96 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/quota/ListQuotas.java +++ b/src/main/java/com/googlesource/gerrit/plugins/quota/ListQuotas.java
@@ -15,17 +15,17 @@ package com.googlesource.gerrit.plugins.quota; import com.google.common.collect.Maps; -import com.google.gerrit.extensions.restapi.AuthException; -import com.google.gerrit.extensions.restapi.BadRequestException; -import com.google.gerrit.extensions.restapi.ResourceConflictException; +import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.extensions.restapi.RestReadView; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.config.ConfigResource; +import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gerrit.server.project.ListProjects; import com.google.inject.Inject; import com.google.inject.Provider; import com.googlesource.gerrit.plugins.quota.GetQuota.QuotaInfo; import java.util.Map; +import java.util.concurrent.ExecutionException; import org.kohsuke.args4j.Option; public class ListQuotas implements RestReadView<ConfigResource> { @@ -51,7 +51,7 @@ @Override public Map<String, QuotaInfo> apply(ConfigResource resource) - throws AuthException, BadRequestException, ResourceConflictException, Exception { + throws RestApiException, ExecutionException, PermissionBackendException { Map<String, QuotaInfo> result = Maps.newTreeMap(); ListProjects lister = listProjects.get(); lister.setMatchPrefix(matchPrefix);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/quota/MaxRepositorySizeQuota.java b/src/main/java/com/googlesource/gerrit/plugins/quota/MaxRepositorySizeQuota.java index f01255a..d1f1505 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/quota/MaxRepositorySizeQuota.java +++ b/src/main/java/com/googlesource/gerrit/plugins/quota/MaxRepositorySizeQuota.java
@@ -36,6 +36,7 @@ import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; import java.util.Collection; +import java.util.Optional; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; @@ -51,7 +52,8 @@ import org.slf4j.LoggerFactory; @Singleton -class MaxRepositorySizeQuota implements ReceivePackInitializer, PostReceiveHook, RepoSizeCache { +public class MaxRepositorySizeQuota + implements ReceivePackInitializer, PostReceiveHook, RepoSizeCache { private static final Logger log = LoggerFactory.getLogger(MaxRepositorySizeQuota.class); static final String REPO_SIZE_CACHE = "repo_size"; @@ -68,13 +70,13 @@ }; } + protected final LoadingCache<Project.NameKey, AtomicLong> cache; private final QuotaFinder quotaFinder; - private final LoadingCache<Project.NameKey, AtomicLong> cache; private final ProjectCache projectCache; private final ProjectNameResolver projectNameResolver; @Inject - MaxRepositorySizeQuota( + protected MaxRepositorySizeQuota( QuotaFinder quotaFinder, @Named(REPO_SIZE_CACHE) LoadingCache<Project.NameKey, AtomicLong> cache, ProjectCache projectCache, @@ -87,15 +89,22 @@ @Override public void init(Project.NameKey project, ReceivePack rp) { + Optional<Long> maxPackSize = getMaxPackSize(project); + if (maxPackSize.isPresent()) { + rp.setMaxPackSizeLimit(maxPackSize.get()); + } + } + + protected Optional<Long> getMaxPackSize(Project.NameKey project) { QuotaSection quotaSection = quotaFinder.firstMatching(project); if (quotaSection == null) { - return; + return Optional.empty(); } Long maxRepoSize = quotaSection.getMaxRepoSize(); Long maxTotalSize = quotaSection.getMaxTotalSize(); if (maxRepoSize == null && maxTotalSize == null) { - return; + return Optional.empty(); } try { @@ -115,10 +124,11 @@ maxPackSize2 = Math.max(0, maxTotalSize - totalSize); } - long maxPackSize = Ordering.<Long>natural().nullsLast().min(maxPackSize1, maxPackSize2); - rp.setMaxPackSizeLimit(maxPackSize); + return Optional.ofNullable( + Ordering.<Long>natural().nullsLast().min(maxPackSize1, maxPackSize2)); } catch (ExecutionException e) { - log.warn("Couldn't setMaxPackSizeLimit on receive-pack for {}", project, e); + log.warn("Couldn't calculate maxPackSize for {}", project, e); + return Optional.empty(); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/quota/Module.java b/src/main/java/com/googlesource/gerrit/plugins/quota/Module.java index a762579..e514334 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/quota/Module.java +++ b/src/main/java/com/googlesource/gerrit/plugins/quota/Module.java
@@ -76,6 +76,7 @@ DynamicSet.bind(binder(), ProjectDeletedListener.class).to(DeletionListener.class); DynamicSet.bind(binder(), GarbageCollectorListener.class).to(GCListener.class); DynamicSet.setOf(binder(), UsageDataEventCreator.class); + DynamicSet.bind(binder(), UsageDataEventCreator.class).to(RepoSizeEventCreator.class); install(MaxRepositorySizeQuota.module()); install( new RestApiModule() {