From dcc7e658139a279d40a2b037cce96b326feff13c Mon Sep 17 00:00:00 2001 From: Lai Jiang Date: Wed, 12 Apr 2023 15:17:21 -0400 Subject: [PATCH] Add routing for ReadDnsRefreshRequestsAction (#1990) It looks like we forgot this crucial part to actually add the necessary routing the new action... Also fixes a linter warning. --- core/src/main/java/google/registry/dns/DnsModule.java | 11 +++++++++++ .../registry/dns/ReadDnsRefreshRequestsAction.java | 8 ++++---- .../registry/env/common/backend/WEB-INF/web.xml | 6 ++++++ .../module/backend/BackendRequestComponent.java | 3 +++ .../registry/flows/domain/DomainPricingLogicTest.java | 4 ++-- .../registry/module/backend/backend_routing.txt | 1 + 6 files changed, 27 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/google/registry/dns/DnsModule.java b/core/src/main/java/google/registry/dns/DnsModule.java index eda74b297..d6e09247d 100644 --- a/core/src/main/java/google/registry/dns/DnsModule.java +++ b/core/src/main/java/google/registry/dns/DnsModule.java @@ -19,6 +19,7 @@ import static google.registry.dns.DnsConstants.DNS_PULL_QUEUE_NAME; import static google.registry.dns.RefreshDnsOnHostRenameAction.PARAM_HOST_KEY; import static google.registry.request.RequestParameters.extractEnumParameter; import static google.registry.request.RequestParameters.extractIntParameter; +import static google.registry.request.RequestParameters.extractOptionalIntParameter; import static google.registry.request.RequestParameters.extractOptionalParameter; import static google.registry.request.RequestParameters.extractRequiredParameter; import static google.registry.request.RequestParameters.extractSetOfParameters; @@ -34,6 +35,7 @@ import google.registry.dns.DnsConstants.TargetType; import google.registry.dns.writer.DnsWriterZone; import google.registry.request.Parameter; import google.registry.request.RequestParameters; +import java.util.Optional; import java.util.Set; import javax.inject.Named; import javax.servlet.http.HttpServletRequest; @@ -50,6 +52,9 @@ public abstract class DnsModule { public static final String PARAM_HOSTS = "hosts"; public static final String PARAM_PUBLISH_TASK_ENQUEUED = "enqueued"; public static final String PARAM_REFRESH_REQUEST_TIME = "requestTime"; + // This parameter cannot be named "jitterSeconds", which will be read by TldFanoutAction and not + // be passed down to actions. + public static final String PARAM_DNS_JITTER_SECONDS = "dnsJitterSeconds"; @Binds @DnsWriterZone @@ -129,6 +134,12 @@ public abstract class DnsModule { return extractRequiredParameter(req, PARAM_HOST_KEY); } + @Provides + @Parameter(PARAM_DNS_JITTER_SECONDS) + static Optional provideJitterSeconds(HttpServletRequest req) { + return extractOptionalIntParameter(req, PARAM_DNS_JITTER_SECONDS); + } + @Provides @Parameter("domainOrHostName") static String provideName(HttpServletRequest req) { diff --git a/core/src/main/java/google/registry/dns/ReadDnsRefreshRequestsAction.java b/core/src/main/java/google/registry/dns/ReadDnsRefreshRequestsAction.java index c4b57bd4d..7f2eeef1a 100644 --- a/core/src/main/java/google/registry/dns/ReadDnsRefreshRequestsAction.java +++ b/core/src/main/java/google/registry/dns/ReadDnsRefreshRequestsAction.java @@ -16,6 +16,7 @@ package google.registry.dns; import static com.google.common.collect.ImmutableSetMultimap.toImmutableSetMultimap; import static google.registry.dns.DnsConstants.DNS_PUBLISH_PUSH_QUEUE_NAME; +import static google.registry.dns.DnsModule.PARAM_DNS_JITTER_SECONDS; import static google.registry.dns.DnsModule.PARAM_DNS_WRITER; import static google.registry.dns.DnsModule.PARAM_DOMAINS; import static google.registry.dns.DnsModule.PARAM_HOSTS; @@ -23,6 +24,7 @@ import static google.registry.dns.DnsModule.PARAM_LOCK_INDEX; import static google.registry.dns.DnsModule.PARAM_NUM_PUBLISH_LOCKS; import static google.registry.dns.DnsModule.PARAM_PUBLISH_TASK_ENQUEUED; import static google.registry.dns.DnsModule.PARAM_REFRESH_REQUEST_TIME; +import static google.registry.request.Action.Method.POST; import static google.registry.request.RequestParameters.PARAM_TLD; import static google.registry.util.DateTimeUtils.END_OF_TIME; import static google.registry.util.DomainNameUtils.getSecondLevelDomain; @@ -59,12 +61,10 @@ import org.joda.time.Duration; service = Service.BACKEND, path = "/_dr/task/readDnsRefreshRequests", automaticallyPrintOk = true, + method = POST, auth = Auth.AUTH_INTERNAL_OR_ADMIN) public final class ReadDnsRefreshRequestsAction implements Runnable { - // This parameter cannot be named "jitterSeconds", which will be read by TldFanoutAction and not - // be passed to this action. - private static final String PARAM_JITTER_SECONDS = "dnsJitterSeconds"; private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final int tldUpdateBatchSize; @@ -80,7 +80,7 @@ public final class ReadDnsRefreshRequestsAction implements Runnable { ReadDnsRefreshRequestsAction( @Config("dnsTldUpdateBatchSize") int tldUpdateBatchSize, @Config("readDnsRefreshRequestsActionRuntime") Duration requestedMaximumDuration, - @Parameter(PARAM_JITTER_SECONDS) Optional jitterSeconds, + @Parameter(PARAM_DNS_JITTER_SECONDS) Optional jitterSeconds, @Parameter(PARAM_TLD) String tld, Clock clock, DnsUtils dnsUtils, diff --git a/core/src/main/java/google/registry/env/common/backend/WEB-INF/web.xml b/core/src/main/java/google/registry/env/common/backend/WEB-INF/web.xml index dfc2b2af4..8da5a244b 100644 --- a/core/src/main/java/google/registry/env/common/backend/WEB-INF/web.xml +++ b/core/src/main/java/google/registry/env/common/backend/WEB-INF/web.xml @@ -157,6 +157,12 @@ /_dr/cron/readDnsQueue + + + backend-servlet + /_dr/task/readDnsRefreshRequests + + backend-servlet diff --git a/core/src/main/java/google/registry/module/backend/BackendRequestComponent.java b/core/src/main/java/google/registry/module/backend/BackendRequestComponent.java index be7ca5859..a3e9738b1 100644 --- a/core/src/main/java/google/registry/module/backend/BackendRequestComponent.java +++ b/core/src/main/java/google/registry/module/backend/BackendRequestComponent.java @@ -33,6 +33,7 @@ import google.registry.cron.TldFanoutAction; import google.registry.dns.DnsModule; import google.registry.dns.PublishDnsUpdatesAction; import google.registry.dns.ReadDnsQueueAction; +import google.registry.dns.ReadDnsRefreshRequestsAction; import google.registry.dns.RefreshDnsAction; import google.registry.dns.RefreshDnsOnHostRenameAction; import google.registry.dns.writer.VoidDnsWriterModule; @@ -144,6 +145,8 @@ interface BackendRequestComponent { ReadDnsQueueAction readDnsQueueAction(); + ReadDnsRefreshRequestsAction readDnsRefreshRequestsAction(); + RdeReportAction rdeReportAction(); RdeStagingAction rdeStagingAction(); diff --git a/core/src/test/java/google/registry/flows/domain/DomainPricingLogicTest.java b/core/src/test/java/google/registry/flows/domain/DomainPricingLogicTest.java index 98e40ef52..63990ed3b 100644 --- a/core/src/test/java/google/registry/flows/domain/DomainPricingLogicTest.java +++ b/core/src/test/java/google/registry/flows/domain/DomainPricingLogicTest.java @@ -441,7 +441,7 @@ public class DomainPricingLogicTest { @Test void - testGetDomainRenewPrice_oneYear_premiumDomain_anchorTenant__withToken_isDiscountedNonPremiumPrice() + testGetDomainRenewPrice_oneYear_premiumDomain_anchorTenant_withToken_isDiscountedNonPremiumPrice() throws EppException { AllocationToken allocationToken = persistResource( @@ -488,7 +488,7 @@ public class DomainPricingLogicTest { @Test void - testGetDomainRenewPrice_multiYear_premiumDomain_anchorTenant__withToken_isDiscountedNonPremiumPrice() + testGetDomainRenewPrice_multiYear_premiumDomain_anchorTenant_withToken_isDiscountedNonPremiumPrice() throws EppException { AllocationToken allocationToken = persistResource( diff --git a/core/src/test/resources/google/registry/module/backend/backend_routing.txt b/core/src/test/resources/google/registry/module/backend/backend_routing.txt index c1046c396..52edb259b 100644 --- a/core/src/test/resources/google/registry/module/backend/backend_routing.txt +++ b/core/src/test/resources/google/registry/module/backend/backend_routing.txt @@ -24,6 +24,7 @@ PATH CLASS /_dr/task/rdeReport RdeReportAction POST n INTERNAL,API APP ADMIN /_dr/task/rdeStaging RdeStagingAction GET,POST n INTERNAL,API APP ADMIN /_dr/task/rdeUpload RdeUploadAction POST n INTERNAL,API APP ADMIN +/_dr/task/readDnsRefreshRequests ReadDnsRefreshRequestsAction POST y INTERNAL,API APP ADMIN /_dr/task/refreshDnsOnHostRename RefreshDnsOnHostRenameAction POST n INTERNAL,API APP ADMIN /_dr/task/relockDomain RelockDomainAction POST y INTERNAL,API APP ADMIN /_dr/task/resaveAllEppResourcesPipeline ResaveAllEppResourcesPipelineAction GET n INTERNAL,API APP ADMIN