diff --git a/java/google/registry/tools/RegistryTool.java b/java/google/registry/tools/RegistryTool.java index 53fdf0103..b9b907cc8 100644 --- a/java/google/registry/tools/RegistryTool.java +++ b/java/google/registry/tools/RegistryTool.java @@ -15,8 +15,8 @@ package google.registry.tools; import com.google.common.collect.ImmutableMap; +import google.registry.tools.javascrap.FixDomainTransferDataCommand; import google.registry.tools.javascrap.PopulateNullRegistrarFieldsCommand; -import google.registry.tools.javascrap.RemoveDomainTransferDataCommand; import google.registry.tools.javascrap.RemoveIpAddressCommand; /** Container class to create and run remote commands against a Datastore instance. */ @@ -61,6 +61,7 @@ public final class RegistryTool { .put("domain_check_fee", DomainCheckFeeCommand.class) .put("encrypt_escrow_deposit", EncryptEscrowDepositCommand.class) .put("execute_epp", ExecuteEppCommand.class) + .put("fix_domain_transfer_data", FixDomainTransferDataCommand.class) .put("generate_applications_report", GenerateApplicationsReportCommand.class) .put("generate_auction_data", GenerateAuctionDataCommand.class) .put("generate_dns_report", GenerateDnsReportCommand.class) @@ -103,7 +104,6 @@ public final class RegistryTool { .put("publish_detail_report", PublishDetailReportCommand.class) .put("registrar_activity_report", RegistrarActivityReportCommand.class) .put("registrar_contact", RegistrarContactCommand.class) - .put("remove_domain_transfer_data", RemoveDomainTransferDataCommand.class) .put("remove_ip_address", RemoveIpAddressCommand.class) .put("resave_entities", ResaveEntitiesCommand.class) .put("resave_environment_entities", ResaveEnvironmentEntitiesCommand.class) diff --git a/java/google/registry/tools/javascrap/FixDomainTransferDataCommand.java b/java/google/registry/tools/javascrap/FixDomainTransferDataCommand.java new file mode 100644 index 000000000..b0c6141e5 --- /dev/null +++ b/java/google/registry/tools/javascrap/FixDomainTransferDataCommand.java @@ -0,0 +1,57 @@ +// Copyright 2017 The Nomulus Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package google.registry.tools.javascrap; + +import static com.google.common.base.Preconditions.checkNotNull; +import static google.registry.model.ofy.ObjectifyService.ofy; + +import com.beust.jcommander.Parameter; +import com.beust.jcommander.Parameters; +import google.registry.model.domain.DomainResource; +import google.registry.model.transfer.TransferData; +import google.registry.model.transfer.TransferStatus; +import google.registry.tools.MutatingCommand; +import java.util.List; + +/** + * Scrap tool to fix domain transfer data corrupted in b/33289763. + * + *
A bug caused some domains to have their transfer data overwritten with SERVER_CANCELLED
+ * resolved transfer data upon their deletion, regardless of the original transfer data. The
+ * previous version of this tool fixed domains where their original transfer data was empty by just
+ * removing the corrupted transfer data. However, one other domain was affected that did have
+ * pre-existing transfer data; this domain was not fixed earlier, so this new version of the scrap
+ * tool fixes it by restoring what the original server-approved transfer data.
+ */
+@Parameters(separators = " =", commandDescription = "Fix transfer data for b/33289763.")
+public class FixDomainTransferDataCommand extends MutatingCommand {
+
+ @Parameter(description = "Domain roids", required = true)
+ private List A bug has caused some domains to have invalid transfer data; the status is SERVER_CANCELLED,
- * but other fields such as the gaining and losing registrar are blank. Since there was never an
- * actual transfer, the proper course of action is to remove the invalid data. See b/33289763.
- */
-@Parameters(separators = " =", commandDescription = "Remove transfer data.")
-public class RemoveDomainTransferDataCommand extends MutatingCommand {
-
- @Parameter(description = "Fully-qualified domain names", required = true)
- private List