mirror of
https://github.com/google/nomulus.git
synced 2025-07-25 20:18:34 +02:00
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).
This commit is contained in:
parent
5805b6859e
commit
b6083e227f
28 changed files with 117 additions and 117 deletions
|
@ -25,7 +25,6 @@ import com.google.common.flogger.FluentLogger;
|
||||||
import google.registry.model.EppResource;
|
import google.registry.model.EppResource;
|
||||||
import google.registry.persistence.VKey;
|
import google.registry.persistence.VKey;
|
||||||
import google.registry.request.Action.Service;
|
import google.registry.request.Action.Service;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
import org.joda.time.Duration;
|
import org.joda.time.Duration;
|
||||||
|
@ -86,6 +85,6 @@ public final class AsyncTaskEnqueuer {
|
||||||
cloudTasksUtils.enqueue(
|
cloudTasksUtils.enqueue(
|
||||||
QUEUE_ASYNC_ACTIONS,
|
QUEUE_ASYNC_ACTIONS,
|
||||||
cloudTasksUtils.createPostTaskWithDelay(
|
cloudTasksUtils.createPostTaskWithDelay(
|
||||||
ResaveEntityAction.PATH, Service.BACKEND.toString(), params, etaDuration));
|
ResaveEntityAction.PATH, Service.BACKEND, params, etaDuration));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// 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.base.Preconditions.checkArgument;
|
||||||
import static com.google.common.collect.ImmutableList.toImmutableList;
|
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.common.net.UrlEscapers;
|
||||||
import com.google.protobuf.ByteString;
|
import com.google.protobuf.ByteString;
|
||||||
import com.google.protobuf.util.Timestamps;
|
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.io.Serializable;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
import javax.inject.Inject;
|
||||||
import org.joda.time.Duration;
|
import org.joda.time.Duration;
|
||||||
|
|
||||||
/** Utilities for dealing with Cloud Tasks. */
|
/** Utilities for dealing with Cloud Tasks. */
|
||||||
|
@ -57,11 +63,12 @@ public class CloudTasksUtils implements Serializable {
|
||||||
private final String locationId;
|
private final String locationId;
|
||||||
private final SerializableCloudTasksClient client;
|
private final SerializableCloudTasksClient client;
|
||||||
|
|
||||||
|
@Inject
|
||||||
public CloudTasksUtils(
|
public CloudTasksUtils(
|
||||||
Retrier retrier,
|
Retrier retrier,
|
||||||
Clock clock,
|
Clock clock,
|
||||||
String projectId,
|
@Config("projectId") String projectId,
|
||||||
String locationId,
|
@Config("locationId") String locationId,
|
||||||
SerializableCloudTasksClient client) {
|
SerializableCloudTasksClient client) {
|
||||||
this.retrier = retrier;
|
this.retrier = retrier;
|
||||||
this.clock = clock;
|
this.clock = clock;
|
||||||
|
@ -108,7 +115,7 @@ public class CloudTasksUtils implements Serializable {
|
||||||
* the worker service</a>
|
* the worker service</a>
|
||||||
*/
|
*/
|
||||||
private Task createTask(
|
private Task createTask(
|
||||||
String path, HttpMethod method, String service, Multimap<String, String> params) {
|
String path, HttpMethod method, Service service, Multimap<String, String> params) {
|
||||||
checkArgument(
|
checkArgument(
|
||||||
path != null && !path.isEmpty() && path.charAt(0) == '/',
|
path != null && !path.isEmpty() && path.charAt(0) == '/',
|
||||||
"The path must start with a '/'.");
|
"The path must start with a '/'.");
|
||||||
|
@ -119,7 +126,8 @@ public class CloudTasksUtils implements Serializable {
|
||||||
AppEngineHttpRequest.Builder requestBuilder =
|
AppEngineHttpRequest.Builder requestBuilder =
|
||||||
AppEngineHttpRequest.newBuilder()
|
AppEngineHttpRequest.newBuilder()
|
||||||
.setHttpMethod(method)
|
.setHttpMethod(method)
|
||||||
.setAppEngineRouting(AppEngineRouting.newBuilder().setService(service).build());
|
.setAppEngineRouting(
|
||||||
|
AppEngineRouting.newBuilder().setService(service.toString()).build());
|
||||||
|
|
||||||
if (!CollectionUtils.isNullOrEmpty(params)) {
|
if (!CollectionUtils.isNullOrEmpty(params)) {
|
||||||
Escaper escaper = UrlEscapers.urlPathSegmentEscaper();
|
Escaper escaper = UrlEscapers.urlPathSegmentEscaper();
|
||||||
|
@ -165,7 +173,7 @@ public class CloudTasksUtils implements Serializable {
|
||||||
private Task createTaskWithJitter(
|
private Task createTaskWithJitter(
|
||||||
String path,
|
String path,
|
||||||
HttpMethod method,
|
HttpMethod method,
|
||||||
String service,
|
Service service,
|
||||||
Multimap<String, String> params,
|
Multimap<String, String> params,
|
||||||
Optional<Integer> jitterSeconds) {
|
Optional<Integer> jitterSeconds) {
|
||||||
if (!jitterSeconds.isPresent() || jitterSeconds.get() <= 0) {
|
if (!jitterSeconds.isPresent() || jitterSeconds.get() <= 0) {
|
||||||
|
@ -199,7 +207,7 @@ public class CloudTasksUtils implements Serializable {
|
||||||
private Task createTaskWithDelay(
|
private Task createTaskWithDelay(
|
||||||
String path,
|
String path,
|
||||||
HttpMethod method,
|
HttpMethod method,
|
||||||
String service,
|
Service service,
|
||||||
Multimap<String, String> params,
|
Multimap<String, String> params,
|
||||||
Duration delay) {
|
Duration delay) {
|
||||||
if (delay.isEqual(Duration.ZERO)) {
|
if (delay.isEqual(Duration.ZERO)) {
|
||||||
|
@ -211,11 +219,11 @@ public class CloudTasksUtils implements Serializable {
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task createPostTask(String path, String service, Multimap<String, String> params) {
|
public Task createPostTask(String path, Service service, Multimap<String, String> params) {
|
||||||
return createTask(path, HttpMethod.POST, service, params);
|
return createTask(path, HttpMethod.POST, service, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task createGetTask(String path, String service, Multimap<String, String> params) {
|
public Task createGetTask(String path, Service service, Multimap<String, String> params) {
|
||||||
return createTask(path, HttpMethod.GET, service, params);
|
return createTask(path, HttpMethod.GET, service, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,7 +232,7 @@ public class CloudTasksUtils implements Serializable {
|
||||||
*/
|
*/
|
||||||
public Task createPostTaskWithJitter(
|
public Task createPostTaskWithJitter(
|
||||||
String path,
|
String path,
|
||||||
String service,
|
Service service,
|
||||||
Multimap<String, String> params,
|
Multimap<String, String> params,
|
||||||
Optional<Integer> jitterSeconds) {
|
Optional<Integer> jitterSeconds) {
|
||||||
return createTaskWithJitter(path, HttpMethod.POST, service, params, jitterSeconds);
|
return createTaskWithJitter(path, HttpMethod.POST, service, params, jitterSeconds);
|
||||||
|
@ -235,7 +243,7 @@ public class CloudTasksUtils implements Serializable {
|
||||||
*/
|
*/
|
||||||
public Task createGetTaskWithJitter(
|
public Task createGetTaskWithJitter(
|
||||||
String path,
|
String path,
|
||||||
String service,
|
Service service,
|
||||||
Multimap<String, String> params,
|
Multimap<String, String> params,
|
||||||
Optional<Integer> jitterSeconds) {
|
Optional<Integer> jitterSeconds) {
|
||||||
return createTaskWithJitter(path, HttpMethod.GET, service, params, 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}. */
|
/** Create a {@link Task} via HTTP.POST that will be delayed for {@code delay}. */
|
||||||
public Task createPostTaskWithDelay(
|
public Task createPostTaskWithDelay(
|
||||||
String path, String service, Multimap<String, String> params, Duration delay) {
|
String path, Service service, Multimap<String, String> params, Duration delay) {
|
||||||
return createTaskWithDelay(path, HttpMethod.POST, service, params, delay);
|
return createTaskWithDelay(path, HttpMethod.POST, service, params, delay);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Create a {@link Task} via HTTP.GET that will be delayed for {@code delay}. */
|
/** Create a {@link Task} via HTTP.GET that will be delayed for {@code delay}. */
|
||||||
public Task createGetTaskWithDelay(
|
public Task createGetTaskWithDelay(
|
||||||
String path, String service, Multimap<String, String> params, Duration delay) {
|
String path, Service service, Multimap<String, String> params, Duration delay) {
|
||||||
return createTaskWithDelay(path, HttpMethod.GET, service, params, delay);
|
return createTaskWithDelay(path, HttpMethod.GET, service, params, delay);
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ import com.google.auto.value.AutoValue;
|
||||||
import com.google.cloud.storage.BlobId;
|
import com.google.cloud.storage.BlobId;
|
||||||
import com.google.common.collect.ImmutableMultimap;
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.gcs.GcsUtils;
|
import google.registry.gcs.GcsUtils;
|
||||||
import google.registry.keyring.api.PgpHelper;
|
import google.registry.keyring.api.PgpHelper;
|
||||||
import google.registry.model.common.Cursor;
|
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.Action.Service;
|
||||||
import google.registry.request.RequestParameters;
|
import google.registry.request.RequestParameters;
|
||||||
import google.registry.tldconfig.idn.IdnTableEnum;
|
import google.registry.tldconfig.idn.IdnTableEnum;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import google.registry.xjc.rdeheader.XjcRdeHeader;
|
import google.registry.xjc.rdeheader.XjcRdeHeader;
|
||||||
import google.registry.xjc.rdeheader.XjcRdeHeaderElement;
|
import google.registry.xjc.rdeheader.XjcRdeHeaderElement;
|
||||||
import google.registry.xml.ValidationMode;
|
import google.registry.xml.ValidationMode;
|
||||||
|
@ -306,7 +306,7 @@ public class RdeIO {
|
||||||
RDE_UPLOAD_QUEUE,
|
RDE_UPLOAD_QUEUE,
|
||||||
cloudTasksUtils.createPostTaskWithDelay(
|
cloudTasksUtils.createPostTaskWithDelay(
|
||||||
RdeUploadAction.PATH,
|
RdeUploadAction.PATH,
|
||||||
Service.BACKEND.getServiceId(),
|
Service.BACKEND,
|
||||||
ImmutableMultimap.of(
|
ImmutableMultimap.of(
|
||||||
RequestParameters.PARAM_TLD,
|
RequestParameters.PARAM_TLD,
|
||||||
key.tld(),
|
key.tld(),
|
||||||
|
@ -318,7 +318,7 @@ public class RdeIO {
|
||||||
BRDA_QUEUE,
|
BRDA_QUEUE,
|
||||||
cloudTasksUtils.createPostTaskWithDelay(
|
cloudTasksUtils.createPostTaskWithDelay(
|
||||||
BrdaCopyAction.PATH,
|
BrdaCopyAction.PATH,
|
||||||
Service.BACKEND.getServiceId(),
|
Service.BACKEND,
|
||||||
ImmutableMultimap.of(
|
ImmutableMultimap.of(
|
||||||
RequestParameters.PARAM_TLD,
|
RequestParameters.PARAM_TLD,
|
||||||
key.tld(),
|
key.tld(),
|
||||||
|
|
|
@ -38,6 +38,7 @@ import com.google.common.flogger.FluentLogger;
|
||||||
import com.google.common.io.BaseEncoding;
|
import com.google.common.io.BaseEncoding;
|
||||||
import dagger.BindsInstance;
|
import dagger.BindsInstance;
|
||||||
import dagger.Component;
|
import dagger.Component;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.beam.common.RegistryJpaIO;
|
import google.registry.beam.common.RegistryJpaIO;
|
||||||
import google.registry.beam.common.RegistryPipelineOptions;
|
import google.registry.beam.common.RegistryPipelineOptions;
|
||||||
import google.registry.config.CloudTasksUtilsModule;
|
import google.registry.config.CloudTasksUtilsModule;
|
||||||
|
@ -62,7 +63,6 @@ import google.registry.rde.DepositFragment;
|
||||||
import google.registry.rde.PendingDeposit;
|
import google.registry.rde.PendingDeposit;
|
||||||
import google.registry.rde.PendingDeposit.PendingDepositCoder;
|
import google.registry.rde.PendingDeposit.PendingDepositCoder;
|
||||||
import google.registry.rde.RdeMarshaller;
|
import google.registry.rde.RdeMarshaller;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import google.registry.util.UtilsModule;
|
import google.registry.util.UtilsModule;
|
||||||
import google.registry.xml.ValidationMode;
|
import google.registry.xml.ValidationMode;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
|
|
|
@ -19,18 +19,15 @@ import com.google.cloud.tasks.v2.CloudTasksClient;
|
||||||
import com.google.cloud.tasks.v2.CloudTasksSettings;
|
import com.google.cloud.tasks.v2.CloudTasksSettings;
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
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.CredentialModule.DefaultCredential;
|
||||||
import google.registry.config.RegistryConfig.Config;
|
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.GoogleCredentialsBundle;
|
||||||
import google.registry.util.Retrier;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import javax.inject.Singleton;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link Module} that provides {@link CloudTasksUtils}.
|
* A {@link Module} that provides {@link CloudTasksUtils}.
|
||||||
|
@ -41,17 +38,6 @@ import javax.inject.Singleton;
|
||||||
@Module
|
@Module
|
||||||
public abstract class CloudTasksUtilsModule {
|
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 a supplier instead of using a Dagger @Provider because the latter is not serializable.
|
||||||
@Provides
|
@Provides
|
||||||
public static Supplier<CloudTasksClient> provideCloudTasksClientSupplier(
|
public static Supplier<CloudTasksClient> provideCloudTasksClientSupplier(
|
||||||
|
|
|
@ -930,7 +930,7 @@ public final class RegistryConfig {
|
||||||
* <p>Note that this uses {@code @Named} instead of {@code @Config} so that it can be used from
|
* <p>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.
|
* 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
|
@Provides
|
||||||
@Named("transientFailureRetries")
|
@Named("transientFailureRetries")
|
||||||
|
|
|
@ -38,6 +38,7 @@ import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.Multimap;
|
import com.google.common.collect.Multimap;
|
||||||
import com.google.common.collect.Streams;
|
import com.google.common.collect.Streams;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.request.Action;
|
import google.registry.request.Action;
|
||||||
import google.registry.request.Action.Service;
|
import google.registry.request.Action.Service;
|
||||||
import google.registry.request.Parameter;
|
import google.registry.request.Parameter;
|
||||||
|
@ -45,7 +46,6 @@ import google.registry.request.ParameterMap;
|
||||||
import google.registry.request.RequestParameters;
|
import google.registry.request.RequestParameters;
|
||||||
import google.registry.request.Response;
|
import google.registry.request.Response;
|
||||||
import google.registry.request.auth.Auth;
|
import google.registry.request.auth.Auth;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
@ -158,6 +158,6 @@ public final class TldFanoutAction implements Runnable {
|
||||||
params.put(RequestParameters.PARAM_TLD, tld);
|
params.put(RequestParameters.PARAM_TLD, tld);
|
||||||
}
|
}
|
||||||
return cloudTasksUtils.createPostTaskWithJitter(
|
return cloudTasksUtils.createPostTaskWithJitter(
|
||||||
endpoint, Service.BACKEND.toString(), params, jitterSeconds);
|
endpoint, Service.BACKEND, params, jitterSeconds);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@ import com.google.common.collect.ImmutableMultimap;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
import com.google.common.net.InternetDomainName;
|
import com.google.common.net.InternetDomainName;
|
||||||
import dagger.Lazy;
|
import dagger.Lazy;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.config.RegistryConfig.Config;
|
import google.registry.config.RegistryConfig.Config;
|
||||||
import google.registry.dns.DnsMetrics.ActionStatus;
|
import google.registry.dns.DnsMetrics.ActionStatus;
|
||||||
import google.registry.dns.DnsMetrics.CommitStatus;
|
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.auth.Auth;
|
||||||
import google.registry.request.lock.LockHandler;
|
import google.registry.request.lock.LockHandler;
|
||||||
import google.registry.util.Clock;
|
import google.registry.util.Clock;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import google.registry.util.DomainNameUtils;
|
import google.registry.util.DomainNameUtils;
|
||||||
import google.registry.util.EmailMessage;
|
import google.registry.util.EmailMessage;
|
||||||
import google.registry.util.SendEmailService;
|
import google.registry.util.SendEmailService;
|
||||||
|
@ -339,7 +339,7 @@ public final class PublishDnsUpdatesAction implements Runnable, Callable<Void> {
|
||||||
DNS_PUBLISH_PUSH_QUEUE_NAME,
|
DNS_PUBLISH_PUSH_QUEUE_NAME,
|
||||||
cloudTasksUtils.createPostTask(
|
cloudTasksUtils.createPostTask(
|
||||||
PATH,
|
PATH,
|
||||||
Service.BACKEND.toString(),
|
Service.BACKEND,
|
||||||
ImmutableMultimap.<String, String>builder()
|
ImmutableMultimap.<String, String>builder()
|
||||||
.put(PARAM_TLD, tld)
|
.put(PARAM_TLD, tld)
|
||||||
.put(PARAM_DNS_WRITER, dnsWriter)
|
.put(PARAM_DNS_WRITER, dnsWriter)
|
||||||
|
|
|
@ -44,6 +44,7 @@ import com.google.common.collect.Ordering;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
import com.google.common.hash.HashFunction;
|
import com.google.common.hash.HashFunction;
|
||||||
import com.google.common.hash.Hashing;
|
import com.google.common.hash.Hashing;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.config.RegistryConfig.Config;
|
import google.registry.config.RegistryConfig.Config;
|
||||||
import google.registry.dns.DnsConstants.TargetType;
|
import google.registry.dns.DnsConstants.TargetType;
|
||||||
import google.registry.model.tld.Registries;
|
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.Parameter;
|
||||||
import google.registry.request.auth.Auth;
|
import google.registry.request.auth.Auth;
|
||||||
import google.registry.util.Clock;
|
import google.registry.util.Clock;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
@ -372,7 +372,7 @@ public final class ReadDnsQueueAction implements Runnable {
|
||||||
Task task =
|
Task task =
|
||||||
cloudTasksUtils.createPostTaskWithJitter(
|
cloudTasksUtils.createPostTaskWithJitter(
|
||||||
PublishDnsUpdatesAction.PATH,
|
PublishDnsUpdatesAction.PATH,
|
||||||
Service.BACKEND.toString(),
|
Service.BACKEND,
|
||||||
ImmutableMultimap.<String, String>builder()
|
ImmutableMultimap.<String, String>builder()
|
||||||
.put(PARAM_TLD, tld)
|
.put(PARAM_TLD, tld)
|
||||||
.put(PARAM_DNS_WRITER, dnsWriter)
|
.put(PARAM_DNS_WRITER, dnsWriter)
|
||||||
|
|
|
@ -36,6 +36,7 @@ import com.google.cloud.tasks.v2.Task;
|
||||||
import com.google.common.collect.ImmutableMultimap;
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import google.registry.batch.AsyncTaskEnqueuer;
|
import google.registry.batch.AsyncTaskEnqueuer;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.dns.DnsQueue;
|
import google.registry.dns.DnsQueue;
|
||||||
import google.registry.dns.RefreshDnsOnHostRenameAction;
|
import google.registry.dns.RefreshDnsOnHostRenameAction;
|
||||||
import google.registry.flows.EppException;
|
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.model.reporting.IcannReportingTypes.ActivityReportField;
|
||||||
import google.registry.persistence.VKey;
|
import google.registry.persistence.VKey;
|
||||||
import google.registry.request.Action.Service;
|
import google.registry.request.Action.Service;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
@ -280,7 +280,7 @@ public final class HostUpdateFlow implements TransactionalFlow {
|
||||||
Task task =
|
Task task =
|
||||||
cloudTasksUtils.createPostTask(
|
cloudTasksUtils.createPostTask(
|
||||||
RefreshDnsOnHostRenameAction.PATH,
|
RefreshDnsOnHostRenameAction.PATH,
|
||||||
Service.BACKEND.toString(),
|
Service.BACKEND,
|
||||||
ImmutableMultimap.of(PARAM_HOST_KEY, existingHost.createVKey().stringify()));
|
ImmutableMultimap.of(PARAM_HOST_KEY, existingHost.createVKey().stringify()));
|
||||||
cloudTasksUtils.enqueue(QUEUE_HOST_RENAME, task);
|
cloudTasksUtils.enqueue(QUEUE_HOST_RENAME, task);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,13 +28,13 @@ import com.google.common.collect.ImmutableMultimap;
|
||||||
import com.google.common.collect.Iterators;
|
import com.google.common.collect.Iterators;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
import com.google.protobuf.Timestamp;
|
import com.google.protobuf.Timestamp;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.config.RegistryEnvironment;
|
import google.registry.config.RegistryEnvironment;
|
||||||
import google.registry.request.Action;
|
import google.registry.request.Action;
|
||||||
import google.registry.request.Action.Service;
|
import google.registry.request.Action.Service;
|
||||||
import google.registry.request.Parameter;
|
import google.registry.request.Parameter;
|
||||||
import google.registry.request.auth.Auth;
|
import google.registry.request.auth.Auth;
|
||||||
import google.registry.security.XsrfTokenManager;
|
import google.registry.security.XsrfTokenManager;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
@ -337,7 +337,7 @@ public class LoadTestAction implements Runnable {
|
||||||
cloudTasksUtils
|
cloudTasksUtils
|
||||||
.createPostTask(
|
.createPostTask(
|
||||||
"/_dr/epptool",
|
"/_dr/epptool",
|
||||||
Service.TOOLS.toString(),
|
Service.TOOLS,
|
||||||
ImmutableMultimap.of(
|
ImmutableMultimap.of(
|
||||||
"clientId",
|
"clientId",
|
||||||
registrarId,
|
registrarId,
|
||||||
|
|
|
@ -38,6 +38,7 @@ import com.jcraft.jsch.JSch;
|
||||||
import com.jcraft.jsch.JSchException;
|
import com.jcraft.jsch.JSchException;
|
||||||
import com.jcraft.jsch.SftpProgressMonitor;
|
import com.jcraft.jsch.SftpProgressMonitor;
|
||||||
import dagger.Lazy;
|
import dagger.Lazy;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.config.RegistryConfig.Config;
|
import google.registry.config.RegistryConfig.Config;
|
||||||
import google.registry.gcs.GcsUtils;
|
import google.registry.gcs.GcsUtils;
|
||||||
import google.registry.keyring.api.KeyModule.Key;
|
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.Response;
|
||||||
import google.registry.request.auth.Auth;
|
import google.registry.request.auth.Auth;
|
||||||
import google.registry.util.Clock;
|
import google.registry.util.Clock;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import google.registry.util.Retrier;
|
import google.registry.util.Retrier;
|
||||||
import google.registry.util.TeeOutputStream;
|
import google.registry.util.TeeOutputStream;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
|
@ -131,8 +131,7 @@ public final class RdeUploadAction implements Runnable, EscrowTask {
|
||||||
prefix.ifPresent(s -> params.put(RdeModule.PARAM_PREFIX, s));
|
prefix.ifPresent(s -> params.put(RdeModule.PARAM_PREFIX, s));
|
||||||
cloudTasksUtils.enqueue(
|
cloudTasksUtils.enqueue(
|
||||||
RDE_REPORT_QUEUE,
|
RDE_REPORT_QUEUE,
|
||||||
cloudTasksUtils.createPostTask(
|
cloudTasksUtils.createPostTask(RdeReportAction.PATH, Service.BACKEND, params));
|
||||||
RdeReportAction.PATH, Service.BACKEND.getServiceId(), params));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -27,6 +27,7 @@ import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.ImmutableMultimap;
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
import com.google.common.net.MediaType;
|
import com.google.common.net.MediaType;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.config.RegistryConfig.Config;
|
import google.registry.config.RegistryConfig.Config;
|
||||||
import google.registry.config.RegistryEnvironment;
|
import google.registry.config.RegistryEnvironment;
|
||||||
import google.registry.persistence.PersistenceModule;
|
import google.registry.persistence.PersistenceModule;
|
||||||
|
@ -37,7 +38,6 @@ import google.registry.request.Parameter;
|
||||||
import google.registry.request.Response;
|
import google.registry.request.Response;
|
||||||
import google.registry.request.auth.Auth;
|
import google.registry.request.auth.Auth;
|
||||||
import google.registry.util.Clock;
|
import google.registry.util.Clock;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import org.joda.time.Duration;
|
import org.joda.time.Duration;
|
||||||
|
@ -140,7 +140,7 @@ public class GenerateInvoicesAction implements Runnable {
|
||||||
ReportingModule.BEAM_QUEUE,
|
ReportingModule.BEAM_QUEUE,
|
||||||
cloudTasksUtils.createPostTaskWithDelay(
|
cloudTasksUtils.createPostTaskWithDelay(
|
||||||
PublishInvoicesAction.PATH,
|
PublishInvoicesAction.PATH,
|
||||||
Service.BACKEND.toString(),
|
Service.BACKEND,
|
||||||
ImmutableMultimap.of(
|
ImmutableMultimap.of(
|
||||||
ReportingModule.PARAM_JOB_ID,
|
ReportingModule.PARAM_JOB_ID,
|
||||||
jobId,
|
jobId,
|
||||||
|
|
|
@ -26,6 +26,7 @@ import com.google.api.services.dataflow.model.Job;
|
||||||
import com.google.common.collect.ImmutableMultimap;
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
import com.google.common.net.MediaType;
|
import com.google.common.net.MediaType;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.config.RegistryConfig.Config;
|
import google.registry.config.RegistryConfig.Config;
|
||||||
import google.registry.reporting.ReportingModule;
|
import google.registry.reporting.ReportingModule;
|
||||||
import google.registry.request.Action;
|
import google.registry.request.Action;
|
||||||
|
@ -33,7 +34,6 @@ import google.registry.request.Action.Service;
|
||||||
import google.registry.request.Parameter;
|
import google.registry.request.Parameter;
|
||||||
import google.registry.request.Response;
|
import google.registry.request.Response;
|
||||||
import google.registry.request.auth.Auth;
|
import google.registry.request.auth.Auth;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import org.joda.time.YearMonth;
|
import org.joda.time.YearMonth;
|
||||||
|
@ -127,7 +127,7 @@ public class PublishInvoicesAction implements Runnable {
|
||||||
BillingModule.CRON_QUEUE,
|
BillingModule.CRON_QUEUE,
|
||||||
cloudTasksUtils.createPostTask(
|
cloudTasksUtils.createPostTask(
|
||||||
CopyDetailReportsAction.PATH,
|
CopyDetailReportsAction.PATH,
|
||||||
Service.BACKEND.toString(),
|
Service.BACKEND,
|
||||||
ImmutableMultimap.of(PARAM_YEAR_MONTH, yearMonth.toString())));
|
ImmutableMultimap.of(PARAM_YEAR_MONTH, yearMonth.toString())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
import com.google.common.net.MediaType;
|
import com.google.common.net.MediaType;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.bigquery.BigqueryJobFailureException;
|
import google.registry.bigquery.BigqueryJobFailureException;
|
||||||
import google.registry.config.RegistryConfig.Config;
|
import google.registry.config.RegistryConfig.Config;
|
||||||
import google.registry.reporting.icann.IcannReportingModule.ReportType;
|
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.Parameter;
|
||||||
import google.registry.request.Response;
|
import google.registry.request.Response;
|
||||||
import google.registry.request.auth.Auth;
|
import google.registry.request.auth.Auth;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import google.registry.util.EmailMessage;
|
import google.registry.util.EmailMessage;
|
||||||
import google.registry.util.Retrier;
|
import google.registry.util.Retrier;
|
||||||
import google.registry.util.SendEmailService;
|
import google.registry.util.SendEmailService;
|
||||||
|
@ -123,7 +123,7 @@ public final class IcannReportingStagingAction implements Runnable {
|
||||||
CRON_QUEUE,
|
CRON_QUEUE,
|
||||||
cloudTasksUtils.createPostTaskWithDelay(
|
cloudTasksUtils.createPostTaskWithDelay(
|
||||||
IcannReportingUploadAction.PATH,
|
IcannReportingUploadAction.PATH,
|
||||||
Service.BACKEND.toString(),
|
Service.BACKEND,
|
||||||
null,
|
null,
|
||||||
Duration.standardMinutes(2)));
|
Duration.standardMinutes(2)));
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -27,6 +27,7 @@ import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.ImmutableMultimap;
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
import com.google.common.net.MediaType;
|
import com.google.common.net.MediaType;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.config.RegistryConfig.Config;
|
import google.registry.config.RegistryConfig.Config;
|
||||||
import google.registry.config.RegistryEnvironment;
|
import google.registry.config.RegistryEnvironment;
|
||||||
import google.registry.keyring.api.KeyModule.Key;
|
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.Response;
|
||||||
import google.registry.request.auth.Auth;
|
import google.registry.request.auth.Auth;
|
||||||
import google.registry.util.Clock;
|
import google.registry.util.Clock;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import org.joda.time.Duration;
|
import org.joda.time.Duration;
|
||||||
|
@ -135,7 +135,7 @@ public class GenerateSpec11ReportAction implements Runnable {
|
||||||
ReportingModule.BEAM_QUEUE,
|
ReportingModule.BEAM_QUEUE,
|
||||||
cloudTasksUtils.createPostTaskWithDelay(
|
cloudTasksUtils.createPostTaskWithDelay(
|
||||||
PublishSpec11ReportAction.PATH,
|
PublishSpec11ReportAction.PATH,
|
||||||
Service.BACKEND.toString(),
|
Service.BACKEND,
|
||||||
ImmutableMultimap.of(
|
ImmutableMultimap.of(
|
||||||
ReportingModule.PARAM_JOB_ID,
|
ReportingModule.PARAM_JOB_ID,
|
||||||
jobId,
|
jobId,
|
||||||
|
|
|
@ -46,6 +46,7 @@ import com.google.common.collect.ImmutableSortedSet;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Ordering;
|
import com.google.common.collect.Ordering;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.config.RegistryConfig.Config;
|
import google.registry.config.RegistryConfig.Config;
|
||||||
import google.registry.model.domain.Domain;
|
import google.registry.model.domain.Domain;
|
||||||
import google.registry.request.Action;
|
import google.registry.request.Action;
|
||||||
|
@ -57,7 +58,6 @@ import google.registry.request.UrlConnectionUtils;
|
||||||
import google.registry.request.auth.Auth;
|
import google.registry.request.auth.Auth;
|
||||||
import google.registry.tmch.LordnTaskUtils.LordnPhase;
|
import google.registry.tmch.LordnTaskUtils.LordnPhase;
|
||||||
import google.registry.util.Clock;
|
import google.registry.util.Clock;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import google.registry.util.Retrier;
|
import google.registry.util.Retrier;
|
||||||
import google.registry.util.UrlConnectionException;
|
import google.registry.util.UrlConnectionException;
|
||||||
import java.io.IOException;
|
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.
|
// The actionLogId is used to uniquely associate the verify task back to the upload task.
|
||||||
return cloudTasksUtils.createPostTaskWithDelay(
|
return cloudTasksUtils.createPostTaskWithDelay(
|
||||||
NordnVerifyAction.PATH,
|
NordnVerifyAction.PATH,
|
||||||
Service.BACKEND.toString(),
|
Service.BACKEND,
|
||||||
ImmutableMultimap.<String, String>builder()
|
ImmutableMultimap.<String, String>builder()
|
||||||
.put(NordnVerifyAction.NORDN_URL_PARAM, url.toString())
|
.put(NordnVerifyAction.NORDN_URL_PARAM, url.toString())
|
||||||
.put(NordnVerifyAction.NORDN_LOG_ID_PARAM, actionLogId)
|
.put(NordnVerifyAction.NORDN_LOG_ID_PARAM, actionLogId)
|
||||||
|
|
|
@ -23,6 +23,7 @@ import static google.registry.tools.LockOrUnlockDomainCommand.REGISTRY_LOCK_STAT
|
||||||
import com.google.common.collect.ImmutableMultimap;
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.batch.RelockDomainAction;
|
import google.registry.batch.RelockDomainAction;
|
||||||
import google.registry.config.RegistryConfig.Config;
|
import google.registry.config.RegistryConfig.Config;
|
||||||
import google.registry.model.billing.BillingEvent;
|
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.Registry;
|
||||||
import google.registry.model.tld.RegistryLockDao;
|
import google.registry.model.tld.RegistryLockDao;
|
||||||
import google.registry.request.Action.Service;
|
import google.registry.request.Action.Service;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import google.registry.util.StringGenerator;
|
import google.registry.util.StringGenerator;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
@ -223,7 +223,7 @@ public final class DomainLockUtils {
|
||||||
QUEUE_ASYNC_ACTIONS,
|
QUEUE_ASYNC_ACTIONS,
|
||||||
cloudTasksUtils.createPostTaskWithDelay(
|
cloudTasksUtils.createPostTaskWithDelay(
|
||||||
RelockDomainAction.PATH,
|
RelockDomainAction.PATH,
|
||||||
Service.BACKEND.toString(),
|
Service.BACKEND,
|
||||||
ImmutableMultimap.of(
|
ImmutableMultimap.of(
|
||||||
RelockDomainAction.OLD_UNLOCK_REVISION_ID_PARAM,
|
RelockDomainAction.OLD_UNLOCK_REVISION_ID_PARAM,
|
||||||
String.valueOf(lockRevisionId),
|
String.valueOf(lockRevisionId),
|
||||||
|
|
|
@ -28,11 +28,11 @@ import com.beust.jcommander.Parameter;
|
||||||
import com.beust.jcommander.ParameterException;
|
import com.beust.jcommander.ParameterException;
|
||||||
import com.beust.jcommander.Parameters;
|
import com.beust.jcommander.Parameters;
|
||||||
import com.google.common.collect.ImmutableMultimap;
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.model.rde.RdeMode;
|
import google.registry.model.rde.RdeMode;
|
||||||
import google.registry.rde.RdeStagingAction;
|
import google.registry.rde.RdeStagingAction;
|
||||||
import google.registry.request.Action.Service;
|
import google.registry.request.Action.Service;
|
||||||
import google.registry.tools.params.DateTimeParameter;
|
import google.registry.tools.params.DateTimeParameter;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
@ -122,7 +122,7 @@ final class GenerateEscrowDepositCommand implements Command {
|
||||||
cloudTasksUtils.enqueue(
|
cloudTasksUtils.enqueue(
|
||||||
RDE_REPORT_QUEUE,
|
RDE_REPORT_QUEUE,
|
||||||
cloudTasksUtils.createPostTask(
|
cloudTasksUtils.createPostTask(
|
||||||
RdeStagingAction.PATH, Service.BACKEND.toString(), paramsBuilder.build()));
|
RdeStagingAction.PATH, Service.BACKEND, paramsBuilder.build()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,7 @@ import com.google.common.collect.Multimap;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import com.google.common.collect.Streams;
|
import com.google.common.collect.Streams;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.config.RegistryEnvironment;
|
import google.registry.config.RegistryEnvironment;
|
||||||
import google.registry.export.sheet.SyncRegistrarsSheetAction;
|
import google.registry.export.sheet.SyncRegistrarsSheetAction;
|
||||||
import google.registry.flows.certs.CertificateChecker;
|
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.forms.FormFieldException;
|
||||||
import google.registry.ui.server.RegistrarFormFields;
|
import google.registry.ui.server.RegistrarFormFields;
|
||||||
import google.registry.ui.server.SendEmailUtils;
|
import google.registry.ui.server.SendEmailUtils;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import google.registry.util.CollectionUtils;
|
import google.registry.util.CollectionUtils;
|
||||||
import google.registry.util.DiffUtils;
|
import google.registry.util.DiffUtils;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
@ -643,7 +643,7 @@ public class RegistrarSettingsAction implements Runnable, JsonActionRunner.JsonA
|
||||||
cloudTasksUtils.enqueue(
|
cloudTasksUtils.enqueue(
|
||||||
SyncRegistrarsSheetAction.QUEUE,
|
SyncRegistrarsSheetAction.QUEUE,
|
||||||
cloudTasksUtils.createGetTask(
|
cloudTasksUtils.createGetTask(
|
||||||
SyncRegistrarsSheetAction.PATH, Service.BACKEND.toString(), ImmutableMultimap.of()));
|
SyncRegistrarsSheetAction.PATH, Service.BACKEND, ImmutableMultimap.of()));
|
||||||
}
|
}
|
||||||
String environment = Ascii.toLowerCase(String.valueOf(RegistryEnvironment.get()));
|
String environment = Ascii.toLowerCase(String.valueOf(RegistryEnvironment.get()));
|
||||||
sendEmailUtils.sendEmail(
|
sendEmailUtils.sendEmail(
|
||||||
|
|
|
@ -30,7 +30,6 @@ import google.registry.testing.CloudTasksHelper;
|
||||||
import google.registry.testing.CloudTasksHelper.TaskMatcher;
|
import google.registry.testing.CloudTasksHelper.TaskMatcher;
|
||||||
import google.registry.testing.FakeClock;
|
import google.registry.testing.FakeClock;
|
||||||
import google.registry.util.CapturingLogHandler;
|
import google.registry.util.CapturingLogHandler;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import google.registry.util.JdkLoggerConfig;
|
import google.registry.util.JdkLoggerConfig;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
package google.registry.util;
|
package google.registry.batch;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
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.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableMultimap;
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
import com.google.common.collect.LinkedListMultimap;
|
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.FakeClock;
|
||||||
import google.registry.testing.FakeSleeper;
|
import google.registry.testing.FakeSleeper;
|
||||||
import google.registry.util.CloudTasksUtils.SerializableCloudTasksClient;
|
import google.registry.util.Retrier;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
@ -59,22 +61,22 @@ public class CloudTasksUtilsTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createGetTasks() {
|
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().getHttpMethod()).isEqualTo(HttpMethod.GET);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri())
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri())
|
||||||
.isEqualTo("/the/path?key1=val1&key2=val2&key1=val3");
|
.isEqualTo("/the/path?key1=val1&key2=val2&key1=val3");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createPostTasks() {
|
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().getHttpMethod()).isEqualTo(HttpMethod.POST);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type"))
|
assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type"))
|
||||||
.isEqualTo("application/x-www-form-urlencoded");
|
.isEqualTo("application/x-www-form-urlencoded");
|
||||||
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8))
|
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8))
|
||||||
|
@ -84,42 +86,43 @@ public class CloudTasksUtilsTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createGetTasks_withNullParams() {
|
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().getHttpMethod()).isEqualTo(HttpMethod.GET);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createPostTasks_withNullParams() {
|
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().getHttpMethod()).isEqualTo(HttpMethod.POST);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8)).isEmpty();
|
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8)).isEmpty();
|
||||||
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createGetTasks_withEmptyParams() {
|
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().getHttpMethod()).isEqualTo(HttpMethod.GET);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createPostTasks_withEmptyParams() {
|
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().getHttpMethod()).isEqualTo(HttpMethod.POST);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8)).isEmpty();
|
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8)).isEmpty();
|
||||||
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
|
@ -128,12 +131,13 @@ public class CloudTasksUtilsTest {
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createGetTasks_withJitterSeconds() {
|
void testSuccess_createGetTasks_withJitterSeconds() {
|
||||||
Task task =
|
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().getHttpMethod()).isEqualTo(HttpMethod.GET);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri())
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri())
|
||||||
.isEqualTo("/the/path?key1=val1&key2=val2&key1=val3");
|
.isEqualTo("/the/path?key1=val1&key2=val2&key1=val3");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
|
|
||||||
Instant scheduleTime = Instant.ofEpochSecond(task.getScheduleTime().getSeconds());
|
Instant scheduleTime = Instant.ofEpochSecond(task.getScheduleTime().getSeconds());
|
||||||
Instant lowerBoundTime = Instant.ofEpochMilli(clock.nowUtc().getMillis());
|
Instant lowerBoundTime = Instant.ofEpochMilli(clock.nowUtc().getMillis());
|
||||||
|
@ -147,11 +151,12 @@ public class CloudTasksUtilsTest {
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createPostTasks_withJitterSeconds() {
|
void testSuccess_createPostTasks_withJitterSeconds() {
|
||||||
Task task =
|
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().getHttpMethod()).isEqualTo(HttpMethod.POST);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type"))
|
assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type"))
|
||||||
.isEqualTo("application/x-www-form-urlencoded");
|
.isEqualTo("application/x-www-form-urlencoded");
|
||||||
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8))
|
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8))
|
||||||
|
@ -170,11 +175,11 @@ public class CloudTasksUtilsTest {
|
||||||
void testSuccess_createPostTasks_withEmptyJitterSeconds() {
|
void testSuccess_createPostTasks_withEmptyJitterSeconds() {
|
||||||
Task task =
|
Task task =
|
||||||
cloudTasksUtils.createPostTaskWithJitter(
|
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().getHttpMethod()).isEqualTo(HttpMethod.POST);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type"))
|
assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type"))
|
||||||
.isEqualTo("application/x-www-form-urlencoded");
|
.isEqualTo("application/x-www-form-urlencoded");
|
||||||
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8))
|
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8))
|
||||||
|
@ -185,23 +190,25 @@ public class CloudTasksUtilsTest {
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createGetTasks_withEmptyJitterSeconds() {
|
void testSuccess_createGetTasks_withEmptyJitterSeconds() {
|
||||||
Task task =
|
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().getHttpMethod()).isEqualTo(HttpMethod.GET);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri())
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri())
|
||||||
.isEqualTo("/the/path?key1=val1&key2=val2&key1=val3");
|
.isEqualTo("/the/path?key1=val1&key2=val2&key1=val3");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createPostTasks_withZeroJitterSeconds() {
|
void testSuccess_createPostTasks_withZeroJitterSeconds() {
|
||||||
Task task =
|
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().getHttpMethod()).isEqualTo(HttpMethod.POST);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type"))
|
assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type"))
|
||||||
.isEqualTo("application/x-www-form-urlencoded");
|
.isEqualTo("application/x-www-form-urlencoded");
|
||||||
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8))
|
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8))
|
||||||
|
@ -212,12 +219,13 @@ public class CloudTasksUtilsTest {
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createGetTasks_withZeroJitterSeconds() {
|
void testSuccess_createGetTasks_withZeroJitterSeconds() {
|
||||||
Task task =
|
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().getHttpMethod()).isEqualTo(HttpMethod.GET);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri())
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri())
|
||||||
.isEqualTo("/the/path?key1=val1&key2=val2&key1=val3");
|
.isEqualTo("/the/path?key1=val1&key2=val2&key1=val3");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -225,12 +233,12 @@ public class CloudTasksUtilsTest {
|
||||||
void testSuccess_createGetTasks_withDelay() {
|
void testSuccess_createGetTasks_withDelay() {
|
||||||
Task task =
|
Task task =
|
||||||
cloudTasksUtils.createGetTaskWithDelay(
|
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().getHttpMethod()).isEqualTo(HttpMethod.GET);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri())
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri())
|
||||||
.isEqualTo("/the/path?key1=val1&key2=val2&key1=val3");
|
.isEqualTo("/the/path?key1=val1&key2=val2&key1=val3");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(Instant.ofEpochSecond(task.getScheduleTime().getSeconds()))
|
assertThat(Instant.ofEpochSecond(task.getScheduleTime().getSeconds()))
|
||||||
.isEqualTo(Instant.ofEpochMilli(clock.nowUtc().plusMinutes(10).getMillis()));
|
.isEqualTo(Instant.ofEpochMilli(clock.nowUtc().plusMinutes(10).getMillis()));
|
||||||
}
|
}
|
||||||
|
@ -239,11 +247,11 @@ public class CloudTasksUtilsTest {
|
||||||
void testSuccess_createPostTasks_withDelay() {
|
void testSuccess_createPostTasks_withDelay() {
|
||||||
Task task =
|
Task task =
|
||||||
cloudTasksUtils.createPostTaskWithDelay(
|
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().getHttpMethod()).isEqualTo(HttpMethod.POST);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type"))
|
assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type"))
|
||||||
.isEqualTo("application/x-www-form-urlencoded");
|
.isEqualTo("application/x-www-form-urlencoded");
|
||||||
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8))
|
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8))
|
||||||
|
@ -260,7 +268,7 @@ public class CloudTasksUtilsTest {
|
||||||
IllegalArgumentException.class,
|
IllegalArgumentException.class,
|
||||||
() ->
|
() ->
|
||||||
cloudTasksUtils.createGetTaskWithDelay(
|
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.");
|
assertThat(thrown).hasMessageThat().isEqualTo("Negative duration is not supported.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,18 +279,19 @@ public class CloudTasksUtilsTest {
|
||||||
IllegalArgumentException.class,
|
IllegalArgumentException.class,
|
||||||
() ->
|
() ->
|
||||||
cloudTasksUtils.createGetTaskWithDelay(
|
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.");
|
assertThat(thrown).hasMessageThat().isEqualTo("Negative duration is not supported.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createPostTasks_withZeroDelay() {
|
void testSuccess_createPostTasks_withZeroDelay() {
|
||||||
Task task =
|
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().getHttpMethod()).isEqualTo(HttpMethod.POST);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri()).isEqualTo("/the/path");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type"))
|
assertThat(task.getAppEngineHttpRequest().getHeadersMap().get("Content-Type"))
|
||||||
.isEqualTo("application/x-www-form-urlencoded");
|
.isEqualTo("application/x-www-form-urlencoded");
|
||||||
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8))
|
assertThat(task.getAppEngineHttpRequest().getBody().toString(StandardCharsets.UTF_8))
|
||||||
|
@ -293,12 +302,12 @@ public class CloudTasksUtilsTest {
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_createGetTasks_withZeroDelay() {
|
void testSuccess_createGetTasks_withZeroDelay() {
|
||||||
Task task =
|
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().getHttpMethod()).isEqualTo(HttpMethod.GET);
|
||||||
assertThat(task.getAppEngineHttpRequest().getRelativeUri())
|
assertThat(task.getAppEngineHttpRequest().getRelativeUri())
|
||||||
.isEqualTo("/the/path?key1=val1&key2=val2&key1=val3");
|
.isEqualTo("/the/path?key1=val1&key2=val2&key1=val3");
|
||||||
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
assertThat(task.getAppEngineHttpRequest().getAppEngineRouting().getService())
|
||||||
.isEqualTo("myservice");
|
.isEqualTo(Service.BACKEND.toString());
|
||||||
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
assertThat(task.getScheduleTime().getSeconds()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -306,26 +315,26 @@ public class CloudTasksUtilsTest {
|
||||||
void testFailure_illegalPath() {
|
void testFailure_illegalPath() {
|
||||||
assertThrows(
|
assertThrows(
|
||||||
IllegalArgumentException.class,
|
IllegalArgumentException.class,
|
||||||
() -> cloudTasksUtils.createPostTask("the/path", "myservice", params));
|
() -> cloudTasksUtils.createPostTask("the/path", Service.BACKEND, params));
|
||||||
assertThrows(
|
assertThrows(
|
||||||
IllegalArgumentException.class,
|
IllegalArgumentException.class,
|
||||||
() -> cloudTasksUtils.createPostTask(null, "myservice", params));
|
() -> cloudTasksUtils.createPostTask(null, Service.BACKEND, params));
|
||||||
assertThrows(
|
assertThrows(
|
||||||
IllegalArgumentException.class,
|
IllegalArgumentException.class,
|
||||||
() -> cloudTasksUtils.createPostTask("", "myservice", params));
|
() -> cloudTasksUtils.createPostTask("", Service.BACKEND, params));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_enqueueTask() {
|
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);
|
cloudTasksUtils.enqueue("test-queue", task);
|
||||||
verify(mockClient).enqueue("project", "location", "test-queue", task);
|
verify(mockClient).enqueue("project", "location", "test-queue", task);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_enqueueTasks_varargs() {
|
void testSuccess_enqueueTasks_varargs() {
|
||||||
Task task1 = cloudTasksUtils.createGetTask("/the/path", "myservice", params);
|
Task task1 = cloudTasksUtils.createGetTask("/the/path", Service.BACKEND, params);
|
||||||
Task task2 = cloudTasksUtils.createGetTask("/other/path", "yourservice", params);
|
Task task2 = cloudTasksUtils.createGetTask("/other/path", Service.TOOLS, params);
|
||||||
cloudTasksUtils.enqueue("test-queue", task1, task2);
|
cloudTasksUtils.enqueue("test-queue", task1, task2);
|
||||||
verify(mockClient).enqueue("project", "location", "test-queue", task1);
|
verify(mockClient).enqueue("project", "location", "test-queue", task1);
|
||||||
verify(mockClient).enqueue("project", "location", "test-queue", task2);
|
verify(mockClient).enqueue("project", "location", "test-queue", task2);
|
||||||
|
@ -333,8 +342,8 @@ public class CloudTasksUtilsTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testSuccess_enqueueTasks_iterable() {
|
void testSuccess_enqueueTasks_iterable() {
|
||||||
Task task1 = cloudTasksUtils.createGetTask("/the/path", "myservice", params);
|
Task task1 = cloudTasksUtils.createGetTask("/the/path", Service.BACKEND, params);
|
||||||
Task task2 = cloudTasksUtils.createGetTask("/other/path", "yourservice", params);
|
Task task2 = cloudTasksUtils.createGetTask("/other/path", Service.TOOLS, params);
|
||||||
cloudTasksUtils.enqueue("test-queue", ImmutableList.of(task1, task2));
|
cloudTasksUtils.enqueue("test-queue", ImmutableList.of(task1, task2));
|
||||||
verify(mockClient).enqueue("project", "location", "test-queue", task1);
|
verify(mockClient).enqueue("project", "location", "test-queue", task1);
|
||||||
verify(mockClient).enqueue("project", "location", "test-queue", task2);
|
verify(mockClient).enqueue("project", "location", "test-queue", task2);
|
|
@ -20,6 +20,7 @@ import dagger.Provides;
|
||||||
import dagger.Subcomponent;
|
import dagger.Subcomponent;
|
||||||
import google.registry.batch.AsyncTaskEnqueuer;
|
import google.registry.batch.AsyncTaskEnqueuer;
|
||||||
import google.registry.batch.AsyncTaskEnqueuerTest;
|
import google.registry.batch.AsyncTaskEnqueuerTest;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.config.RegistryConfig.ConfigModule;
|
import google.registry.config.RegistryConfig.ConfigModule;
|
||||||
import google.registry.config.RegistryConfig.ConfigModule.TmchCaMode;
|
import google.registry.config.RegistryConfig.ConfigModule.TmchCaMode;
|
||||||
import google.registry.dns.DnsQueue;
|
import google.registry.dns.DnsQueue;
|
||||||
|
@ -36,7 +37,6 @@ import google.registry.testing.FakeSleeper;
|
||||||
import google.registry.tmch.TmchCertificateAuthority;
|
import google.registry.tmch.TmchCertificateAuthority;
|
||||||
import google.registry.tmch.TmchXmlSignature;
|
import google.registry.tmch.TmchXmlSignature;
|
||||||
import google.registry.util.Clock;
|
import google.registry.util.Clock;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import google.registry.util.Sleeper;
|
import google.registry.util.Sleeper;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import com.google.cloud.tasks.v2.HttpMethod;
|
import com.google.cloud.tasks.v2.HttpMethod;
|
||||||
import com.google.common.net.MediaType;
|
import com.google.common.net.MediaType;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.beam.BeamActionTestBase;
|
import google.registry.beam.BeamActionTestBase;
|
||||||
import google.registry.persistence.transaction.JpaTestExtensions;
|
import google.registry.persistence.transaction.JpaTestExtensions;
|
||||||
import google.registry.persistence.transaction.JpaTestExtensions.JpaIntegrationTestExtension;
|
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;
|
||||||
import google.registry.testing.CloudTasksHelper.TaskMatcher;
|
import google.registry.testing.CloudTasksHelper.TaskMatcher;
|
||||||
import google.registry.testing.FakeClock;
|
import google.registry.testing.FakeClock;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import org.joda.time.Duration;
|
import org.joda.time.Duration;
|
||||||
import org.joda.time.YearMonth;
|
import org.joda.time.YearMonth;
|
||||||
|
|
|
@ -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.api.services.dataflow.model.Job;
|
||||||
import com.google.cloud.tasks.v2.HttpMethod;
|
import com.google.cloud.tasks.v2.HttpMethod;
|
||||||
import com.google.common.net.MediaType;
|
import com.google.common.net.MediaType;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.testing.CloudTasksHelper;
|
import google.registry.testing.CloudTasksHelper;
|
||||||
import google.registry.testing.CloudTasksHelper.TaskMatcher;
|
import google.registry.testing.CloudTasksHelper.TaskMatcher;
|
||||||
import google.registry.testing.FakeResponse;
|
import google.registry.testing.FakeResponse;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import org.joda.time.YearMonth;
|
import org.joda.time.YearMonth;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
|
|
@ -21,12 +21,12 @@ import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import com.google.cloud.tasks.v2.HttpMethod;
|
import com.google.cloud.tasks.v2.HttpMethod;
|
||||||
import com.google.common.net.MediaType;
|
import com.google.common.net.MediaType;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.beam.BeamActionTestBase;
|
import google.registry.beam.BeamActionTestBase;
|
||||||
import google.registry.reporting.ReportingModule;
|
import google.registry.reporting.ReportingModule;
|
||||||
import google.registry.testing.CloudTasksHelper;
|
import google.registry.testing.CloudTasksHelper;
|
||||||
import google.registry.testing.CloudTasksHelper.TaskMatcher;
|
import google.registry.testing.CloudTasksHelper.TaskMatcher;
|
||||||
import google.registry.testing.FakeClock;
|
import google.registry.testing.FakeClock;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
import org.joda.time.Duration;
|
import org.joda.time.Duration;
|
||||||
|
|
|
@ -43,8 +43,8 @@ import com.google.protobuf.Timestamp;
|
||||||
import com.google.protobuf.util.Timestamps;
|
import com.google.protobuf.util.Timestamps;
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.model.ImmutableObject;
|
import google.registry.model.ImmutableObject;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import google.registry.util.Retrier;
|
import google.registry.util.Retrier;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
|
|
@ -50,6 +50,7 @@ import com.google.appengine.api.taskqueue.TransientFailureException;
|
||||||
import com.google.apphosting.api.DeadlineExceededException;
|
import com.google.apphosting.api.DeadlineExceededException;
|
||||||
import com.google.common.base.VerifyException;
|
import com.google.common.base.VerifyException;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import google.registry.batch.CloudTasksUtils;
|
||||||
import google.registry.model.domain.Domain;
|
import google.registry.model.domain.Domain;
|
||||||
import google.registry.model.domain.launch.LaunchNotice;
|
import google.registry.model.domain.launch.LaunchNotice;
|
||||||
import google.registry.model.tld.Registry;
|
import google.registry.model.tld.Registry;
|
||||||
|
@ -64,7 +65,6 @@ import google.registry.testing.FakeSleeper;
|
||||||
import google.registry.testing.FakeUrlConnectionService;
|
import google.registry.testing.FakeUrlConnectionService;
|
||||||
import google.registry.testing.TaskQueueExtension;
|
import google.registry.testing.TaskQueueExtension;
|
||||||
import google.registry.tmch.LordnTaskUtils.LordnPhase;
|
import google.registry.tmch.LordnTaskUtils.LordnPhase;
|
||||||
import google.registry.util.CloudTasksUtils;
|
|
||||||
import google.registry.util.Retrier;
|
import google.registry.util.Retrier;
|
||||||
import google.registry.util.UrlConnectionException;
|
import google.registry.util.UrlConnectionException;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue