From b6083e227f15befffe6f42963c1f9a69cbbc4375 Mon Sep 17 00:00:00 2001 From: gbrodman Date: Tue, 14 Mar 2023 15:15:05 -0400 Subject: [PATCH] Move CloudTasksUtils to core/ project (#1956) This does nothing for now, but in the future this will allow us to refer to the RegistryConfig and/or Service objects from the core project. This will be necessary when changing CloudTasksUtils to not use the AppEngine built-in connection (it will need to use a standard HTTP request instead). --- .../registry/batch/AsyncTaskEnqueuer.java | 3 +- .../registry/batch}/CloudTasksUtils.java | 34 ++++--- .../java/google/registry/beam/rde/RdeIO.java | 6 +- .../google/registry/beam/rde/RdePipeline.java | 2 +- .../config/CloudTasksUtilsModule.java | 20 +--- .../registry/config/RegistryConfig.java | 2 +- .../google/registry/cron/TldFanoutAction.java | 4 +- .../registry/dns/PublishDnsUpdatesAction.java | 4 +- .../registry/dns/ReadDnsQueueAction.java | 4 +- .../registry/flows/host/HostUpdateFlow.java | 4 +- .../registry/loadtest/LoadTestAction.java | 4 +- .../google/registry/rde/RdeUploadAction.java | 5 +- .../billing/GenerateInvoicesAction.java | 4 +- .../billing/PublishInvoicesAction.java | 4 +- .../icann/IcannReportingStagingAction.java | 4 +- .../spec11/GenerateSpec11ReportAction.java | 4 +- .../registry/tmch/NordnUploadAction.java | 4 +- .../registry/tools/DomainLockUtils.java | 4 +- .../tools/GenerateEscrowDepositCommand.java | 4 +- .../registrar/RegistrarSettingsAction.java | 4 +- .../registry/batch/AsyncTaskEnqueuerTest.java | 1 - .../registry/batch}/CloudTasksUtilsTest.java | 97 ++++++++++--------- .../registry/flows/EppTestComponent.java | 2 +- .../billing/GenerateInvoicesActionTest.java | 2 +- .../billing/PublishInvoicesActionTest.java | 2 +- .../GenerateSpec11ReportActionTest.java | 2 +- .../registry/testing/CloudTasksHelper.java | 2 +- .../registry/tmch/NordnUploadActionTest.java | 2 +- 28 files changed, 117 insertions(+), 117 deletions(-) rename {util/src/main/java/google/registry/util => core/src/main/java/google/registry/batch}/CloudTasksUtils.java (91%) rename {util/src/test/java/google/registry/util => core/src/test/java/google/registry/batch}/CloudTasksUtilsTest.java (80%) diff --git a/core/src/main/java/google/registry/batch/AsyncTaskEnqueuer.java b/core/src/main/java/google/registry/batch/AsyncTaskEnqueuer.java index 9b2f151be..ec393ad9e 100644 --- a/core/src/main/java/google/registry/batch/AsyncTaskEnqueuer.java +++ b/core/src/main/java/google/registry/batch/AsyncTaskEnqueuer.java @@ -25,7 +25,6 @@ import com.google.common.flogger.FluentLogger; import google.registry.model.EppResource; import google.registry.persistence.VKey; import google.registry.request.Action.Service; -import google.registry.util.CloudTasksUtils; import javax.inject.Inject; import org.joda.time.DateTime; import org.joda.time.Duration; @@ -86,6 +85,6 @@ public final class AsyncTaskEnqueuer { cloudTasksUtils.enqueue( QUEUE_ASYNC_ACTIONS, cloudTasksUtils.createPostTaskWithDelay( - ResaveEntityAction.PATH, Service.BACKEND.toString(), params, etaDuration)); + ResaveEntityAction.PATH, Service.BACKEND, params, etaDuration)); } } diff --git a/util/src/main/java/google/registry/util/CloudTasksUtils.java b/core/src/main/java/google/registry/batch/CloudTasksUtils.java similarity index 91% rename from util/src/main/java/google/registry/util/CloudTasksUtils.java rename to core/src/main/java/google/registry/batch/CloudTasksUtils.java index 7e4046928..cb1c62814 100644 --- a/util/src/main/java/google/registry/util/CloudTasksUtils.java +++ b/core/src/main/java/google/registry/batch/CloudTasksUtils.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package google.registry.util; +package google.registry.batch; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; @@ -36,12 +36,18 @@ import com.google.common.net.MediaType; import com.google.common.net.UrlEscapers; import com.google.protobuf.ByteString; import com.google.protobuf.util.Timestamps; +import google.registry.config.RegistryConfig.Config; +import google.registry.request.Action.Service; +import google.registry.util.Clock; +import google.registry.util.CollectionUtils; +import google.registry.util.Retrier; import java.io.Serializable; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Optional; import java.util.Random; import java.util.function.Supplier; +import javax.inject.Inject; import org.joda.time.Duration; /** Utilities for dealing with Cloud Tasks. */ @@ -57,11 +63,12 @@ public class CloudTasksUtils implements Serializable { private final String locationId; private final SerializableCloudTasksClient client; + @Inject public CloudTasksUtils( Retrier retrier, Clock clock, - String projectId, - String locationId, + @Config("projectId") String projectId, + @Config("locationId") String locationId, SerializableCloudTasksClient client) { this.retrier = retrier; this.clock = clock; @@ -108,7 +115,7 @@ public class CloudTasksUtils implements Serializable { * the worker service */ private Task createTask( - String path, HttpMethod method, String service, Multimap params) { + String path, HttpMethod method, Service service, Multimap params) { checkArgument( path != null && !path.isEmpty() && path.charAt(0) == '/', "The path must start with a '/'."); @@ -119,7 +126,8 @@ public class CloudTasksUtils implements Serializable { AppEngineHttpRequest.Builder requestBuilder = AppEngineHttpRequest.newBuilder() .setHttpMethod(method) - .setAppEngineRouting(AppEngineRouting.newBuilder().setService(service).build()); + .setAppEngineRouting( + AppEngineRouting.newBuilder().setService(service.toString()).build()); if (!CollectionUtils.isNullOrEmpty(params)) { Escaper escaper = UrlEscapers.urlPathSegmentEscaper(); @@ -165,7 +173,7 @@ public class CloudTasksUtils implements Serializable { private Task createTaskWithJitter( String path, HttpMethod method, - String service, + Service service, Multimap params, Optional jitterSeconds) { if (!jitterSeconds.isPresent() || jitterSeconds.get() <= 0) { @@ -199,7 +207,7 @@ public class CloudTasksUtils implements Serializable { private Task createTaskWithDelay( String path, HttpMethod method, - String service, + Service service, Multimap params, Duration delay) { if (delay.isEqual(Duration.ZERO)) { @@ -211,11 +219,11 @@ public class CloudTasksUtils implements Serializable { .build(); } - public Task createPostTask(String path, String service, Multimap params) { + public Task createPostTask(String path, Service service, Multimap params) { return createTask(path, HttpMethod.POST, service, params); } - public Task createGetTask(String path, String service, Multimap params) { + public Task createGetTask(String path, Service service, Multimap params) { return createTask(path, HttpMethod.GET, service, params); } @@ -224,7 +232,7 @@ public class CloudTasksUtils implements Serializable { */ public Task createPostTaskWithJitter( String path, - String service, + Service service, Multimap params, Optional jitterSeconds) { return createTaskWithJitter(path, HttpMethod.POST, service, params, jitterSeconds); @@ -235,7 +243,7 @@ public class CloudTasksUtils implements Serializable { */ public Task createGetTaskWithJitter( String path, - String service, + Service service, Multimap params, Optional jitterSeconds) { return createTaskWithJitter(path, HttpMethod.GET, service, params, jitterSeconds); @@ -243,13 +251,13 @@ public class CloudTasksUtils implements Serializable { /** Create a {@link Task} via HTTP.POST that will be delayed for {@code delay}. */ public Task createPostTaskWithDelay( - String path, String service, Multimap params, Duration delay) { + String path, Service service, Multimap params, Duration delay) { return createTaskWithDelay(path, HttpMethod.POST, service, params, delay); } /** Create a {@link Task} via HTTP.GET that will be delayed for {@code delay}. */ public Task createGetTaskWithDelay( - String path, String service, Multimap params, Duration delay) { + String path, Service service, Multimap params, Duration delay) { return createTaskWithDelay(path, HttpMethod.GET, service, params, delay); } diff --git a/core/src/main/java/google/registry/beam/rde/RdeIO.java b/core/src/main/java/google/registry/beam/rde/RdeIO.java index 40a412704..1d978d453 100644 --- a/core/src/main/java/google/registry/beam/rde/RdeIO.java +++ b/core/src/main/java/google/registry/beam/rde/RdeIO.java @@ -26,6 +26,7 @@ import com.google.auto.value.AutoValue; import com.google.cloud.storage.BlobId; import com.google.common.collect.ImmutableMultimap; import com.google.common.flogger.FluentLogger; +import google.registry.batch.CloudTasksUtils; import google.registry.gcs.GcsUtils; import google.registry.keyring.api.PgpHelper; import google.registry.model.common.Cursor; @@ -46,7 +47,6 @@ import google.registry.rde.RdeUtil; import google.registry.request.Action.Service; import google.registry.request.RequestParameters; import google.registry.tldconfig.idn.IdnTableEnum; -import google.registry.util.CloudTasksUtils; import google.registry.xjc.rdeheader.XjcRdeHeader; import google.registry.xjc.rdeheader.XjcRdeHeaderElement; import google.registry.xml.ValidationMode; @@ -306,7 +306,7 @@ public class RdeIO { RDE_UPLOAD_QUEUE, cloudTasksUtils.createPostTaskWithDelay( RdeUploadAction.PATH, - Service.BACKEND.getServiceId(), + Service.BACKEND, ImmutableMultimap.of( RequestParameters.PARAM_TLD, key.tld(), @@ -318,7 +318,7 @@ public class RdeIO { BRDA_QUEUE, cloudTasksUtils.createPostTaskWithDelay( BrdaCopyAction.PATH, - Service.BACKEND.getServiceId(), + Service.BACKEND, ImmutableMultimap.of( RequestParameters.PARAM_TLD, key.tld(), diff --git a/core/src/main/java/google/registry/beam/rde/RdePipeline.java b/core/src/main/java/google/registry/beam/rde/RdePipeline.java index 87d3148a6..549e30c13 100644 --- a/core/src/main/java/google/registry/beam/rde/RdePipeline.java +++ b/core/src/main/java/google/registry/beam/rde/RdePipeline.java @@ -38,6 +38,7 @@ import com.google.common.flogger.FluentLogger; import com.google.common.io.BaseEncoding; import dagger.BindsInstance; import dagger.Component; +import google.registry.batch.CloudTasksUtils; import google.registry.beam.common.RegistryJpaIO; import google.registry.beam.common.RegistryPipelineOptions; import google.registry.config.CloudTasksUtilsModule; @@ -62,7 +63,6 @@ import google.registry.rde.DepositFragment; import google.registry.rde.PendingDeposit; import google.registry.rde.PendingDeposit.PendingDepositCoder; import google.registry.rde.RdeMarshaller; -import google.registry.util.CloudTasksUtils; import google.registry.util.UtilsModule; import google.registry.xml.ValidationMode; import java.io.ByteArrayInputStream; diff --git a/core/src/main/java/google/registry/config/CloudTasksUtilsModule.java b/core/src/main/java/google/registry/config/CloudTasksUtilsModule.java index 8b2ad096c..109d3771a 100644 --- a/core/src/main/java/google/registry/config/CloudTasksUtilsModule.java +++ b/core/src/main/java/google/registry/config/CloudTasksUtilsModule.java @@ -19,18 +19,15 @@ import com.google.cloud.tasks.v2.CloudTasksClient; import com.google.cloud.tasks.v2.CloudTasksSettings; import dagger.Module; import dagger.Provides; +import google.registry.batch.CloudTasksUtils; +import google.registry.batch.CloudTasksUtils.GcpCloudTasksClient; +import google.registry.batch.CloudTasksUtils.SerializableCloudTasksClient; import google.registry.config.CredentialModule.DefaultCredential; import google.registry.config.RegistryConfig.Config; -import google.registry.util.Clock; -import google.registry.util.CloudTasksUtils; -import google.registry.util.CloudTasksUtils.GcpCloudTasksClient; -import google.registry.util.CloudTasksUtils.SerializableCloudTasksClient; import google.registry.util.GoogleCredentialsBundle; -import google.registry.util.Retrier; import java.io.IOException; import java.io.Serializable; import java.util.function.Supplier; -import javax.inject.Singleton; /** * A {@link Module} that provides {@link CloudTasksUtils}. @@ -41,17 +38,6 @@ import javax.inject.Singleton; @Module public abstract class CloudTasksUtilsModule { - @Singleton - @Provides - public static CloudTasksUtils provideCloudTasksUtils( - @Config("projectId") String projectId, - @Config("locationId") String locationId, - SerializableCloudTasksClient client, - Retrier retrier, - Clock clock) { - return new CloudTasksUtils(retrier, clock, projectId, locationId, client); - } - // Provides a supplier instead of using a Dagger @Provider because the latter is not serializable. @Provides public static Supplier provideCloudTasksClientSupplier( diff --git a/core/src/main/java/google/registry/config/RegistryConfig.java b/core/src/main/java/google/registry/config/RegistryConfig.java index 6f9634caa..d6b824b90 100644 --- a/core/src/main/java/google/registry/config/RegistryConfig.java +++ b/core/src/main/java/google/registry/config/RegistryConfig.java @@ -930,7 +930,7 @@ public final class RegistryConfig { *

Note that this uses {@code @Named} instead of {@code @Config} so that it can be used from * the low-level util package, which cannot have a dependency on the config package. * - * @see google.registry.util.CloudTasksUtils + * @see google.registry.batch.CloudTasksUtils */ @Provides @Named("transientFailureRetries") diff --git a/core/src/main/java/google/registry/cron/TldFanoutAction.java b/core/src/main/java/google/registry/cron/TldFanoutAction.java index ef8ad074f..a41a174f0 100644 --- a/core/src/main/java/google/registry/cron/TldFanoutAction.java +++ b/core/src/main/java/google/registry/cron/TldFanoutAction.java @@ -38,6 +38,7 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Multimap; import com.google.common.collect.Streams; import com.google.common.flogger.FluentLogger; +import google.registry.batch.CloudTasksUtils; import google.registry.request.Action; import google.registry.request.Action.Service; import google.registry.request.Parameter; @@ -45,7 +46,6 @@ import google.registry.request.ParameterMap; import google.registry.request.RequestParameters; import google.registry.request.Response; import google.registry.request.auth.Auth; -import google.registry.util.CloudTasksUtils; import java.util.Optional; import java.util.stream.Stream; import javax.inject.Inject; @@ -158,6 +158,6 @@ public final class TldFanoutAction implements Runnable { params.put(RequestParameters.PARAM_TLD, tld); } return cloudTasksUtils.createPostTaskWithJitter( - endpoint, Service.BACKEND.toString(), params, jitterSeconds); + endpoint, Service.BACKEND, params, jitterSeconds); } } diff --git a/core/src/main/java/google/registry/dns/PublishDnsUpdatesAction.java b/core/src/main/java/google/registry/dns/PublishDnsUpdatesAction.java index 5edf27d3f..1ee910823 100644 --- a/core/src/main/java/google/registry/dns/PublishDnsUpdatesAction.java +++ b/core/src/main/java/google/registry/dns/PublishDnsUpdatesAction.java @@ -35,6 +35,7 @@ import com.google.common.collect.ImmutableMultimap; import com.google.common.flogger.FluentLogger; import com.google.common.net.InternetDomainName; import dagger.Lazy; +import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.Config; import google.registry.dns.DnsMetrics.ActionStatus; import google.registry.dns.DnsMetrics.CommitStatus; @@ -54,7 +55,6 @@ import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.request.lock.LockHandler; import google.registry.util.Clock; -import google.registry.util.CloudTasksUtils; import google.registry.util.DomainNameUtils; import google.registry.util.EmailMessage; import google.registry.util.SendEmailService; @@ -339,7 +339,7 @@ public final class PublishDnsUpdatesAction implements Runnable, Callable { DNS_PUBLISH_PUSH_QUEUE_NAME, cloudTasksUtils.createPostTask( PATH, - Service.BACKEND.toString(), + Service.BACKEND, ImmutableMultimap.builder() .put(PARAM_TLD, tld) .put(PARAM_DNS_WRITER, dnsWriter) diff --git a/core/src/main/java/google/registry/dns/ReadDnsQueueAction.java b/core/src/main/java/google/registry/dns/ReadDnsQueueAction.java index a7d1faaa2..7a87facfc 100644 --- a/core/src/main/java/google/registry/dns/ReadDnsQueueAction.java +++ b/core/src/main/java/google/registry/dns/ReadDnsQueueAction.java @@ -44,6 +44,7 @@ import com.google.common.collect.Ordering; import com.google.common.flogger.FluentLogger; import com.google.common.hash.HashFunction; import com.google.common.hash.Hashing; +import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.Config; import google.registry.dns.DnsConstants.TargetType; import google.registry.model.tld.Registries; @@ -53,7 +54,6 @@ import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.util.Clock; -import google.registry.util.CloudTasksUtils; import java.io.UnsupportedEncodingException; import java.util.Collection; import java.util.Comparator; @@ -372,7 +372,7 @@ public final class ReadDnsQueueAction implements Runnable { Task task = cloudTasksUtils.createPostTaskWithJitter( PublishDnsUpdatesAction.PATH, - Service.BACKEND.toString(), + Service.BACKEND, ImmutableMultimap.builder() .put(PARAM_TLD, tld) .put(PARAM_DNS_WRITER, dnsWriter) diff --git a/core/src/main/java/google/registry/flows/host/HostUpdateFlow.java b/core/src/main/java/google/registry/flows/host/HostUpdateFlow.java index abf303faa..7ab4dd862 100644 --- a/core/src/main/java/google/registry/flows/host/HostUpdateFlow.java +++ b/core/src/main/java/google/registry/flows/host/HostUpdateFlow.java @@ -36,6 +36,7 @@ import com.google.cloud.tasks.v2.Task; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableSet; import google.registry.batch.AsyncTaskEnqueuer; +import google.registry.batch.CloudTasksUtils; import google.registry.dns.DnsQueue; import google.registry.dns.RefreshDnsOnHostRenameAction; import google.registry.flows.EppException; @@ -65,7 +66,6 @@ import google.registry.model.host.HostHistory; import google.registry.model.reporting.IcannReportingTypes.ActivityReportField; import google.registry.persistence.VKey; import google.registry.request.Action.Service; -import google.registry.util.CloudTasksUtils; import java.util.Objects; import java.util.Optional; import javax.inject.Inject; @@ -280,7 +280,7 @@ public final class HostUpdateFlow implements TransactionalFlow { Task task = cloudTasksUtils.createPostTask( RefreshDnsOnHostRenameAction.PATH, - Service.BACKEND.toString(), + Service.BACKEND, ImmutableMultimap.of(PARAM_HOST_KEY, existingHost.createVKey().stringify())); cloudTasksUtils.enqueue(QUEUE_HOST_RENAME, task); } diff --git a/core/src/main/java/google/registry/loadtest/LoadTestAction.java b/core/src/main/java/google/registry/loadtest/LoadTestAction.java index 3b82dac7d..cbc40b76c 100644 --- a/core/src/main/java/google/registry/loadtest/LoadTestAction.java +++ b/core/src/main/java/google/registry/loadtest/LoadTestAction.java @@ -28,13 +28,13 @@ import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Iterators; import com.google.common.flogger.FluentLogger; import com.google.protobuf.Timestamp; +import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryEnvironment; import google.registry.request.Action; import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.security.XsrfTokenManager; -import google.registry.util.CloudTasksUtils; import java.time.Instant; import java.util.Arrays; import java.util.Iterator; @@ -337,7 +337,7 @@ public class LoadTestAction implements Runnable { cloudTasksUtils .createPostTask( "/_dr/epptool", - Service.TOOLS.toString(), + Service.TOOLS, ImmutableMultimap.of( "clientId", registrarId, diff --git a/core/src/main/java/google/registry/rde/RdeUploadAction.java b/core/src/main/java/google/registry/rde/RdeUploadAction.java index f5fb98aa4..93579eca6 100644 --- a/core/src/main/java/google/registry/rde/RdeUploadAction.java +++ b/core/src/main/java/google/registry/rde/RdeUploadAction.java @@ -38,6 +38,7 @@ import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.SftpProgressMonitor; import dagger.Lazy; +import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.Config; import google.registry.gcs.GcsUtils; import google.registry.keyring.api.KeyModule.Key; @@ -56,7 +57,6 @@ import google.registry.request.RequestParameters; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Clock; -import google.registry.util.CloudTasksUtils; import google.registry.util.Retrier; import google.registry.util.TeeOutputStream; import java.io.ByteArrayInputStream; @@ -131,8 +131,7 @@ public final class RdeUploadAction implements Runnable, EscrowTask { prefix.ifPresent(s -> params.put(RdeModule.PARAM_PREFIX, s)); cloudTasksUtils.enqueue( RDE_REPORT_QUEUE, - cloudTasksUtils.createPostTask( - RdeReportAction.PATH, Service.BACKEND.getServiceId(), params)); + cloudTasksUtils.createPostTask(RdeReportAction.PATH, Service.BACKEND, params)); } @Override diff --git a/core/src/main/java/google/registry/reporting/billing/GenerateInvoicesAction.java b/core/src/main/java/google/registry/reporting/billing/GenerateInvoicesAction.java index 7528b762a..dd553c4f9 100644 --- a/core/src/main/java/google/registry/reporting/billing/GenerateInvoicesAction.java +++ b/core/src/main/java/google/registry/reporting/billing/GenerateInvoicesAction.java @@ -27,6 +27,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMultimap; import com.google.common.flogger.FluentLogger; import com.google.common.net.MediaType; +import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.Config; import google.registry.config.RegistryEnvironment; import google.registry.persistence.PersistenceModule; @@ -37,7 +38,6 @@ import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Clock; -import google.registry.util.CloudTasksUtils; import java.io.IOException; import javax.inject.Inject; import org.joda.time.Duration; @@ -140,7 +140,7 @@ public class GenerateInvoicesAction implements Runnable { ReportingModule.BEAM_QUEUE, cloudTasksUtils.createPostTaskWithDelay( PublishInvoicesAction.PATH, - Service.BACKEND.toString(), + Service.BACKEND, ImmutableMultimap.of( ReportingModule.PARAM_JOB_ID, jobId, diff --git a/core/src/main/java/google/registry/reporting/billing/PublishInvoicesAction.java b/core/src/main/java/google/registry/reporting/billing/PublishInvoicesAction.java index c28a52f66..3ea8031a8 100644 --- a/core/src/main/java/google/registry/reporting/billing/PublishInvoicesAction.java +++ b/core/src/main/java/google/registry/reporting/billing/PublishInvoicesAction.java @@ -26,6 +26,7 @@ import com.google.api.services.dataflow.model.Job; import com.google.common.collect.ImmutableMultimap; import com.google.common.flogger.FluentLogger; import com.google.common.net.MediaType; +import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.Config; import google.registry.reporting.ReportingModule; import google.registry.request.Action; @@ -33,7 +34,6 @@ import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; -import google.registry.util.CloudTasksUtils; import java.io.IOException; import javax.inject.Inject; import org.joda.time.YearMonth; @@ -127,7 +127,7 @@ public class PublishInvoicesAction implements Runnable { BillingModule.CRON_QUEUE, cloudTasksUtils.createPostTask( CopyDetailReportsAction.PATH, - Service.BACKEND.toString(), + Service.BACKEND, ImmutableMultimap.of(PARAM_YEAR_MONTH, yearMonth.toString()))); } } diff --git a/core/src/main/java/google/registry/reporting/icann/IcannReportingStagingAction.java b/core/src/main/java/google/registry/reporting/icann/IcannReportingStagingAction.java index 501a994a9..1d5a86cb9 100644 --- a/core/src/main/java/google/registry/reporting/icann/IcannReportingStagingAction.java +++ b/core/src/main/java/google/registry/reporting/icann/IcannReportingStagingAction.java @@ -26,6 +26,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.flogger.FluentLogger; import com.google.common.net.MediaType; +import google.registry.batch.CloudTasksUtils; import google.registry.bigquery.BigqueryJobFailureException; import google.registry.config.RegistryConfig.Config; import google.registry.reporting.icann.IcannReportingModule.ReportType; @@ -34,7 +35,6 @@ import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; -import google.registry.util.CloudTasksUtils; import google.registry.util.EmailMessage; import google.registry.util.Retrier; import google.registry.util.SendEmailService; @@ -123,7 +123,7 @@ public final class IcannReportingStagingAction implements Runnable { CRON_QUEUE, cloudTasksUtils.createPostTaskWithDelay( IcannReportingUploadAction.PATH, - Service.BACKEND.toString(), + Service.BACKEND, null, Duration.standardMinutes(2))); return null; diff --git a/core/src/main/java/google/registry/reporting/spec11/GenerateSpec11ReportAction.java b/core/src/main/java/google/registry/reporting/spec11/GenerateSpec11ReportAction.java index 2ef242df5..2a6af1776 100644 --- a/core/src/main/java/google/registry/reporting/spec11/GenerateSpec11ReportAction.java +++ b/core/src/main/java/google/registry/reporting/spec11/GenerateSpec11ReportAction.java @@ -27,6 +27,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMultimap; import com.google.common.flogger.FluentLogger; import com.google.common.net.MediaType; +import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.Config; import google.registry.config.RegistryEnvironment; import google.registry.keyring.api.KeyModule.Key; @@ -37,7 +38,6 @@ import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Clock; -import google.registry.util.CloudTasksUtils; import java.io.IOException; import javax.inject.Inject; import org.joda.time.Duration; @@ -135,7 +135,7 @@ public class GenerateSpec11ReportAction implements Runnable { ReportingModule.BEAM_QUEUE, cloudTasksUtils.createPostTaskWithDelay( PublishSpec11ReportAction.PATH, - Service.BACKEND.toString(), + Service.BACKEND, ImmutableMultimap.of( ReportingModule.PARAM_JOB_ID, jobId, diff --git a/core/src/main/java/google/registry/tmch/NordnUploadAction.java b/core/src/main/java/google/registry/tmch/NordnUploadAction.java index 78172f7f0..f550e3bf3 100644 --- a/core/src/main/java/google/registry/tmch/NordnUploadAction.java +++ b/core/src/main/java/google/registry/tmch/NordnUploadAction.java @@ -46,6 +46,7 @@ import com.google.common.collect.ImmutableSortedSet; import com.google.common.collect.Lists; import com.google.common.collect.Ordering; import com.google.common.flogger.FluentLogger; +import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.Config; import google.registry.model.domain.Domain; import google.registry.request.Action; @@ -57,7 +58,6 @@ import google.registry.request.UrlConnectionUtils; import google.registry.request.auth.Auth; import google.registry.tmch.LordnTaskUtils.LordnPhase; import google.registry.util.Clock; -import google.registry.util.CloudTasksUtils; import google.registry.util.Retrier; import google.registry.util.UrlConnectionException; import java.io.IOException; @@ -333,7 +333,7 @@ public final class NordnUploadAction implements Runnable { // The actionLogId is used to uniquely associate the verify task back to the upload task. return cloudTasksUtils.createPostTaskWithDelay( NordnVerifyAction.PATH, - Service.BACKEND.toString(), + Service.BACKEND, ImmutableMultimap.builder() .put(NordnVerifyAction.NORDN_URL_PARAM, url.toString()) .put(NordnVerifyAction.NORDN_LOG_ID_PARAM, actionLogId) diff --git a/core/src/main/java/google/registry/tools/DomainLockUtils.java b/core/src/main/java/google/registry/tools/DomainLockUtils.java index 69dd84f40..26a4519fa 100644 --- a/core/src/main/java/google/registry/tools/DomainLockUtils.java +++ b/core/src/main/java/google/registry/tools/DomainLockUtils.java @@ -23,6 +23,7 @@ import static google.registry.tools.LockOrUnlockDomainCommand.REGISTRY_LOCK_STAT import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; +import google.registry.batch.CloudTasksUtils; import google.registry.batch.RelockDomainAction; import google.registry.config.RegistryConfig.Config; import google.registry.model.billing.BillingEvent; @@ -34,7 +35,6 @@ import google.registry.model.reporting.HistoryEntry; import google.registry.model.tld.Registry; import google.registry.model.tld.RegistryLockDao; import google.registry.request.Action.Service; -import google.registry.util.CloudTasksUtils; import google.registry.util.StringGenerator; import java.util.Optional; import javax.annotation.Nullable; @@ -223,7 +223,7 @@ public final class DomainLockUtils { QUEUE_ASYNC_ACTIONS, cloudTasksUtils.createPostTaskWithDelay( RelockDomainAction.PATH, - Service.BACKEND.toString(), + Service.BACKEND, ImmutableMultimap.of( RelockDomainAction.OLD_UNLOCK_REVISION_ID_PARAM, String.valueOf(lockRevisionId), diff --git a/core/src/main/java/google/registry/tools/GenerateEscrowDepositCommand.java b/core/src/main/java/google/registry/tools/GenerateEscrowDepositCommand.java index 987519fb1..b62f34b46 100644 --- a/core/src/main/java/google/registry/tools/GenerateEscrowDepositCommand.java +++ b/core/src/main/java/google/registry/tools/GenerateEscrowDepositCommand.java @@ -28,11 +28,11 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.ParameterException; import com.beust.jcommander.Parameters; import com.google.common.collect.ImmutableMultimap; +import google.registry.batch.CloudTasksUtils; import google.registry.model.rde.RdeMode; import google.registry.rde.RdeStagingAction; import google.registry.request.Action.Service; import google.registry.tools.params.DateTimeParameter; -import google.registry.util.CloudTasksUtils; import java.util.List; import java.util.stream.Collectors; import javax.inject.Inject; @@ -122,7 +122,7 @@ final class GenerateEscrowDepositCommand implements Command { cloudTasksUtils.enqueue( RDE_REPORT_QUEUE, cloudTasksUtils.createPostTask( - RdeStagingAction.PATH, Service.BACKEND.toString(), paramsBuilder.build())); + RdeStagingAction.PATH, Service.BACKEND, paramsBuilder.build())); } } diff --git a/core/src/main/java/google/registry/ui/server/registrar/RegistrarSettingsAction.java b/core/src/main/java/google/registry/ui/server/registrar/RegistrarSettingsAction.java index 761a1718b..f45cae0b5 100644 --- a/core/src/main/java/google/registry/ui/server/registrar/RegistrarSettingsAction.java +++ b/core/src/main/java/google/registry/ui/server/registrar/RegistrarSettingsAction.java @@ -36,6 +36,7 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import com.google.common.collect.Streams; import com.google.common.flogger.FluentLogger; +import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryEnvironment; import google.registry.export.sheet.SyncRegistrarsSheetAction; import google.registry.flows.certs.CertificateChecker; @@ -58,7 +59,6 @@ import google.registry.ui.forms.FormException; import google.registry.ui.forms.FormFieldException; import google.registry.ui.server.RegistrarFormFields; import google.registry.ui.server.SendEmailUtils; -import google.registry.util.CloudTasksUtils; import google.registry.util.CollectionUtils; import google.registry.util.DiffUtils; import java.util.HashSet; @@ -643,7 +643,7 @@ public class RegistrarSettingsAction implements Runnable, JsonActionRunner.JsonA cloudTasksUtils.enqueue( SyncRegistrarsSheetAction.QUEUE, cloudTasksUtils.createGetTask( - SyncRegistrarsSheetAction.PATH, Service.BACKEND.toString(), ImmutableMultimap.of())); + SyncRegistrarsSheetAction.PATH, Service.BACKEND, ImmutableMultimap.of())); } String environment = Ascii.toLowerCase(String.valueOf(RegistryEnvironment.get())); sendEmailUtils.sendEmail( diff --git a/core/src/test/java/google/registry/batch/AsyncTaskEnqueuerTest.java b/core/src/test/java/google/registry/batch/AsyncTaskEnqueuerTest.java index ea9745643..05db49c01 100644 --- a/core/src/test/java/google/registry/batch/AsyncTaskEnqueuerTest.java +++ b/core/src/test/java/google/registry/batch/AsyncTaskEnqueuerTest.java @@ -30,7 +30,6 @@ import google.registry.testing.CloudTasksHelper; import google.registry.testing.CloudTasksHelper.TaskMatcher; import google.registry.testing.FakeClock; import google.registry.util.CapturingLogHandler; -import google.registry.util.CloudTasksUtils; import google.registry.util.JdkLoggerConfig; import java.util.logging.Level; import org.joda.time.DateTime; diff --git a/util/src/test/java/google/registry/util/CloudTasksUtilsTest.java b/core/src/test/java/google/registry/batch/CloudTasksUtilsTest.java similarity index 80% rename from util/src/test/java/google/registry/util/CloudTasksUtilsTest.java rename to core/src/test/java/google/registry/batch/CloudTasksUtilsTest.java index c1cf29aba..77b92aa20 100644 --- a/util/src/test/java/google/registry/util/CloudTasksUtilsTest.java +++ b/core/src/test/java/google/registry/batch/CloudTasksUtilsTest.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package google.registry.util; +package google.registry.batch; import static com.google.common.truth.Truth.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -27,9 +27,11 @@ import com.google.cloud.tasks.v2.Task; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.LinkedListMultimap; +import google.registry.batch.CloudTasksUtils.SerializableCloudTasksClient; +import google.registry.request.Action.Service; import google.registry.testing.FakeClock; import google.registry.testing.FakeSleeper; -import google.registry.util.CloudTasksUtils.SerializableCloudTasksClient; +import google.registry.util.Retrier; import java.nio.charset.StandardCharsets; import java.time.Instant; import java.util.Optional; @@ -59,22 +61,22 @@ public class CloudTasksUtilsTest { @Test void testSuccess_createGetTasks() { - Task task = cloudTasksUtils.createGetTask("/the/path", "myservice", params); + Task task = cloudTasksUtils.createGetTask("/the/path", Service.BACKEND, params); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getAppEngineHttpRequest().getRelativeUri()) .isEqualTo("/the/path?key1=val1&key2=val2&key1=val3"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @Test void testSuccess_createPostTasks() { - Task task = cloudTasksUtils.createPostTask("/the/path", "myservice", params); + Task task = cloudTasksUtils.createPostTask("/the/path", Service.BACKEND, params); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.POST); assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type")) .isEqualTo("application/x-www-form-urlencoded"); assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8)) @@ -84,42 +86,43 @@ public class CloudTasksUtilsTest { @Test void testSuccess_createGetTasks_withNullParams() { - Task task = cloudTasksUtils.createGetTask("/the/path", "myservice", null); + Task task = cloudTasksUtils.createGetTask("/the/path", Service.BACKEND, null); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @Test void testSuccess_createPostTasks_withNullParams() { - Task task = cloudTasksUtils.createPostTask("/the/path", "myservice", null); + Task task = cloudTasksUtils.createPostTask("/the/path", Service.BACKEND, null); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.POST); assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8)).isEmpty(); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @Test void testSuccess_createGetTasks_withEmptyParams() { - Task task = cloudTasksUtils.createGetTask("/the/path", "myservice", ImmutableMultimap.of()); + Task task = cloudTasksUtils.createGetTask("/the/path", Service.BACKEND, ImmutableMultimap.of()); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @Test void testSuccess_createPostTasks_withEmptyParams() { - Task task = cloudTasksUtils.createPostTask("/the/path", "myservice", ImmutableMultimap.of()); + Task task = + cloudTasksUtils.createPostTask("/the/path", Service.BACKEND, ImmutableMultimap.of()); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.POST); assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8)).isEmpty(); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @@ -128,12 +131,13 @@ public class CloudTasksUtilsTest { @Test void testSuccess_createGetTasks_withJitterSeconds() { Task task = - cloudTasksUtils.createGetTaskWithJitter("/the/path", "myservice", params, Optional.of(100)); + cloudTasksUtils.createGetTaskWithJitter( + "/the/path", Service.BACKEND, params, Optional.of(100)); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getAppEngineHttpRequest().getRelativeUri()) .isEqualTo("/the/path?key1=val1&key2=val2&key1=val3"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); Instant scheduleTime = Instant.ofEpochSecond(task.getScheduleTime().getSeconds()); Instant lowerBoundTime = Instant.ofEpochMilli(clock.nowUtc().getMillis()); @@ -147,11 +151,12 @@ public class CloudTasksUtilsTest { @Test void testSuccess_createPostTasks_withJitterSeconds() { Task task = - cloudTasksUtils.createPostTaskWithJitter("/the/path", "myservice", params, Optional.of(1)); + cloudTasksUtils.createPostTaskWithJitter( + "/the/path", Service.BACKEND, params, Optional.of(1)); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.POST); assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type")) .isEqualTo("application/x-www-form-urlencoded"); assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8)) @@ -170,11 +175,11 @@ public class CloudTasksUtilsTest { void testSuccess_createPostTasks_withEmptyJitterSeconds() { Task task = cloudTasksUtils.createPostTaskWithJitter( - "/the/path", "myservice", params, Optional.empty()); + "/the/path", Service.BACKEND, params, Optional.empty()); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.POST); assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type")) .isEqualTo("application/x-www-form-urlencoded"); assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8)) @@ -185,23 +190,25 @@ public class CloudTasksUtilsTest { @Test void testSuccess_createGetTasks_withEmptyJitterSeconds() { Task task = - cloudTasksUtils.createGetTaskWithJitter("/the/path", "myservice", params, Optional.empty()); + cloudTasksUtils.createGetTaskWithJitter( + "/the/path", Service.BACKEND, params, Optional.empty()); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getAppEngineHttpRequest().getRelativeUri()) .isEqualTo("/the/path?key1=val1&key2=val2&key1=val3"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @Test void testSuccess_createPostTasks_withZeroJitterSeconds() { Task task = - cloudTasksUtils.createPostTaskWithJitter("/the/path", "myservice", params, Optional.of(0)); + cloudTasksUtils.createPostTaskWithJitter( + "/the/path", Service.BACKEND, params, Optional.of(0)); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.POST); assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type")) .isEqualTo("application/x-www-form-urlencoded"); assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8)) @@ -212,12 +219,13 @@ public class CloudTasksUtilsTest { @Test void testSuccess_createGetTasks_withZeroJitterSeconds() { Task task = - cloudTasksUtils.createGetTaskWithJitter("/the/path", "myservice", params, Optional.of(0)); + cloudTasksUtils.createGetTaskWithJitter( + "/the/path", Service.BACKEND, params, Optional.of(0)); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getAppEngineHttpRequest().getRelativeUri()) .isEqualTo("/the/path?key1=val1&key2=val2&key1=val3"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @@ -225,12 +233,12 @@ public class CloudTasksUtilsTest { void testSuccess_createGetTasks_withDelay() { Task task = cloudTasksUtils.createGetTaskWithDelay( - "/the/path", "myservice", params, Duration.standardMinutes(10)); + "/the/path", Service.BACKEND, params, Duration.standardMinutes(10)); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getAppEngineHttpRequest().getRelativeUri()) .isEqualTo("/the/path?key1=val1&key2=val2&key1=val3"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(Instant.ofEpochSecond(task.getScheduleTime().getSeconds())) .isEqualTo(Instant.ofEpochMilli(clock.nowUtc().plusMinutes(10).getMillis())); } @@ -239,11 +247,11 @@ public class CloudTasksUtilsTest { void testSuccess_createPostTasks_withDelay() { Task task = cloudTasksUtils.createPostTaskWithDelay( - "/the/path", "myservice", params, Duration.standardMinutes(10)); + "/the/path", Service.BACKEND, params, Duration.standardMinutes(10)); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.POST); assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type")) .isEqualTo("application/x-www-form-urlencoded"); assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8)) @@ -260,7 +268,7 @@ public class CloudTasksUtilsTest { IllegalArgumentException.class, () -> cloudTasksUtils.createGetTaskWithDelay( - "/the/path", "myservice", params, Duration.standardMinutes(-10))); + "/the/path", Service.BACKEND, params, Duration.standardMinutes(-10))); assertThat(thrown).hasMessageThat().isEqualTo("Negative duration is not supported."); } @@ -271,18 +279,19 @@ public class CloudTasksUtilsTest { IllegalArgumentException.class, () -> cloudTasksUtils.createGetTaskWithDelay( - "/the/path", "myservice", params, Duration.standardMinutes(-10))); + "/the/path", Service.BACKEND, params, Duration.standardMinutes(-10))); assertThat(thrown).hasMessageThat().isEqualTo("Negative duration is not supported."); } @Test void testSuccess_createPostTasks_withZeroDelay() { Task task = - cloudTasksUtils.createPostTaskWithDelay("/the/path", "myservice", params, Duration.ZERO); + cloudTasksUtils.createPostTaskWithDelay( + "/the/path", Service.BACKEND, params, Duration.ZERO); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.POST); assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type")) .isEqualTo("application/x-www-form-urlencoded"); assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8)) @@ -293,12 +302,12 @@ public class CloudTasksUtilsTest { @Test void testSuccess_createGetTasks_withZeroDelay() { Task task = - cloudTasksUtils.createGetTaskWithDelay("/the/path", "myservice", params, Duration.ZERO); + cloudTasksUtils.createGetTaskWithDelay("/the/path", Service.BACKEND, params, Duration.ZERO); assertThat(task.getAppEngineHttpRequest().getHttpMethod()).isEqualTo(HttpMethod.GET); assertThat(task.getAppEngineHttpRequest().getRelativeUri()) .isEqualTo("/the/path?key1=val1&key2=val2&key1=val3"); assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService()) - .isEqualTo("myservice"); + .isEqualTo(Service.BACKEND.toString()); assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0); } @@ -306,26 +315,26 @@ public class CloudTasksUtilsTest { void testFailure_illegalPath() { assertThrows( IllegalArgumentException.class, - () -> cloudTasksUtils.createPostTask("the/path", "myservice", params)); + () -> cloudTasksUtils.createPostTask("the/path", Service.BACKEND, params)); assertThrows( IllegalArgumentException.class, - () -> cloudTasksUtils.createPostTask(null, "myservice", params)); + () -> cloudTasksUtils.createPostTask(null, Service.BACKEND, params)); assertThrows( IllegalArgumentException.class, - () -> cloudTasksUtils.createPostTask("", "myservice", params)); + () -> cloudTasksUtils.createPostTask("", Service.BACKEND, params)); } @Test void testSuccess_enqueueTask() { - Task task = cloudTasksUtils.createGetTask("/the/path", "myservice", params); + Task task = cloudTasksUtils.createGetTask("/the/path", Service.BACKEND, params); cloudTasksUtils.enqueue("test-queue", task); verify(mockClient).enqueue("project", "location", "test-queue", task); } @Test void testSuccess_enqueueTasks_varargs() { - Task task1 = cloudTasksUtils.createGetTask("/the/path", "myservice", params); - Task task2 = cloudTasksUtils.createGetTask("/other/path", "yourservice", params); + Task task1 = cloudTasksUtils.createGetTask("/the/path", Service.BACKEND, params); + Task task2 = cloudTasksUtils.createGetTask("/other/path", Service.TOOLS, params); cloudTasksUtils.enqueue("test-queue", task1, task2); verify(mockClient).enqueue("project", "location", "test-queue", task1); verify(mockClient).enqueue("project", "location", "test-queue", task2); @@ -333,8 +342,8 @@ public class CloudTasksUtilsTest { @Test void testSuccess_enqueueTasks_iterable() { - Task task1 = cloudTasksUtils.createGetTask("/the/path", "myservice", params); - Task task2 = cloudTasksUtils.createGetTask("/other/path", "yourservice", params); + Task task1 = cloudTasksUtils.createGetTask("/the/path", Service.BACKEND, params); + Task task2 = cloudTasksUtils.createGetTask("/other/path", Service.TOOLS, params); cloudTasksUtils.enqueue("test-queue", ImmutableList.of(task1, task2)); verify(mockClient).enqueue("project", "location", "test-queue", task1); verify(mockClient).enqueue("project", "location", "test-queue", task2); diff --git a/core/src/test/java/google/registry/flows/EppTestComponent.java b/core/src/test/java/google/registry/flows/EppTestComponent.java index b60039c7a..b2146438e 100644 --- a/core/src/test/java/google/registry/flows/EppTestComponent.java +++ b/core/src/test/java/google/registry/flows/EppTestComponent.java @@ -20,6 +20,7 @@ import dagger.Provides; import dagger.Subcomponent; import google.registry.batch.AsyncTaskEnqueuer; import google.registry.batch.AsyncTaskEnqueuerTest; +import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.ConfigModule; import google.registry.config.RegistryConfig.ConfigModule.TmchCaMode; import google.registry.dns.DnsQueue; @@ -36,7 +37,6 @@ import google.registry.testing.FakeSleeper; import google.registry.tmch.TmchCertificateAuthority; import google.registry.tmch.TmchXmlSignature; import google.registry.util.Clock; -import google.registry.util.CloudTasksUtils; import google.registry.util.Sleeper; import javax.inject.Singleton; diff --git a/core/src/test/java/google/registry/reporting/billing/GenerateInvoicesActionTest.java b/core/src/test/java/google/registry/reporting/billing/GenerateInvoicesActionTest.java index 41c241028..ea89ca014 100644 --- a/core/src/test/java/google/registry/reporting/billing/GenerateInvoicesActionTest.java +++ b/core/src/test/java/google/registry/reporting/billing/GenerateInvoicesActionTest.java @@ -23,6 +23,7 @@ import static org.mockito.Mockito.when; import com.google.cloud.tasks.v2.HttpMethod; import com.google.common.net.MediaType; +import google.registry.batch.CloudTasksUtils; import google.registry.beam.BeamActionTestBase; import google.registry.persistence.transaction.JpaTestExtensions; import google.registry.persistence.transaction.JpaTestExtensions.JpaIntegrationTestExtension; @@ -30,7 +31,6 @@ import google.registry.reporting.ReportingModule; import google.registry.testing.CloudTasksHelper; import google.registry.testing.CloudTasksHelper.TaskMatcher; import google.registry.testing.FakeClock; -import google.registry.util.CloudTasksUtils; import java.io.IOException; import org.joda.time.Duration; import org.joda.time.YearMonth; diff --git a/core/src/test/java/google/registry/reporting/billing/PublishInvoicesActionTest.java b/core/src/test/java/google/registry/reporting/billing/PublishInvoicesActionTest.java index 48d2e7bfa..d70ff12db 100644 --- a/core/src/test/java/google/registry/reporting/billing/PublishInvoicesActionTest.java +++ b/core/src/test/java/google/registry/reporting/billing/PublishInvoicesActionTest.java @@ -31,10 +31,10 @@ import com.google.api.services.dataflow.Dataflow.Projects.Locations.Jobs.Get; import com.google.api.services.dataflow.model.Job; import com.google.cloud.tasks.v2.HttpMethod; import com.google.common.net.MediaType; +import google.registry.batch.CloudTasksUtils; import google.registry.testing.CloudTasksHelper; import google.registry.testing.CloudTasksHelper.TaskMatcher; import google.registry.testing.FakeResponse; -import google.registry.util.CloudTasksUtils; import java.io.IOException; import org.joda.time.YearMonth; import org.junit.jupiter.api.BeforeEach; diff --git a/core/src/test/java/google/registry/reporting/spec11/GenerateSpec11ReportActionTest.java b/core/src/test/java/google/registry/reporting/spec11/GenerateSpec11ReportActionTest.java index cc71db739..993a96333 100644 --- a/core/src/test/java/google/registry/reporting/spec11/GenerateSpec11ReportActionTest.java +++ b/core/src/test/java/google/registry/reporting/spec11/GenerateSpec11ReportActionTest.java @@ -21,12 +21,12 @@ import static org.mockito.Mockito.when; import com.google.cloud.tasks.v2.HttpMethod; import com.google.common.net.MediaType; +import google.registry.batch.CloudTasksUtils; import google.registry.beam.BeamActionTestBase; import google.registry.reporting.ReportingModule; import google.registry.testing.CloudTasksHelper; import google.registry.testing.CloudTasksHelper.TaskMatcher; import google.registry.testing.FakeClock; -import google.registry.util.CloudTasksUtils; import java.io.IOException; import org.joda.time.DateTime; import org.joda.time.Duration; diff --git a/core/src/test/java/google/registry/testing/CloudTasksHelper.java b/core/src/test/java/google/registry/testing/CloudTasksHelper.java index c985fb5af..84a34eff7 100644 --- a/core/src/test/java/google/registry/testing/CloudTasksHelper.java +++ b/core/src/test/java/google/registry/testing/CloudTasksHelper.java @@ -43,8 +43,8 @@ import com.google.protobuf.Timestamp; import com.google.protobuf.util.Timestamps; import dagger.Module; import dagger.Provides; +import google.registry.batch.CloudTasksUtils; import google.registry.model.ImmutableObject; -import google.registry.util.CloudTasksUtils; import google.registry.util.Retrier; import java.io.Serializable; import java.net.URI; diff --git a/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java b/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java index 613d7d5e5..f803b1e7c 100644 --- a/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java +++ b/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java @@ -50,6 +50,7 @@ import com.google.appengine.api.taskqueue.TransientFailureException; import com.google.apphosting.api.DeadlineExceededException; import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableList; +import google.registry.batch.CloudTasksUtils; import google.registry.model.domain.Domain; import google.registry.model.domain.launch.LaunchNotice; import google.registry.model.tld.Registry; @@ -64,7 +65,6 @@ import google.registry.testing.FakeSleeper; import google.registry.testing.FakeUrlConnectionService; import google.registry.testing.TaskQueueExtension; import google.registry.tmch.LordnTaskUtils.LordnPhase; -import google.registry.util.CloudTasksUtils; import google.registry.util.Retrier; import google.registry.util.UrlConnectionException; import java.io.ByteArrayInputStream;