From 674a914afc71cfd2da2a62d68d85e95a23d5f52b Mon Sep 17 00:00:00 2001 From: mcilwain Date: Fri, 25 May 2018 13:26:56 -0700 Subject: [PATCH] Add flag to delete domain immediately in nomulus too We've already had the need to do this on a few occasions, so it's best to make it easy rather than requiring hand-generated XML all the time. Also normalizes the boolean --registrar_request parameter to not have arity=1. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=198093829 --- .../registry/tools/DeleteDomainCommand.java | 13 +++++++++-- .../registry/tools/soy/DeleteDomain.soy | 7 ++++++ .../tools/DeleteDomainCommandTest.java | 23 ++++++++++--------- .../testdata/domain_delete_immediately.xml | 21 +++++++++++++++++ 4 files changed, 51 insertions(+), 13 deletions(-) create mode 100644 javatests/google/registry/tools/server/testdata/domain_delete_immediately.xml diff --git a/java/google/registry/tools/DeleteDomainCommand.java b/java/google/registry/tools/DeleteDomainCommand.java index 8ab855d12..35ee93b0d 100644 --- a/java/google/registry/tools/DeleteDomainCommand.java +++ b/java/google/registry/tools/DeleteDomainCommand.java @@ -35,6 +35,11 @@ final class DeleteDomainCommand extends MutatingEppToolCommand { required = true) private String domainName; + @Parameter( + names = {"--immediately"}, + description = "Whether to bypass grace periods and delete the domain immediately.") + private boolean immediately = false; + @Parameter( names = {"--reason"}, description = "Reason for the change.", @@ -43,15 +48,19 @@ final class DeleteDomainCommand extends MutatingEppToolCommand { @Parameter( names = {"--registrar_request"}, - description = "Whether the change was requested by a registrar.", - arity = 1) + description = "Whether the change was requested by a registrar.") private boolean requestedByRegistrar = false; @Override protected void initMutatingEppToolCommand() { + if (immediately) { + // Immediate deletion is accomplished using the superuser extension. + superuser = true; + } setSoyTemplate(DeleteDomainSoyInfo.getInstance(), DeleteDomainSoyInfo.DELETEDOMAIN); addSoyRecord(clientId, new SoyMapData( "domainName", domainName, + "immediately", immediately, "reason", reason, "requestedByRegistrar", requestedByRegistrar)); } diff --git a/java/google/registry/tools/soy/DeleteDomain.soy b/java/google/registry/tools/soy/DeleteDomain.soy index 0355ceb54..ceb66c11c 100644 --- a/java/google/registry/tools/soy/DeleteDomain.soy +++ b/java/google/registry/tools/soy/DeleteDomain.soy @@ -19,6 +19,7 @@ */ {template .deletedomain stricthtml="false"} {@param domainName: string} +{@param immediately: bool} {@param reason: string} {@param requestedByRegistrar: any} @@ -35,6 +36,12 @@ Deleted by registry administrator: {$reason} {$requestedByRegistrar} + {if $immediately} + + 0 + 0 + + {/if} RegistryTool diff --git a/javatests/google/registry/tools/DeleteDomainCommandTest.java b/javatests/google/registry/tools/DeleteDomainCommandTest.java index 7d56a2b39..60ed0f2e5 100644 --- a/javatests/google/registry/tools/DeleteDomainCommandTest.java +++ b/javatests/google/registry/tools/DeleteDomainCommandTest.java @@ -30,30 +30,31 @@ public class DeleteDomainCommandTest extends EppToolCommandTestCase + + + + example.tld + + + + + Deleted by registry administrator: Test + false + + + 0 + 0 + + + RegistryTool + +