mirror of
https://github.com/google/nomulus.git
synced 2025-07-03 01:33:29 +02:00
Change TaskQueueUtils to CloudTaskUtils in CommitLogCheckPointAction (#1409)
* Change TaskQueueUtils to CloudTaskUtils in CommitLogCheckPointAction
This commit is contained in:
parent
f729e8c117
commit
678ca22473
2 changed files with 22 additions and 19 deletions
|
@ -14,21 +14,21 @@
|
||||||
|
|
||||||
package google.registry.backup;
|
package google.registry.backup;
|
||||||
|
|
||||||
import static com.google.appengine.api.taskqueue.QueueFactory.getQueue;
|
|
||||||
import static com.google.appengine.api.taskqueue.TaskOptions.Builder.withUrl;
|
|
||||||
import static google.registry.backup.ExportCommitLogDiffAction.LOWER_CHECKPOINT_TIME_PARAM;
|
import static google.registry.backup.ExportCommitLogDiffAction.LOWER_CHECKPOINT_TIME_PARAM;
|
||||||
import static google.registry.backup.ExportCommitLogDiffAction.UPPER_CHECKPOINT_TIME_PARAM;
|
import static google.registry.backup.ExportCommitLogDiffAction.UPPER_CHECKPOINT_TIME_PARAM;
|
||||||
import static google.registry.model.ofy.ObjectifyService.auditedOfy;
|
import static google.registry.model.ofy.ObjectifyService.auditedOfy;
|
||||||
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
|
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
|
||||||
import static google.registry.util.DateTimeUtils.isBeforeOrAt;
|
import static google.registry.util.DateTimeUtils.isBeforeOrAt;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
import com.google.common.flogger.FluentLogger;
|
import com.google.common.flogger.FluentLogger;
|
||||||
import google.registry.model.ofy.CommitLogCheckpoint;
|
import google.registry.model.ofy.CommitLogCheckpoint;
|
||||||
import google.registry.model.ofy.CommitLogCheckpointRoot;
|
import google.registry.model.ofy.CommitLogCheckpointRoot;
|
||||||
import google.registry.request.Action;
|
import google.registry.request.Action;
|
||||||
|
import google.registry.request.Action.Service;
|
||||||
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.TaskQueueUtils;
|
import google.registry.util.CloudTasksUtils;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
|
|
||||||
|
@ -56,7 +56,8 @@ public final class CommitLogCheckpointAction implements Runnable {
|
||||||
|
|
||||||
@Inject Clock clock;
|
@Inject Clock clock;
|
||||||
@Inject CommitLogCheckpointStrategy strategy;
|
@Inject CommitLogCheckpointStrategy strategy;
|
||||||
@Inject TaskQueueUtils taskQueueUtils;
|
@Inject CloudTasksUtils cloudTasksUtils;
|
||||||
|
|
||||||
@Inject CommitLogCheckpointAction() {}
|
@Inject CommitLogCheckpointAction() {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -77,12 +78,16 @@ public final class CommitLogCheckpointAction implements Runnable {
|
||||||
.entities(
|
.entities(
|
||||||
checkpoint, CommitLogCheckpointRoot.create(checkpoint.getCheckpointTime()));
|
checkpoint, CommitLogCheckpointRoot.create(checkpoint.getCheckpointTime()));
|
||||||
// Enqueue a diff task between previous and current checkpoints.
|
// Enqueue a diff task between previous and current checkpoints.
|
||||||
taskQueueUtils.enqueue(
|
cloudTasksUtils.enqueue(
|
||||||
getQueue(QUEUE_NAME),
|
QUEUE_NAME,
|
||||||
withUrl(ExportCommitLogDiffAction.PATH)
|
CloudTasksUtils.createGetTask(
|
||||||
.param(LOWER_CHECKPOINT_TIME_PARAM, lastWrittenTime.toString())
|
ExportCommitLogDiffAction.PATH,
|
||||||
.param(
|
Service.BACKEND.toString(),
|
||||||
UPPER_CHECKPOINT_TIME_PARAM, checkpoint.getCheckpointTime().toString()));
|
ImmutableMultimap.of(
|
||||||
|
LOWER_CHECKPOINT_TIME_PARAM,
|
||||||
|
lastWrittenTime.toString(),
|
||||||
|
UPPER_CHECKPOINT_TIME_PARAM,
|
||||||
|
checkpoint.getCheckpointTime().toString())));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,6 @@ package google.registry.backup;
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static google.registry.model.ofy.CommitLogCheckpointRoot.loadRoot;
|
import static google.registry.model.ofy.CommitLogCheckpointRoot.loadRoot;
|
||||||
import static google.registry.testing.DatabaseHelper.persistResource;
|
import static google.registry.testing.DatabaseHelper.persistResource;
|
||||||
import static google.registry.testing.TaskQueueHelper.assertNoTasksEnqueued;
|
|
||||||
import static google.registry.testing.TaskQueueHelper.assertTasksEnqueued;
|
|
||||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||||
import static org.joda.time.DateTimeZone.UTC;
|
import static org.joda.time.DateTimeZone.UTC;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
@ -28,10 +26,9 @@ import com.google.common.collect.ImmutableMap;
|
||||||
import google.registry.model.ofy.CommitLogCheckpoint;
|
import google.registry.model.ofy.CommitLogCheckpoint;
|
||||||
import google.registry.model.ofy.CommitLogCheckpointRoot;
|
import google.registry.model.ofy.CommitLogCheckpointRoot;
|
||||||
import google.registry.testing.AppEngineExtension;
|
import google.registry.testing.AppEngineExtension;
|
||||||
|
import google.registry.testing.CloudTasksHelper;
|
||||||
|
import google.registry.testing.CloudTasksHelper.TaskMatcher;
|
||||||
import google.registry.testing.FakeClock;
|
import google.registry.testing.FakeClock;
|
||||||
import google.registry.testing.TaskQueueHelper.TaskMatcher;
|
|
||||||
import google.registry.util.Retrier;
|
|
||||||
import google.registry.util.TaskQueueUtils;
|
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -50,12 +47,13 @@ public class CommitLogCheckpointActionTest {
|
||||||
|
|
||||||
private DateTime now = DateTime.now(UTC);
|
private DateTime now = DateTime.now(UTC);
|
||||||
private CommitLogCheckpointAction task = new CommitLogCheckpointAction();
|
private CommitLogCheckpointAction task = new CommitLogCheckpointAction();
|
||||||
|
private final CloudTasksHelper cloudTasksHelper = new CloudTasksHelper();
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void beforeEach() {
|
void beforeEach() {
|
||||||
task.clock = new FakeClock(now);
|
task.clock = new FakeClock(now);
|
||||||
task.strategy = strategy;
|
task.strategy = strategy;
|
||||||
task.taskQueueUtils = new TaskQueueUtils(new Retrier(null, 1));
|
task.cloudTasksUtils = cloudTasksHelper.getTestCloudTasksUtils();
|
||||||
when(strategy.computeCheckpoint())
|
when(strategy.computeCheckpoint())
|
||||||
.thenReturn(
|
.thenReturn(
|
||||||
CommitLogCheckpoint.create(
|
CommitLogCheckpoint.create(
|
||||||
|
@ -65,7 +63,7 @@ public class CommitLogCheckpointActionTest {
|
||||||
@Test
|
@Test
|
||||||
void testRun_noCheckpointEverWritten_writesCheckpointAndEnqueuesTask() {
|
void testRun_noCheckpointEverWritten_writesCheckpointAndEnqueuesTask() {
|
||||||
task.run();
|
task.run();
|
||||||
assertTasksEnqueued(
|
cloudTasksHelper.assertTasksEnqueued(
|
||||||
QUEUE_NAME,
|
QUEUE_NAME,
|
||||||
new TaskMatcher()
|
new TaskMatcher()
|
||||||
.url(ExportCommitLogDiffAction.PATH)
|
.url(ExportCommitLogDiffAction.PATH)
|
||||||
|
@ -79,7 +77,7 @@ public class CommitLogCheckpointActionTest {
|
||||||
DateTime oneMinuteAgo = now.minusMinutes(1);
|
DateTime oneMinuteAgo = now.minusMinutes(1);
|
||||||
persistResource(CommitLogCheckpointRoot.create(oneMinuteAgo));
|
persistResource(CommitLogCheckpointRoot.create(oneMinuteAgo));
|
||||||
task.run();
|
task.run();
|
||||||
assertTasksEnqueued(
|
cloudTasksHelper.assertTasksEnqueued(
|
||||||
QUEUE_NAME,
|
QUEUE_NAME,
|
||||||
new TaskMatcher()
|
new TaskMatcher()
|
||||||
.url(ExportCommitLogDiffAction.PATH)
|
.url(ExportCommitLogDiffAction.PATH)
|
||||||
|
@ -93,7 +91,7 @@ public class CommitLogCheckpointActionTest {
|
||||||
DateTime oneMinuteFromNow = now.plusMinutes(1);
|
DateTime oneMinuteFromNow = now.plusMinutes(1);
|
||||||
persistResource(CommitLogCheckpointRoot.create(oneMinuteFromNow));
|
persistResource(CommitLogCheckpointRoot.create(oneMinuteFromNow));
|
||||||
task.run();
|
task.run();
|
||||||
assertNoTasksEnqueued(QUEUE_NAME);
|
cloudTasksHelper.assertNoTasksEnqueued(QUEUE_NAME);
|
||||||
assertThat(loadRoot().getLastWrittenTime()).isEqualTo(oneMinuteFromNow);
|
assertThat(loadRoot().getLastWrittenTime()).isEqualTo(oneMinuteFromNow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue