diff --git a/core/src/main/java/google/registry/flows/domain/DomainCheckFlow.java b/core/src/main/java/google/registry/flows/domain/DomainCheckFlow.java index 43a70b1d0..cde6ea441 100644 --- a/core/src/main/java/google/registry/flows/domain/DomainCheckFlow.java +++ b/core/src/main/java/google/registry/flows/domain/DomainCheckFlow.java @@ -38,7 +38,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; -import com.google.common.flogger.FluentLogger; import com.google.common.net.InternetDomainName; import google.registry.config.RegistryConfig.Config; import google.registry.flows.EppException; @@ -122,7 +121,6 @@ import org.joda.time.DateTime; @ReportingSpec(ActivityReportField.DOMAIN_CHECK) public final class DomainCheckFlow implements Flow { - private static final FluentLogger logger = FluentLogger.forEnclosingClass(); @Inject ResourceCommand resourceCommand; @Inject ExtensionManager extensionManager; @Inject EppInput eppInput; diff --git a/core/src/main/java/google/registry/tmch/NordnUploadAction.java b/core/src/main/java/google/registry/tmch/NordnUploadAction.java index a9374f4c4..4503e08f8 100644 --- a/core/src/main/java/google/registry/tmch/NordnUploadAction.java +++ b/core/src/main/java/google/registry/tmch/NordnUploadAction.java @@ -15,7 +15,6 @@ package google.registry.tmch; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.net.HttpHeaders.LOCATION; import static com.google.common.net.MediaType.CSV_UTF_8; import static google.registry.persistence.transaction.QueryComposer.Comparator.EQ; @@ -26,23 +25,13 @@ import static google.registry.tmch.LordnTaskUtils.COLUMNS_SUNRISE; import static google.registry.tmch.LordnTaskUtils.getCsvLineForClaimsDomain; import static google.registry.tmch.LordnTaskUtils.getCsvLineForSunriseDomain; import static java.nio.charset.StandardCharsets.US_ASCII; -import static java.nio.charset.StandardCharsets.UTF_8; import static javax.servlet.http.HttpServletResponse.SC_ACCEPTED; import com.google.api.client.http.HttpMethods; -import com.google.appengine.api.taskqueue.LeaseOptions; -import com.google.appengine.api.taskqueue.Queue; -import com.google.appengine.api.taskqueue.TaskHandle; -import com.google.appengine.api.taskqueue.TransientFailureException; -import com.google.apphosting.api.DeadlineExceededException; import com.google.cloud.tasks.v2.Task; import com.google.common.base.Ascii; -import com.google.common.base.Joiner; -import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableSortedSet; -import com.google.common.collect.Ordering; import com.google.common.flogger.FluentLogger; import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.Config; @@ -65,9 +54,7 @@ import java.security.GeneralSecurityException; import java.security.SecureRandom; import java.util.List; import java.util.Random; -import java.util.concurrent.TimeUnit; import javax.inject.Inject; -import org.joda.time.DateTime; import org.joda.time.Duration; /** @@ -192,46 +179,6 @@ public final class NordnUploadAction implements Runnable { }); } - /** - * Converts a list of queue tasks, each containing a row of CSV data, into a single newline- - * delimited String. - */ - static String convertTasksToCsv(List tasks, DateTime now, String columns) { - // Use a Set for deduping purposes, so we can be idempotent in case tasks happened to be - // enqueued multiple times for a given domain create. - ImmutableSortedSet.Builder builder = - new ImmutableSortedSet.Builder<>(Ordering.natural()); - for (TaskHandle task : checkNotNull(tasks)) { - String payload = new String(task.getPayload(), UTF_8); - if (!Strings.isNullOrEmpty(payload)) { - builder.add(payload + '\n'); - } - } - ImmutableSortedSet csvLines = builder.build(); - String header = String.format("1,%s,%d\n%s\n", now, csvLines.size(), columns); - return header + Joiner.on("").join(csvLines); - } - - /** Leases and returns all tasks from the queue with the specified tag tld, in batches. */ - List loadAllTasks(Queue queue, String tld) { - ImmutableList.Builder allTasks = new ImmutableList.Builder<>(); - while (true) { - List tasks = - retrier.callWithRetry( - () -> - queue.leaseTasks( - LeaseOptions.Builder.withTag(tld) - .leasePeriod(LEASE_PERIOD.getMillis(), TimeUnit.MILLISECONDS) - .countLimit(BATCH_SIZE)), - TransientFailureException.class, - DeadlineExceededException.class); - if (tasks.isEmpty()) { - return allTasks.build(); - } - allTasks.addAll(tasks); - } - } - /** * Upload LORDN file to MarksDB. * diff --git a/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java b/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java index 52bf3bf56..8165e5e18 100644 --- a/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java +++ b/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java @@ -29,7 +29,6 @@ import static java.nio.charset.StandardCharsets.UTF_8; import static javax.servlet.http.HttpServletResponse.SC_ACCEPTED; import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.startsWith; @@ -39,15 +38,10 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; -import com.google.appengine.api.taskqueue.LeaseOptions; -import com.google.appengine.api.taskqueue.Queue; import com.google.appengine.api.taskqueue.TaskHandle; import com.google.appengine.api.taskqueue.TaskOptions; import com.google.appengine.api.taskqueue.TaskOptions.Method; -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; @@ -69,7 +63,6 @@ import java.io.ByteArrayOutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.security.SecureRandom; -import java.util.List; import java.util.Optional; import org.joda.time.DateTime; import org.joda.time.Duration; @@ -139,63 +132,6 @@ class NordnUploadActionTest { action.retrier = new Retrier(new FakeSleeper(clock), 3); } - @Test - void test_convertTasksToCsv() { - List tasks = - ImmutableList.of( - makeTaskHandle("task2", "example", "csvLine2", "lordn-sunrise"), - makeTaskHandle("task1", "example", "csvLine1", "lordn-sunrise"), - makeTaskHandle("task3", "example", "ending", "lordn-sunrise")); - assertThat(NordnUploadAction.convertTasksToCsv(tasks, clock.nowUtc(), "col1,col2")) - .isEqualTo("1,2010-05-04T10:11:12.000Z,3\ncol1,col2\ncsvLine1\ncsvLine2\nending\n"); - } - - @Test - void test_convertTasksToCsv_dedupesDuplicates() { - List tasks = - ImmutableList.of( - makeTaskHandle("task2", "example", "csvLine2", "lordn-sunrise"), - makeTaskHandle("task1", "example", "csvLine1", "lordn-sunrise"), - makeTaskHandle("task3", "example", "ending", "lordn-sunrise"), - makeTaskHandle("task1", "example", "csvLine1", "lordn-sunrise")); - assertThat(NordnUploadAction.convertTasksToCsv(tasks, clock.nowUtc(), "col1,col2")) - .isEqualTo("1,2010-05-04T10:11:12.000Z,3\ncol1,col2\ncsvLine1\ncsvLine2\nending\n"); - } - - @Test - void test_convertTasksToCsv_doesntFailOnEmptyTasks() { - assertThat(NordnUploadAction.convertTasksToCsv(ImmutableList.of(), clock.nowUtc(), "col1,col2")) - .isEqualTo("1,2010-05-04T10:11:12.000Z,0\ncol1,col2\n"); - } - - @Test - void test_convertTasksToCsv_throwsNpeOnNullTasks() { - assertThrows( - NullPointerException.class, - () -> NordnUploadAction.convertTasksToCsv(null, clock.nowUtc(), "header")); - } - - @Test - void test_loadAllTasks_retryLogic_thirdTrysTheCharm() { - Queue queue = mock(Queue.class); - TaskHandle task = new TaskHandle(TaskOptions.Builder.withTaskName("blah"), "blah"); - when(queue.leaseTasks(any(LeaseOptions.class))) - .thenThrow(TransientFailureException.class) - .thenThrow(DeadlineExceededException.class) - .thenReturn(ImmutableList.of(task), ImmutableList.of()); - assertThat(action.loadAllTasks(queue, "tld")).containsExactly(task); - } - - @Test - void test_loadAllTasks_retryLogic_allFailures() { - Queue queue = mock(Queue.class); - when(queue.leaseTasks(any(LeaseOptions.class))) - .thenThrow(new TransientFailureException("some transient error")); - RuntimeException thrown = - assertThrows(TransientFailureException.class, () -> action.loadAllTasks(queue, "tld")); - assertThat(thrown).hasMessageThat().isEqualTo("some transient error"); - } - @Test void testSuccess_noPassword_doesntSendAuthorizationHeader() { action.lordnRequestInitializer = new LordnRequestInitializer(Optional.empty());