From 967d04efcebebdaecd0b58e62fe0fade4eeef293 Mon Sep 17 00:00:00 2001 From: gbrodman Date: Mon, 24 Mar 2025 11:52:12 -0400 Subject: [PATCH] Include TLD in reserved/registered lists too (#2725) We already do this for premium terms, but it's nice to do it for the other list types too https://b.corp.google.com/issues/390053672 --- .../export/ExportDomainListsAction.java | 4 +-- .../export/ExportReservedTermsAction.java | 4 +-- .../export/ExportDomainListsActionTest.java | 28 +++++++++++-------- .../export/ExportReservedTermsActionTest.java | 3 +- 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/core/src/main/java/google/registry/export/ExportDomainListsAction.java b/core/src/main/java/google/registry/export/ExportDomainListsAction.java index ba86797c3..88b4712c9 100644 --- a/core/src/main/java/google/registry/export/ExportDomainListsAction.java +++ b/core/src/main/java/google/registry/export/ExportDomainListsAction.java @@ -78,7 +78,7 @@ public class ExportDomainListsAction implements Runnable { ORDER BY d.domain_name"""; // This may be a CSV, but it is uses a .txt file extension for back-compatibility - static final String REGISTERED_DOMAINS_FILENAME = "registered_domains.txt"; + static final String REGISTERED_DOMAINS_FILENAME_FORMAT = "registered_domains_%s.txt"; @Inject Clock clock; @Inject DriveConnection driveConnection; @@ -146,7 +146,7 @@ public class ExportDomainListsAction implements Runnable { } else { String resultMsg = driveConnection.createOrUpdateFile( - REGISTERED_DOMAINS_FILENAME, + String.format(REGISTERED_DOMAINS_FILENAME_FORMAT, tldStr), MediaType.PLAIN_TEXT_UTF_8, tld.getDriveFolderId(), domains.getBytes(UTF_8)); diff --git a/core/src/main/java/google/registry/export/ExportReservedTermsAction.java b/core/src/main/java/google/registry/export/ExportReservedTermsAction.java index 36398d639..a1815f41e 100644 --- a/core/src/main/java/google/registry/export/ExportReservedTermsAction.java +++ b/core/src/main/java/google/registry/export/ExportReservedTermsAction.java @@ -43,7 +43,7 @@ public class ExportReservedTermsAction implements Runnable { private static final FluentLogger logger = FluentLogger.forEnclosingClass(); static final MediaType EXPORT_MIME_TYPE = MediaType.PLAIN_TEXT_UTF_8; - static final String RESERVED_TERMS_FILENAME = "reserved_terms.txt"; + static final String RESERVED_TERMS_FILENAME_FORMAT = "reserved_terms_%s.txt"; @Inject DriveConnection driveConnection; @Inject ExportUtils exportUtils; @@ -79,7 +79,7 @@ public class ExportReservedTermsAction implements Runnable { } else { resultMsg = driveConnection.createOrUpdateFile( - RESERVED_TERMS_FILENAME, + String.format(RESERVED_TERMS_FILENAME_FORMAT, tldStr), EXPORT_MIME_TYPE, tld.getDriveFolderId(), exportUtils.exportReservedTerms(tld).getBytes(UTF_8)); diff --git a/core/src/test/java/google/registry/export/ExportDomainListsActionTest.java b/core/src/test/java/google/registry/export/ExportDomainListsActionTest.java index f761582b6..f6b8f59c1 100644 --- a/core/src/test/java/google/registry/export/ExportDomainListsActionTest.java +++ b/core/src/test/java/google/registry/export/ExportDomainListsActionTest.java @@ -15,7 +15,6 @@ package google.registry.export; import static com.google.common.truth.Truth.assertThat; -import static google.registry.export.ExportDomainListsAction.REGISTERED_DOMAINS_FILENAME; import static google.registry.model.common.FeatureFlag.FeatureName.INCLUDE_PENDING_DELETE_DATE_FOR_DOMAINS; import static google.registry.model.common.FeatureFlag.FeatureStatus.ACTIVE; import static google.registry.model.common.FeatureFlag.FeatureStatus.INACTIVE; @@ -83,10 +82,11 @@ class ExportDomainListsActionTest { persistFeatureFlag(INACTIVE); } - private void verifyExportedToDrive(String folderId, String domains) throws Exception { + private void verifyExportedToDrive(String folderId, String filename, String domains) + throws Exception { verify(driveConnection) .createOrUpdateFile( - eq(REGISTERED_DOMAINS_FILENAME), + eq(filename), eq(MediaType.PLAIN_TEXT_UTF_8), eq(folderId), bytesExportedToDrive.capture()); @@ -103,7 +103,7 @@ class ExportDomainListsActionTest { String tlds = new String(gcsUtils.readBytesFrom(existingFile), UTF_8); // Check that it only contains the active domains, not the dead one. assertThat(tlds).isEqualTo("onetwo.tld\nrudnitzky.tld"); - verifyExportedToDrive("brouhaha", "onetwo.tld\nrudnitzky.tld"); + verifyExportedToDrive("brouhaha", "registered_domains_tld.txt", "onetwo.tld\nrudnitzky.tld"); verifyNoMoreInteractions(driveConnection); } @@ -118,7 +118,7 @@ class ExportDomainListsActionTest { String tlds = new String(gcsUtils.readBytesFrom(existingFile), UTF_8); // Check that it only contains the active domains, not the dead one. assertThat(tlds).isEqualTo("onetwo.tld,\nrudnitzky.tld,"); - verifyExportedToDrive("brouhaha", "onetwo.tld,\nrudnitzky.tld,"); + verifyExportedToDrive("brouhaha", "registered_domains_tld.txt", "onetwo.tld,\nrudnitzky.tld,"); verifyNoMoreInteractions(driveConnection); } @@ -137,7 +137,7 @@ class ExportDomainListsActionTest { assertThrows(StorageException.class, () -> gcsUtils.readBytesFrom(nonexistentFile)); ImmutableList ls = gcsUtils.listFolderObjects("outputbucket", ""); assertThat(ls).containsExactly("tld.txt"); - verifyExportedToDrive("brouhaha", "onetwo.tld\nrudnitzky.tld"); + verifyExportedToDrive("brouhaha", "registered_domains_tld.txt", "onetwo.tld\nrudnitzky.tld"); verifyNoMoreInteractions(driveConnection); } @@ -157,7 +157,7 @@ class ExportDomainListsActionTest { assertThrows(StorageException.class, () -> gcsUtils.readBytesFrom(nonexistentFile)); ImmutableList ls = gcsUtils.listFolderObjects("outputbucket", ""); assertThat(ls).containsExactly("tld.txt"); - verifyExportedToDrive("brouhaha", "onetwo.tld,\nrudnitzky.tld,"); + verifyExportedToDrive("brouhaha", "registered_domains_tld.txt", "onetwo.tld,\nrudnitzky.tld,"); verifyNoMoreInteractions(driveConnection); } @@ -189,7 +189,9 @@ class ExportDomainListsActionTest { action.run(); verifyExportedToDrive( - "brouhaha", "active.tld,\npendingdelete.tld,2020-02-05T02:02:02.000Z\nredemption.tld,"); + "brouhaha", + "registered_domains_tld.txt", + "active.tld,\npendingdelete.tld,2020-02-05T02:02:02.000Z\nredemption.tld,"); } @Test @@ -215,8 +217,9 @@ class ExportDomainListsActionTest { BlobId thirdTldFile = BlobId.of("outputbucket", "tldthree.txt"); String evenMoreTlds = new String(gcsUtils.readBytesFrom(thirdTldFile), UTF_8).trim(); assertThat(evenMoreTlds).isEqualTo("cupid.tldthree"); - verifyExportedToDrive("brouhaha", "dasher.tld\nprancer.tld"); - verifyExportedToDrive("hooray", "buddy.tldtwo\nrudolph.tldtwo\nsanta.tldtwo"); + verifyExportedToDrive("brouhaha", "registered_domains_tld.txt", "dasher.tld\nprancer.tld"); + verifyExportedToDrive( + "hooray", "registered_domains_tldtwo.txt", "buddy.tldtwo\nrudolph.tldtwo\nsanta.tldtwo"); // tldthree does not have a drive id, so no export to drive is performed. verifyNoMoreInteractions(driveConnection); } @@ -245,8 +248,9 @@ class ExportDomainListsActionTest { BlobId thirdTldFile = BlobId.of("outputbucket", "tldthree.txt"); String evenMoreTlds = new String(gcsUtils.readBytesFrom(thirdTldFile), UTF_8).trim(); assertThat(evenMoreTlds).isEqualTo("cupid.tldthree,"); - verifyExportedToDrive("brouhaha", "dasher.tld,\nprancer.tld,"); - verifyExportedToDrive("hooray", "buddy.tldtwo,\nrudolph.tldtwo,\nsanta.tldtwo,"); + verifyExportedToDrive("brouhaha", "registered_domains_tld.txt", "dasher.tld,\nprancer.tld,"); + verifyExportedToDrive( + "hooray", "registered_domains_tldtwo.txt", "buddy.tldtwo,\nrudolph.tldtwo,\nsanta.tldtwo,"); // tldthree does not have a drive id, so no export to drive is performed. verifyNoMoreInteractions(driveConnection); } diff --git a/core/src/test/java/google/registry/export/ExportReservedTermsActionTest.java b/core/src/test/java/google/registry/export/ExportReservedTermsActionTest.java index 21b9d32cd..d9ef57a75 100644 --- a/core/src/test/java/google/registry/export/ExportReservedTermsActionTest.java +++ b/core/src/test/java/google/registry/export/ExportReservedTermsActionTest.java @@ -16,7 +16,6 @@ package google.registry.export; import static com.google.common.truth.Truth.assertThat; import static google.registry.export.ExportReservedTermsAction.EXPORT_MIME_TYPE; -import static google.registry.export.ExportReservedTermsAction.RESERVED_TERMS_FILENAME; import static google.registry.testing.DatabaseHelper.createTld; import static google.registry.testing.DatabaseHelper.persistReservedList; import static google.registry.testing.DatabaseHelper.persistResource; @@ -77,7 +76,7 @@ public class ExportReservedTermsActionTest { runAction("tld"); byte[] expected = "# This is a disclaimer.\ncat\nlol\n".getBytes(UTF_8); verify(driveConnection) - .createOrUpdateFile(RESERVED_TERMS_FILENAME, EXPORT_MIME_TYPE, "brouhaha", expected); + .createOrUpdateFile("reserved_terms_tld.txt", EXPORT_MIME_TYPE, "brouhaha", expected); assertThat(response.getStatus()).isEqualTo(SC_OK); assertThat(response.getPayload()).isEqualTo("1001"); }