diff --git a/java/google/registry/flows/domain/DomainCreateFlow.java b/java/google/registry/flows/domain/DomainCreateFlow.java index 3dfd0f310..c57de6250 100644 --- a/java/google/registry/flows/domain/DomainCreateFlow.java +++ b/java/google/registry/flows/domain/DomainCreateFlow.java @@ -98,6 +98,7 @@ import google.registry.model.poll.PollMessage; import google.registry.model.poll.PollMessage.Autorenew; import google.registry.model.registry.Registry; import google.registry.model.registry.Registry.TldState; +import google.registry.model.registry.Registry.TldType; import google.registry.model.reporting.DomainTransactionRecord; import google.registry.model.reporting.DomainTransactionRecord.TransactionReportField; import google.registry.model.reporting.HistoryEntry; @@ -262,7 +263,7 @@ public class DomainCreateFlow implements TransactionalFlow { String repoId = createDomainRepoId(ObjectifyService.allocateId(), registry.getTldStr()); DateTime registrationExpirationTime = leapSafeAddYears(now, years); HistoryEntry historyEntry = buildHistoryEntry( - repoId, registry.getTldStr(), now, period, registry.getAddGracePeriodLength()); + repoId, registry, now, period, registry.getAddGracePeriodLength()); // Bill for the create. BillingEvent.OneTime createBillingEvent = createOneTimeBillingEvent( @@ -365,19 +366,23 @@ public class DomainCreateFlow implements TransactionalFlow { } private HistoryEntry buildHistoryEntry( - String repoId, String tld, DateTime now, Period period, Duration addGracePeriod) { + String repoId, Registry registry, DateTime now, Period period, Duration addGracePeriod) { + // We ignore prober transactions + if (registry.getTldType() == TldType.REAL) { + historyBuilder + .setDomainTransactionRecords( + ImmutableSet.of( + DomainTransactionRecord.create( + registry.getTldStr(), + now.plus(addGracePeriod), + TransactionReportField.netAddsFieldFromYears(period.getValue()), + 1))); + } return historyBuilder .setType(HistoryEntry.Type.DOMAIN_CREATE) .setPeriod(period) .setModificationTime(now) .setParent(Key.create(DomainResource.class, repoId)) - .setDomainTransactionRecords( - ImmutableSet.of( - DomainTransactionRecord.create( - tld, - now.plus(addGracePeriod), - TransactionReportField.netAddsFieldFromYears(period.getValue()), - 1))) .build(); } diff --git a/java/google/registry/flows/domain/DomainDeleteFlow.java b/java/google/registry/flows/domain/DomainDeleteFlow.java index f0aca615d..1a92395e0 100644 --- a/java/google/registry/flows/domain/DomainDeleteFlow.java +++ b/java/google/registry/flows/domain/DomainDeleteFlow.java @@ -82,6 +82,7 @@ import google.registry.model.poll.PendingActionNotificationResponse.DomainPendin import google.registry.model.poll.PollMessage; import google.registry.model.poll.PollMessage.OneTime; import google.registry.model.registry.Registry; +import google.registry.model.registry.Registry.TldType; import google.registry.model.reporting.DomainTransactionRecord; import google.registry.model.reporting.DomainTransactionRecord.TransactionReportField; import google.registry.model.reporting.HistoryEntry; @@ -239,31 +240,35 @@ public final class DomainDeleteFlow implements TransactionalFlow { DateTime now, Duration durationUntilDelete, boolean inAddGracePeriod) { - Duration maxGracePeriod = Collections.max( - ImmutableSet.of( - registry.getAddGracePeriodLength(), - registry.getAutoRenewGracePeriodLength(), - registry.getRenewGracePeriodLength())); - ImmutableSet cancelledRecords = - createCancelingRecords( - existingResource, - now, - maxGracePeriod, - Sets.immutableEnumSet(Sets.union(ADD_FIELDS, RENEW_FIELDS))); + // We ignore prober transactions + if (registry.getTldType() == TldType.REAL) { + Duration maxGracePeriod = Collections.max( + ImmutableSet.of( + registry.getAddGracePeriodLength(), + registry.getAutoRenewGracePeriodLength(), + registry.getRenewGracePeriodLength())); + ImmutableSet cancelledRecords = + createCancelingRecords( + existingResource, + now, + maxGracePeriod, + Sets.immutableEnumSet(Sets.union(ADD_FIELDS, RENEW_FIELDS))); + historyBuilder + .setDomainTransactionRecords( + union( + cancelledRecords, + DomainTransactionRecord.create( + existingResource.getTld(), + now.plus(durationUntilDelete), + inAddGracePeriod + ? TransactionReportField.DELETED_DOMAINS_GRACE + : TransactionReportField.DELETED_DOMAINS_NOGRACE, + 1))); + } return historyBuilder .setType(HistoryEntry.Type.DOMAIN_DELETE) .setModificationTime(now) .setParent(Key.create(existingResource)) - .setDomainTransactionRecords( - union( - cancelledRecords, - DomainTransactionRecord.create( - existingResource.getTld(), - now.plus(durationUntilDelete), - inAddGracePeriod - ? TransactionReportField.DELETED_DOMAINS_GRACE - : TransactionReportField.DELETED_DOMAINS_NOGRACE, - 1))) .build(); } diff --git a/javatests/google/registry/flows/domain/DomainCreateFlowTest.java b/javatests/google/registry/flows/domain/DomainCreateFlowTest.java index 0d9da464d..4770342ad 100644 --- a/javatests/google/registry/flows/domain/DomainCreateFlowTest.java +++ b/javatests/google/registry/flows/domain/DomainCreateFlowTest.java @@ -127,6 +127,7 @@ import google.registry.model.eppcommon.StatusValue; import google.registry.model.poll.PollMessage; import google.registry.model.registry.Registry; import google.registry.model.registry.Registry.TldState; +import google.registry.model.registry.Registry.TldType; import google.registry.model.reporting.DomainTransactionRecord; import google.registry.model.reporting.DomainTransactionRecord.TransactionReportField; import google.registry.model.reporting.HistoryEntry; @@ -2010,6 +2011,17 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase