From 86d227c748f73863b31bcaa7722610bd7e9d8088 Mon Sep 17 00:00:00 2001 From: Lai Jiang Date: Wed, 2 Feb 2022 21:54:42 -0500 Subject: [PATCH] Copy the latest revision of BRDA during upload (#1508) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The revision was hardcoded to 0, which caused problem when we need to re-run BRDA. --- This change is [Reviewable](https://reviewable.io/reviews/google/nomulus/1508) --- core/src/main/java/google/registry/rde/BrdaCopyAction.java | 7 ++++++- .../test/java/google/registry/rde/BrdaCopyActionTest.java | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/google/registry/rde/BrdaCopyAction.java b/core/src/main/java/google/registry/rde/BrdaCopyAction.java index e77f65c3a..8ec3495d0 100644 --- a/core/src/main/java/google/registry/rde/BrdaCopyAction.java +++ b/core/src/main/java/google/registry/rde/BrdaCopyAction.java @@ -24,6 +24,7 @@ import google.registry.config.RegistryConfig.Config; import google.registry.gcs.GcsUtils; import google.registry.keyring.api.KeyModule.Key; import google.registry.model.rde.RdeNamingUtils; +import google.registry.model.rde.RdeRevision; import google.registry.request.Action; import google.registry.request.Parameter; import google.registry.request.RequestParameters; @@ -86,7 +87,11 @@ public final class BrdaCopyAction implements Runnable { } private void copyAsRyde() throws IOException { - String nameWithoutPrefix = RdeNamingUtils.makeRydeFilename(tld, watermark, THIN, 1, 0); + int revision = + RdeRevision.getCurrentRevision(tld, watermark, THIN) + .orElseThrow( + () -> new IllegalStateException("RdeRevision was not set on generated deposit")); + String nameWithoutPrefix = RdeNamingUtils.makeRydeFilename(tld, watermark, THIN, 1, revision); String name = prefix.orElse("") + nameWithoutPrefix; BlobId xmlFilename = BlobId.of(stagingBucket, name + ".xml.ghostryde"); BlobId xmlLengthFilename = BlobId.of(stagingBucket, name + ".xml.length"); diff --git a/core/src/test/java/google/registry/rde/BrdaCopyActionTest.java b/core/src/test/java/google/registry/rde/BrdaCopyActionTest.java index 1cee71b42..1020dbf63 100644 --- a/core/src/test/java/google/registry/rde/BrdaCopyActionTest.java +++ b/core/src/test/java/google/registry/rde/BrdaCopyActionTest.java @@ -16,6 +16,7 @@ package google.registry.rde; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; +import static google.registry.persistence.transaction.TransactionManagerFactory.tm; import static google.registry.testing.SystemInfo.hasCommand; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.jupiter.api.Assumptions.assumeTrue; @@ -27,6 +28,8 @@ import com.google.common.io.CharStreams; import com.google.common.io.Files; import google.registry.gcs.GcsUtils; import google.registry.keyring.api.Keyring; +import google.registry.model.rde.RdeMode; +import google.registry.model.rde.RdeRevision; import google.registry.testing.AppEngineExtension; import google.registry.testing.BouncyCastleProviderExtension; import google.registry.testing.FakeKeyringModule; @@ -109,6 +112,10 @@ public class BrdaCopyActionTest { action.receiverKey = receiverKey; action.signingKey = signingKey; action.stagingDecryptionKey = decryptKey; + tm().transact( + () -> { + RdeRevision.saveRevision("lol", DateTime.parse("2010-10-17TZ"), RdeMode.THIN, 0); + }); } @ParameterizedTest