Label classes to be deleted after the database migration - Batch 2 (#1477)

* Add some more annotations

* Add some more classes
This commit is contained in:
sarahcaseybot 2022-01-04 12:26:18 -05:00 committed by GitHub
parent 7a174e3ffa
commit f87e7eb6e6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
53 changed files with 114 additions and 9 deletions

View file

@ -15,6 +15,7 @@
package google.registry.model; package google.registry.model;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.billing.BillingEvent; import google.registry.model.billing.BillingEvent;
import google.registry.model.common.Cursor; import google.registry.model.common.Cursor;
import google.registry.model.common.EntityGroupRoot; import google.registry.model.common.EntityGroupRoot;
@ -45,6 +46,7 @@ import google.registry.model.server.ServerSecret;
import google.registry.model.tld.Registry; import google.registry.model.tld.Registry;
/** Sets of classes of the Objectify-registered entities in use throughout the model. */ /** Sets of classes of the Objectify-registered entities in use throughout the model. */
@DeleteAfterMigration
public final class EntityClasses { public final class EntityClasses {
/** Set of entity classes. */ /** Set of entity classes. */

View file

@ -20,6 +20,7 @@ import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import google.registry.beam.common.RegistryPipelineWorkerInitializer; import google.registry.beam.common.RegistryPipelineWorkerInitializer;
import google.registry.config.RegistryEnvironment; import google.registry.config.RegistryEnvironment;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
/** /**
@ -28,6 +29,7 @@ import java.util.concurrent.atomic.AtomicLong;
* <p>In non-test, non-beam environments the Id is generated by Datastore, otherwise it's from an * <p>In non-test, non-beam environments the Id is generated by Datastore, otherwise it's from an
* atomic long number that's incremented every time this method is called. * atomic long number that's incremented every time this method is called.
*/ */
@DeleteAfterMigration
public final class IdService { public final class IdService {
/** /**

View file

@ -19,12 +19,14 @@ import static com.google.common.base.Predicates.subtypeOf;
import static java.util.stream.Collectors.joining; import static java.util.stream.Collectors.joining;
import com.google.common.collect.Ordering; import com.google.common.collect.Ordering;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.Queue; import java.util.Queue;
import java.util.SortedSet; import java.util.SortedSet;
import java.util.TreeSet; import java.util.TreeSet;
/** Utility methods for getting the version of the model schema from the model code. */ /** Utility methods for getting the version of the model schema from the model code. */
@DeleteAfterMigration
public final class SchemaVersion { public final class SchemaVersion {
/** /**

View file

@ -20,11 +20,13 @@ import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Id; import com.googlecode.objectify.annotation.Id;
import com.googlecode.objectify.annotation.Parent; import com.googlecode.objectify.annotation.Parent;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.InCrossTld; import google.registry.model.annotations.InCrossTld;
import javax.persistence.MappedSuperclass; import javax.persistence.MappedSuperclass;
import javax.persistence.Transient; import javax.persistence.Transient;
/** A singleton entity in Datastore. */ /** A singleton entity in Datastore. */
@DeleteAfterMigration
@MappedSuperclass @MappedSuperclass
@InCrossTld @InCrossTld
public abstract class CrossTldSingleton extends ImmutableObject { public abstract class CrossTldSingleton extends ImmutableObject {

View file

@ -26,6 +26,7 @@ import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.ImmutableSortedMap; import com.google.common.collect.ImmutableSortedMap;
import com.google.common.flogger.FluentLogger; import com.google.common.flogger.FluentLogger;
import google.registry.config.RegistryEnvironment; import google.registry.config.RegistryEnvironment;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.common.TimedTransitionProperty.TimedTransition; import google.registry.model.common.TimedTransitionProperty.TimedTransition;
import google.registry.model.replay.SqlOnlyEntity; import google.registry.model.replay.SqlOnlyEntity;
import java.time.Duration; import java.time.Duration;
@ -39,6 +40,7 @@ import org.joda.time.DateTime;
* <p>The entity is stored in SQL throughout the entire migration so as to have a single point of * <p>The entity is stored in SQL throughout the entire migration so as to have a single point of
* access. * access.
*/ */
@DeleteAfterMigration
@Entity @Entity
public class DatabaseMigrationStateSchedule extends CrossTldSingleton implements SqlOnlyEntity { public class DatabaseMigrationStateSchedule extends CrossTldSingleton implements SqlOnlyEntity {

View file

@ -19,6 +19,7 @@ import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Entity; import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id; import com.googlecode.objectify.annotation.Id;
import google.registry.model.BackupGroupRoot; import google.registry.model.BackupGroupRoot;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.replay.DatastoreOnlyEntity; import google.registry.model.replay.DatastoreOnlyEntity;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -37,6 +38,7 @@ import javax.annotation.Nullable;
* entity group for the single namespace where global data applicable for all TLDs lived. * entity group for the single namespace where global data applicable for all TLDs lived.
*/ */
@Entity @Entity
@DeleteAfterMigration
public class EntityGroupRoot extends BackupGroupRoot implements DatastoreOnlyEntity { public class EntityGroupRoot extends BackupGroupRoot implements DatastoreOnlyEntity {
@SuppressWarnings("unused") @SuppressWarnings("unused")

View file

@ -24,12 +24,14 @@ import com.googlecode.objectify.annotation.Index;
import com.googlecode.objectify.annotation.Parent; import com.googlecode.objectify.annotation.Parent;
import google.registry.model.BackupGroupRoot; import google.registry.model.BackupGroupRoot;
import google.registry.model.EppResource; import google.registry.model.EppResource;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.ReportedOn; import google.registry.model.annotations.ReportedOn;
import google.registry.model.replay.DatastoreOnlyEntity; import google.registry.model.replay.DatastoreOnlyEntity;
/** An index that allows for quick enumeration of all EppResource entities (e.g. via map reduce). */ /** An index that allows for quick enumeration of all EppResource entities (e.g. via map reduce). */
@ReportedOn @ReportedOn
@Entity @Entity
@DeleteAfterMigration
public class EppResourceIndex extends BackupGroupRoot implements DatastoreOnlyEntity { public class EppResourceIndex extends BackupGroupRoot implements DatastoreOnlyEntity {
@Id String id; @Id String id;

View file

@ -23,12 +23,14 @@ import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id; import com.googlecode.objectify.annotation.Id;
import google.registry.model.EppResource; import google.registry.model.EppResource;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.VirtualEntity; import google.registry.model.annotations.VirtualEntity;
import google.registry.model.replay.DatastoreOnlyEntity; import google.registry.model.replay.DatastoreOnlyEntity;
/** A virtual entity to represent buckets to which EppResourceIndex objects are randomly added. */ /** A virtual entity to represent buckets to which EppResourceIndex objects are randomly added. */
@Entity @Entity
@VirtualEntity @VirtualEntity
@DeleteAfterMigration
public class EppResourceIndexBucket extends ImmutableObject implements DatastoreOnlyEntity { public class EppResourceIndexBucket extends ImmutableObject implements DatastoreOnlyEntity {
@SuppressWarnings("unused") @SuppressWarnings("unused")

View file

@ -43,6 +43,7 @@ import com.googlecode.objectify.annotation.Index;
import google.registry.config.RegistryConfig; import google.registry.config.RegistryConfig;
import google.registry.model.BackupGroupRoot; import google.registry.model.BackupGroupRoot;
import google.registry.model.EppResource; import google.registry.model.EppResource;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.ReportedOn; import google.registry.model.annotations.ReportedOn;
import google.registry.model.contact.ContactResource; import google.registry.model.contact.ContactResource;
import google.registry.model.domain.DomainBase; import google.registry.model.domain.DomainBase;
@ -65,6 +66,7 @@ import org.joda.time.Duration;
* the foreign key string. The instance is never deleted, but it is updated if a newer entity * the foreign key string. The instance is never deleted, but it is updated if a newer entity
* becomes the active entity. * becomes the active entity.
*/ */
@DeleteAfterMigration
public abstract class ForeignKeyIndex<E extends EppResource> extends BackupGroupRoot { public abstract class ForeignKeyIndex<E extends EppResource> extends BackupGroupRoot {
/** The {@link ForeignKeyIndex} type for {@link ContactResource} entities. */ /** The {@link ForeignKeyIndex} type for {@link ContactResource} entities. */

View file

@ -23,6 +23,7 @@ import com.googlecode.objectify.Key;
import com.googlecode.objectify.Result; import com.googlecode.objectify.Result;
import com.googlecode.objectify.cmd.DeleteType; import com.googlecode.objectify.cmd.DeleteType;
import com.googlecode.objectify.cmd.Deleter; import com.googlecode.objectify.cmd.Deleter;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Arrays; import java.util.Arrays;
import java.util.stream.Stream; import java.util.stream.Stream;
@ -30,6 +31,7 @@ import java.util.stream.Stream;
* A Deleter that forwards to {@code auditedOfy().delete()}, but can be augmented via subclassing to * A Deleter that forwards to {@code auditedOfy().delete()}, but can be augmented via subclassing to
* do custom processing on the keys to be deleted prior to their deletion. * do custom processing on the keys to be deleted prior to their deletion.
*/ */
@DeleteAfterMigration
abstract class AugmentedDeleter implements Deleter { abstract class AugmentedDeleter implements Deleter {
private final Deleter delegate = ofy().delete(); private final Deleter delegate = ofy().delete();

View file

@ -21,13 +21,15 @@ import com.google.common.collect.ImmutableList;
import com.googlecode.objectify.Key; import com.googlecode.objectify.Key;
import com.googlecode.objectify.Result; import com.googlecode.objectify.Result;
import com.googlecode.objectify.cmd.Saver; import com.googlecode.objectify.cmd.Saver;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Arrays; import java.util.Arrays;
import java.util.Map; import java.util.Map;
/** /**
* A Saver that forwards to {@code ofy().save()}, but can be augmented via subclassing to * A Saver that forwards to {@code ofy().save()}, but can be augmented via subclassing to do custom
* do custom processing on the entities to be saved prior to their saving. * processing on the entities to be saved prior to their saving.
*/ */
@DeleteAfterMigration
abstract class AugmentedSaver implements Saver { abstract class AugmentedSaver implements Saver {
private final Saver delegate = ofy().save(); private final Saver delegate = ofy().save();

View file

@ -31,6 +31,7 @@ import com.googlecode.objectify.annotation.Id;
import google.registry.config.RegistryConfig; import google.registry.config.RegistryConfig;
import google.registry.model.Buildable; import google.registry.model.Buildable;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.NotBackedUp; import google.registry.model.annotations.NotBackedUp;
import google.registry.model.annotations.NotBackedUp.Reason; import google.registry.model.annotations.NotBackedUp.Reason;
import google.registry.model.replay.DatastoreOnlyEntity; import google.registry.model.replay.DatastoreOnlyEntity;
@ -51,6 +52,7 @@ import org.joda.time.DateTime;
*/ */
@Entity @Entity
@NotBackedUp(reason = Reason.COMMIT_LOGS) @NotBackedUp(reason = Reason.COMMIT_LOGS)
@DeleteAfterMigration
public class CommitLogBucket extends ImmutableObject implements Buildable, DatastoreOnlyEntity { public class CommitLogBucket extends ImmutableObject implements Buildable, DatastoreOnlyEntity {
/** /**

View file

@ -25,6 +25,7 @@ import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id; import com.googlecode.objectify.annotation.Id;
import com.googlecode.objectify.annotation.Parent; import com.googlecode.objectify.annotation.Parent;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.NotBackedUp; import google.registry.model.annotations.NotBackedUp;
import google.registry.model.annotations.NotBackedUp.Reason; import google.registry.model.annotations.NotBackedUp.Reason;
import google.registry.model.replay.DatastoreOnlyEntity; import google.registry.model.replay.DatastoreOnlyEntity;
@ -45,6 +46,7 @@ import org.joda.time.DateTime;
*/ */
@Entity @Entity
@NotBackedUp(reason = Reason.COMMIT_LOGS) @NotBackedUp(reason = Reason.COMMIT_LOGS)
@DeleteAfterMigration
public class CommitLogCheckpoint extends ImmutableObject implements DatastoreOnlyEntity { public class CommitLogCheckpoint extends ImmutableObject implements DatastoreOnlyEntity {
/** Shared singleton parent entity for commit log checkpoints. */ /** Shared singleton parent entity for commit log checkpoints. */

View file

@ -21,6 +21,7 @@ import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Entity; import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id; import com.googlecode.objectify.annotation.Id;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.NotBackedUp; import google.registry.model.annotations.NotBackedUp;
import google.registry.model.annotations.NotBackedUp.Reason; import google.registry.model.annotations.NotBackedUp.Reason;
import google.registry.model.replay.DatastoreOnlyEntity; import google.registry.model.replay.DatastoreOnlyEntity;
@ -29,6 +30,7 @@ import org.joda.time.DateTime;
/** Singleton parent entity for all commit log checkpoints. */ /** Singleton parent entity for all commit log checkpoints. */
@Entity @Entity
@NotBackedUp(reason = Reason.COMMIT_LOGS) @NotBackedUp(reason = Reason.COMMIT_LOGS)
@DeleteAfterMigration
public class CommitLogCheckpointRoot extends ImmutableObject implements DatastoreOnlyEntity { public class CommitLogCheckpointRoot extends ImmutableObject implements DatastoreOnlyEntity {
public static final long SINGLETON_ID = 1; // There is always exactly one of these. public static final long SINGLETON_ID = 1; // There is always exactly one of these.

View file

@ -23,6 +23,7 @@ import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id; import com.googlecode.objectify.annotation.Id;
import com.googlecode.objectify.annotation.Parent; import com.googlecode.objectify.annotation.Parent;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.NotBackedUp; import google.registry.model.annotations.NotBackedUp;
import google.registry.model.annotations.NotBackedUp.Reason; import google.registry.model.annotations.NotBackedUp.Reason;
import google.registry.model.replay.DatastoreOnlyEntity; import google.registry.model.replay.DatastoreOnlyEntity;
@ -39,6 +40,7 @@ import org.joda.time.DateTime;
*/ */
@Entity @Entity
@NotBackedUp(reason = Reason.COMMIT_LOGS) @NotBackedUp(reason = Reason.COMMIT_LOGS)
@DeleteAfterMigration
public class CommitLogManifest extends ImmutableObject implements DatastoreOnlyEntity { public class CommitLogManifest extends ImmutableObject implements DatastoreOnlyEntity {
/** Commit log manifests are parented on a random bucket. */ /** Commit log manifests are parented on a random bucket. */

View file

@ -27,6 +27,7 @@ import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id; import com.googlecode.objectify.annotation.Id;
import com.googlecode.objectify.annotation.Parent; import com.googlecode.objectify.annotation.Parent;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.NotBackedUp; import google.registry.model.annotations.NotBackedUp;
import google.registry.model.annotations.NotBackedUp.Reason; import google.registry.model.annotations.NotBackedUp.Reason;
import google.registry.model.replay.DatastoreOnlyEntity; import google.registry.model.replay.DatastoreOnlyEntity;
@ -34,6 +35,7 @@ import google.registry.model.replay.DatastoreOnlyEntity;
/** Representation of a saved entity in a {@link CommitLogManifest} (not deletes). */ /** Representation of a saved entity in a {@link CommitLogManifest} (not deletes). */
@Entity @Entity
@NotBackedUp(reason = Reason.COMMIT_LOGS) @NotBackedUp(reason = Reason.COMMIT_LOGS)
@DeleteAfterMigration
public class CommitLogMutation extends ImmutableObject implements DatastoreOnlyEntity { public class CommitLogMutation extends ImmutableObject implements DatastoreOnlyEntity {
/** The manifest this belongs to. */ /** The manifest this belongs to. */

View file

@ -30,6 +30,7 @@ import com.google.common.collect.ImmutableSet;
import com.googlecode.objectify.Key; import com.googlecode.objectify.Key;
import google.registry.model.BackupGroupRoot; import google.registry.model.BackupGroupRoot;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.util.Clock; import google.registry.util.Clock;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;
@ -39,6 +40,7 @@ import java.util.function.Supplier;
import org.joda.time.DateTime; import org.joda.time.DateTime;
/** Wrapper for {@link Supplier} that associates a time with each attempt. */ /** Wrapper for {@link Supplier} that associates a time with each attempt. */
@DeleteAfterMigration
class CommitLoggedWork<R> implements Runnable { class CommitLoggedWork<R> implements Runnable {
private final Supplier<R> work; private final Supplier<R> work;

View file

@ -33,6 +33,7 @@ import com.googlecode.objectify.Key;
import com.googlecode.objectify.Result; import com.googlecode.objectify.Result;
import com.googlecode.objectify.cmd.Query; import com.googlecode.objectify.cmd.Query;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.InCrossTld; import google.registry.model.annotations.InCrossTld;
import google.registry.model.contact.ContactHistory; import google.registry.model.contact.ContactHistory;
import google.registry.model.domain.DomainHistory; import google.registry.model.domain.DomainHistory;
@ -55,6 +56,7 @@ import javax.persistence.NonUniqueResultException;
import org.joda.time.DateTime; import org.joda.time.DateTime;
/** Datastore implementation of {@link TransactionManager}. */ /** Datastore implementation of {@link TransactionManager}. */
@DeleteAfterMigration
public class DatastoreTransactionManager implements TransactionManager { public class DatastoreTransactionManager implements TransactionManager {
private Ofy injectedOfy; private Ofy injectedOfy;

View file

@ -16,6 +16,7 @@ package google.registry.model.ofy;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import google.registry.model.annotations.DeleteAfterMigration;
/** /**
* Contains the mapping from class names to SQL-replay-write priorities. * Contains the mapping from class names to SQL-replay-write priorities.
@ -26,6 +27,7 @@ import com.google.common.collect.ImmutableMap;
* values represent an earlier write (and later delete). Higher-valued classes can have foreign keys * values represent an earlier write (and later delete). Higher-valued classes can have foreign keys
* on lower-valued classes, but not vice versa. * on lower-valued classes, but not vice versa.
*/ */
@DeleteAfterMigration
public class EntityWritePriorities { public class EntityWritePriorities {
/** /**

View file

@ -35,6 +35,7 @@ import google.registry.config.RegistryEnvironment;
import google.registry.model.Buildable; import google.registry.model.Buildable;
import google.registry.model.EntityClasses; import google.registry.model.EntityClasses;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.translators.BloomFilterOfStringTranslatorFactory; import google.registry.model.translators.BloomFilterOfStringTranslatorFactory;
import google.registry.model.translators.CidrAddressBlockTranslatorFactory; import google.registry.model.translators.CidrAddressBlockTranslatorFactory;
import google.registry.model.translators.CommitLogRevisionsTranslatorFactory; import google.registry.model.translators.CommitLogRevisionsTranslatorFactory;
@ -52,6 +53,7 @@ import google.registry.model.translators.VKeyTranslatorFactory;
* objects. The class contains a static initializer to call factory().register(...) on all * objects. The class contains a static initializer to call factory().register(...) on all
* persistable objects in this package. * persistable objects in this package.
*/ */
@DeleteAfterMigration
public class ObjectifyService { public class ObjectifyService {
/** A singleton instance of our Ofy wrapper. */ /** A singleton instance of our Ofy wrapper. */

View file

@ -37,6 +37,7 @@ import com.googlecode.objectify.ObjectifyFactory;
import com.googlecode.objectify.cmd.Deleter; import com.googlecode.objectify.cmd.Deleter;
import com.googlecode.objectify.cmd.Loader; import com.googlecode.objectify.cmd.Loader;
import com.googlecode.objectify.cmd.Saver; import com.googlecode.objectify.cmd.Saver;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.NotBackedUp; import google.registry.model.annotations.NotBackedUp;
import google.registry.model.annotations.VirtualEntity; import google.registry.model.annotations.VirtualEntity;
import google.registry.model.ofy.ReadOnlyWork.KillTransactionException; import google.registry.model.ofy.ReadOnlyWork.KillTransactionException;
@ -59,6 +60,7 @@ import org.joda.time.Duration;
* simpler to wrap {@link Objectify} rather than extend it because this way we can remove some * simpler to wrap {@link Objectify} rather than extend it because this way we can remove some
* methods that we don't really want exposed and add some shortcuts. * methods that we don't really want exposed and add some shortcuts.
*/ */
@DeleteAfterMigration
public class Ofy { public class Ofy {
private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private static final FluentLogger logger = FluentLogger.forEnclosingClass();

View file

@ -14,6 +14,7 @@
package google.registry.model.ofy; package google.registry.model.ofy;
import google.registry.model.annotations.DeleteAfterMigration;
import java.io.IOException; import java.io.IOException;
import javax.servlet.Filter; import javax.servlet.Filter;
import javax.servlet.FilterChain; import javax.servlet.FilterChain;
@ -23,6 +24,7 @@ import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; import javax.servlet.ServletResponse;
/** A filter that statically registers types with Objectify. */ /** A filter that statically registers types with Objectify. */
@DeleteAfterMigration
public class OfyFilter implements Filter { public class OfyFilter implements Filter {
@Override @Override

View file

@ -14,10 +14,12 @@
package google.registry.model.ofy; package google.registry.model.ofy;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.util.Clock; import google.registry.util.Clock;
import java.util.function.Supplier; import java.util.function.Supplier;
/** Wrapper for {@link Supplier} that disallows mutations and fails the transaction at the end. */ /** Wrapper for {@link Supplier} that disallows mutations and fails the transaction at the end. */
@DeleteAfterMigration
class ReadOnlyWork<R> extends CommitLoggedWork<R> { class ReadOnlyWork<R> extends CommitLoggedWork<R> {
ReadOnlyWork(Supplier<R> work, Clock clock) { ReadOnlyWork(Supplier<R> work, Clock clock) {

View file

@ -22,6 +22,7 @@ import com.google.common.collect.ImmutableMap;
import com.googlecode.objectify.Key; import com.googlecode.objectify.Key;
import google.registry.config.RegistryEnvironment; import google.registry.config.RegistryEnvironment;
import google.registry.model.UpdateAutoTimestamp; import google.registry.model.UpdateAutoTimestamp;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.replay.DatastoreEntity; import google.registry.model.replay.DatastoreEntity;
import google.registry.model.replay.ReplaySpecializer; import google.registry.model.replay.ReplaySpecializer;
import google.registry.persistence.VKey; import google.registry.persistence.VKey;
@ -34,6 +35,7 @@ import java.util.concurrent.ConcurrentLinkedQueue;
* *
* <p>This code is to be removed when the actual replay cron job is implemented. * <p>This code is to be removed when the actual replay cron job is implemented.
*/ */
@DeleteAfterMigration
public class ReplayQueue { public class ReplayQueue {
static ConcurrentLinkedQueue<ImmutableMap<Key<?>, Object>> queue = static ConcurrentLinkedQueue<ImmutableMap<Key<?>, Object>> queue =

View file

@ -28,6 +28,7 @@ import com.google.appengine.api.datastore.Query;
import com.google.appengine.api.datastore.Transaction; import com.google.appengine.api.datastore.Transaction;
import com.google.appengine.api.datastore.TransactionOptions; import com.google.appengine.api.datastore.TransactionOptions;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -35,6 +36,7 @@ import java.util.Map;
import java.util.concurrent.Future; import java.util.concurrent.Future;
/** A proxy for {@link AsyncDatastoreService} that exposes call counts. */ /** A proxy for {@link AsyncDatastoreService} that exposes call counts. */
@DeleteAfterMigration
public class RequestCapturingAsyncDatastoreService implements AsyncDatastoreService { public class RequestCapturingAsyncDatastoreService implements AsyncDatastoreService {
private final AsyncDatastoreService delegate; private final AsyncDatastoreService delegate;

View file

@ -18,8 +18,10 @@ import com.google.common.collect.ImmutableSet;
import com.googlecode.objectify.Key; import com.googlecode.objectify.Key;
import com.googlecode.objectify.ObjectifyFactory; import com.googlecode.objectify.ObjectifyFactory;
import com.googlecode.objectify.impl.ObjectifyImpl; import com.googlecode.objectify.impl.ObjectifyImpl;
import google.registry.model.annotations.DeleteAfterMigration;
/** Registry-specific Objectify subclass that exposes the keys used in the current session. */ /** Registry-specific Objectify subclass that exposes the keys used in the current session. */
@DeleteAfterMigration
public class SessionKeyExposingObjectify extends ObjectifyImpl<SessionKeyExposingObjectify> { public class SessionKeyExposingObjectify extends ObjectifyImpl<SessionKeyExposingObjectify> {
public SessionKeyExposingObjectify(ObjectifyFactory factory) { public SessionKeyExposingObjectify(ObjectifyFactory factory) {

View file

@ -17,6 +17,7 @@ package google.registry.model.ofy;
import com.googlecode.objectify.Key; import com.googlecode.objectify.Key;
import com.googlecode.objectify.Objectify; import com.googlecode.objectify.Objectify;
import google.registry.model.BackupGroupRoot; import google.registry.model.BackupGroupRoot;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Arrays; import java.util.Arrays;
import java.util.Map; import java.util.Map;
import org.joda.time.DateTime; import org.joda.time.DateTime;
@ -25,6 +26,7 @@ import org.joda.time.DateTime;
* Exception when trying to write to Datastore with a timestamp that is inconsistent with a partial * Exception when trying to write to Datastore with a timestamp that is inconsistent with a partial
* ordering on transactions that touch the same entities. * ordering on transactions that touch the same entities.
*/ */
@DeleteAfterMigration
class TimestampInversionException extends RuntimeException { class TimestampInversionException extends RuntimeException {
static String getFileAndLine(StackTraceElement callsite) { static String getFileAndLine(StackTraceElement callsite) {

View file

@ -26,10 +26,12 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.googlecode.objectify.Key; import com.googlecode.objectify.Key;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Map; import java.util.Map;
import org.joda.time.DateTime; import org.joda.time.DateTime;
/** Metadata for an {@link Ofy} transaction that saves commit logs. */ /** Metadata for an {@link Ofy} transaction that saves commit logs. */
@DeleteAfterMigration
public class TransactionInfo { public class TransactionInfo {
@VisibleForTesting @VisibleForTesting

View file

@ -14,9 +14,11 @@
package google.registry.model.replay; package google.registry.model.replay;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Optional; import java.util.Optional;
/** An entity that has the same Java object representation in SQL and Datastore. */ /** An entity that has the same Java object representation in SQL and Datastore. */
@DeleteAfterMigration
public interface DatastoreAndSqlEntity extends DatastoreEntity, SqlEntity { public interface DatastoreAndSqlEntity extends DatastoreEntity, SqlEntity {
@Override @Override

View file

@ -14,6 +14,7 @@
package google.registry.model.replay; package google.registry.model.replay;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Optional; import java.util.Optional;
/** /**
@ -24,6 +25,7 @@ import java.util.Optional;
* transactions and data into the secondary SQL store during the first, Datastore-primary, phase of * transactions and data into the secondary SQL store during the first, Datastore-primary, phase of
* the migration. * the migration.
*/ */
@DeleteAfterMigration
public interface DatastoreEntity { public interface DatastoreEntity {
Optional<SqlEntity> toSqlEntity(); Optional<SqlEntity> toSqlEntity();

View file

@ -14,9 +14,11 @@
package google.registry.model.replay; package google.registry.model.replay;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Optional; import java.util.Optional;
/** An entity that is only stored in Datastore, that should not be replayed to SQL. */ /** An entity that is only stored in Datastore, that should not be replayed to SQL. */
@DeleteAfterMigration
public interface DatastoreOnlyEntity extends DatastoreEntity { public interface DatastoreOnlyEntity extends DatastoreEntity {
@Override @Override
default Optional<SqlEntity> toSqlEntity() { default Optional<SqlEntity> toSqlEntity() {

View file

@ -22,9 +22,11 @@ import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Entity; import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id; import com.googlecode.objectify.annotation.Id;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
/** Datastore entity to keep track of the last SQL transaction imported into the datastore. */ /** Datastore entity to keep track of the last SQL transaction imported into the datastore. */
@Entity @Entity
@DeleteAfterMigration
public class LastSqlTransaction extends ImmutableObject implements DatastoreOnlyEntity { public class LastSqlTransaction extends ImmutableObject implements DatastoreOnlyEntity {
/** The key for this singleton. */ /** The key for this singleton. */

View file

@ -14,6 +14,7 @@
package google.registry.model.replay; package google.registry.model.replay;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Optional; import java.util.Optional;
/** /**
@ -21,6 +22,7 @@ import java.util.Optional;
* *
* <p>We expect that this is a result of the entity being dually-written. * <p>We expect that this is a result of the entity being dually-written.
*/ */
@DeleteAfterMigration
public interface NonReplicatedEntity extends DatastoreEntity, SqlEntity { public interface NonReplicatedEntity extends DatastoreEntity, SqlEntity {
@Override @Override

View file

@ -14,6 +14,7 @@
package google.registry.model.replay; package google.registry.model.replay;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.persistence.VKey; import google.registry.persistence.VKey;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -25,6 +26,7 @@ import java.lang.reflect.Method;
* not directly present in the other database. This class allows us to do that by using reflection * not directly present in the other database. This class allows us to do that by using reflection
* to invoke special class methods if they are present. * to invoke special class methods if they are present.
*/ */
@DeleteAfterMigration
public class ReplaySpecializer { public class ReplaySpecializer {
public static void beforeSqlDelete(VKey<?> key) { public static void beforeSqlDelete(VKey<?> key) {

View file

@ -27,6 +27,7 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.flogger.FluentLogger; import com.google.common.flogger.FluentLogger;
import google.registry.model.UpdateAutoTimestamp; import google.registry.model.UpdateAutoTimestamp;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.common.DatabaseMigrationStateSchedule; import google.registry.model.common.DatabaseMigrationStateSchedule;
import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationState; import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationState;
import google.registry.model.common.DatabaseMigrationStateSchedule.ReplayDirection; import google.registry.model.common.DatabaseMigrationStateSchedule.ReplayDirection;
@ -53,6 +54,7 @@ import org.joda.time.Duration;
automaticallyPrintOk = true, automaticallyPrintOk = true,
auth = Auth.AUTH_INTERNAL_OR_ADMIN) auth = Auth.AUTH_INTERNAL_OR_ADMIN)
@VisibleForTesting @VisibleForTesting
@DeleteAfterMigration
public class ReplicateToDatastoreAction implements Runnable { public class ReplicateToDatastoreAction implements Runnable {
public static final String PATH = "/_dr/cron/replicateToDatastore"; public static final String PATH = "/_dr/cron/replicateToDatastore";
private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private static final FluentLogger logger = FluentLogger.forEnclosingClass();

View file

@ -16,6 +16,7 @@ package google.registry.model.replay;
import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm; import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Optional; import java.util.Optional;
/** /**
@ -25,6 +26,7 @@ import java.util.Optional;
* <p>This will be used when replaying SQL transactions into Datastore, during the second, * <p>This will be used when replaying SQL transactions into Datastore, during the second,
* SQL-primary, phase of the migration from Datastore to SQL. * SQL-primary, phase of the migration from Datastore to SQL.
*/ */
@DeleteAfterMigration
public interface SqlEntity { public interface SqlEntity {
Optional<DatastoreEntity> toDatastoreEntity(); Optional<DatastoreEntity> toDatastoreEntity();

View file

@ -14,9 +14,11 @@
package google.registry.model.replay; package google.registry.model.replay;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Optional; import java.util.Optional;
/** An entity that is only stored in SQL, that should not be replayed to Datastore. */ /** An entity that is only stored in SQL, that should not be replayed to Datastore. */
@DeleteAfterMigration
public interface SqlOnlyEntity extends SqlEntity { public interface SqlOnlyEntity extends SqlEntity {
@Override @Override
default Optional<DatastoreEntity> toDatastoreEntity() { default Optional<DatastoreEntity> toDatastoreEntity() {

View file

@ -17,12 +17,14 @@ package google.registry.model.replay;
import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm; import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm;
import static google.registry.util.DateTimeUtils.START_OF_TIME; import static google.registry.util.DateTimeUtils.START_OF_TIME;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.common.CrossTldSingleton; import google.registry.model.common.CrossTldSingleton;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import org.joda.time.DateTime; import org.joda.time.DateTime;
@Entity @Entity
@DeleteAfterMigration
public class SqlReplayCheckpoint extends CrossTldSingleton implements SqlOnlyEntity { public class SqlReplayCheckpoint extends CrossTldSingleton implements SqlOnlyEntity {
@Column(nullable = false) @Column(nullable = false)

View file

@ -23,6 +23,7 @@ import static google.registry.util.DateTimeUtils.START_OF_TIME;
import com.google.common.collect.ImmutableSortedMap; import com.google.common.collect.ImmutableSortedMap;
import com.google.common.collect.Ordering; import com.google.common.collect.Ordering;
import com.googlecode.objectify.Key; import com.googlecode.objectify.Key;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.ofy.CommitLogManifest; import google.registry.model.ofy.CommitLogManifest;
import google.registry.persistence.transaction.Transaction; import google.registry.persistence.transaction.Transaction;
import org.joda.time.DateTime; import org.joda.time.DateTime;
@ -31,6 +32,7 @@ import org.joda.time.DateTime;
* Objectify translator for {@code ImmutableSortedMap<DateTime, Key<CommitLogManifest>>} fields. * Objectify translator for {@code ImmutableSortedMap<DateTime, Key<CommitLogManifest>>} fields.
* *
* <p>This translator is responsible for doing three things: * <p>This translator is responsible for doing three things:
*
* <ol> * <ol>
* <li>Translating the data into two lists of {@code Date} and {@code Key} objects, in a manner * <li>Translating the data into two lists of {@code Date} and {@code Key} objects, in a manner
* similar to {@code @Mapify}. * similar to {@code @Mapify}.
@ -46,6 +48,7 @@ import org.joda.time.DateTime;
* *
* @see google.registry.model.EppResource * @see google.registry.model.EppResource
*/ */
@DeleteAfterMigration
public final class CommitLogRevisionsTranslatorFactory public final class CommitLogRevisionsTranslatorFactory
extends ImmutableSortedMapTranslatorFactory<DateTime, Key<CommitLogManifest>> { extends ImmutableSortedMapTranslatorFactory<DateTime, Key<CommitLogManifest>> {

View file

@ -15,6 +15,7 @@
package google.registry.persistence.converter; package google.registry.persistence.converter;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.common.DatabaseMigrationStateSchedule; import google.registry.model.common.DatabaseMigrationStateSchedule;
import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationState; import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationState;
import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationStateTransition; import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationStateTransition;
@ -23,6 +24,7 @@ import javax.persistence.Converter;
import org.joda.time.DateTime; import org.joda.time.DateTime;
/** JPA converter for {@link DatabaseMigrationStateSchedule} transitions. */ /** JPA converter for {@link DatabaseMigrationStateSchedule} transitions. */
@DeleteAfterMigration
@Converter(autoApply = true) @Converter(autoApply = true)
public class DatabaseMigrationScheduleTransitionConverter public class DatabaseMigrationScheduleTransitionConverter
extends TimedTransitionPropertyConverterBase<MigrationState, MigrationStateTransition> { extends TimedTransitionPropertyConverterBase<MigrationState, MigrationStateTransition> {

View file

@ -16,6 +16,7 @@ package google.registry.persistence.transaction;
import static google.registry.persistence.transaction.TransactionManagerFactory.assertNotReadOnlyMode; import static google.registry.persistence.transaction.TransactionManagerFactory.assertNotReadOnlyMode;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.persistence.EntityGraph; import javax.persistence.EntityGraph;
@ -34,6 +35,7 @@ import javax.persistence.criteria.CriteriaUpdate;
import javax.persistence.metamodel.Metamodel; import javax.persistence.metamodel.Metamodel;
/** An {@link EntityManager} that throws exceptions on write actions if in read-only mode. */ /** An {@link EntityManager} that throws exceptions on write actions if in read-only mode. */
@DeleteAfterMigration
public class ReadOnlyCheckingEntityManager implements EntityManager { public class ReadOnlyCheckingEntityManager implements EntityManager {
private final EntityManager delegate; private final EntityManager delegate;

View file

@ -16,6 +16,7 @@ package google.registry.persistence.transaction;
import static google.registry.persistence.transaction.TransactionManagerFactory.assertNotReadOnlyMode; import static google.registry.persistence.transaction.TransactionManagerFactory.assertNotReadOnlyMode;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -29,6 +30,7 @@ import javax.persistence.Query;
import javax.persistence.TemporalType; import javax.persistence.TemporalType;
/** A {@link Query} that throws exceptions on write actions if in read-only mode. */ /** A {@link Query} that throws exceptions on write actions if in read-only mode. */
@DeleteAfterMigration
class ReadOnlyCheckingQuery implements Query { class ReadOnlyCheckingQuery implements Query {
private final Query delegate; private final Query delegate;

View file

@ -16,6 +16,7 @@ package google.registry.persistence.transaction;
import static google.registry.persistence.transaction.TransactionManagerFactory.assertNotReadOnlyMode; import static google.registry.persistence.transaction.TransactionManagerFactory.assertNotReadOnlyMode;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -29,6 +30,7 @@ import javax.persistence.TemporalType;
import javax.persistence.TypedQuery; import javax.persistence.TypedQuery;
/** A {@link TypedQuery <T>} that throws exceptions on write actions if in read-only mode. */ /** A {@link TypedQuery <T>} that throws exceptions on write actions if in read-only mode. */
@DeleteAfterMigration
class ReadOnlyCheckingTypedQuery<T> implements TypedQuery<T> { class ReadOnlyCheckingTypedQuery<T> implements TypedQuery<T> {
private final TypedQuery<T> delegate; private final TypedQuery<T> delegate;

View file

@ -17,6 +17,7 @@ package google.registry.tools;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.google.common.collect.Sets.SetView; import com.google.common.collect.Sets.SetView;
import google.registry.model.annotations.DeleteAfterMigration;
import java.io.File; import java.io.File;
/** /**
@ -27,6 +28,7 @@ import java.io.File;
* two-level directory hierarchy with data files in level-db format (output-*) and Datastore * two-level directory hierarchy with data files in level-db format (output-*) and Datastore
* metadata files (*.export_metadata). * metadata files (*.export_metadata).
*/ */
@DeleteAfterMigration
class CompareDbBackups { class CompareDbBackups {
private static final String DS_V3_BACKUP_FILE_PREFIX = "output-"; private static final String DS_V3_BACKUP_FILE_PREFIX = "output-";

View file

@ -15,12 +15,14 @@
package google.registry.tools; package google.registry.tools;
import com.beust.jcommander.Parameters; import com.beust.jcommander.Parameters;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.common.DatabaseMigrationStateSchedule; import google.registry.model.common.DatabaseMigrationStateSchedule;
import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationState; import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationState;
import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationStateTransition; import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationStateTransition;
import google.registry.model.common.TimedTransitionProperty; import google.registry.model.common.TimedTransitionProperty;
/** A command to check the current Registry 3.0 migration state of the database. */ /** A command to check the current Registry 3.0 migration state of the database. */
@DeleteAfterMigration
@Parameters(separators = " =", commandDescription = "Check current Registry 3.0 migration state") @Parameters(separators = " =", commandDescription = "Check current Registry 3.0 migration state")
public class GetDatabaseMigrationStateCommand implements CommandWithRemoteApi { public class GetDatabaseMigrationStateCommand implements CommandWithRemoteApi {

View file

@ -20,12 +20,12 @@ import static google.registry.model.ofy.ObjectifyService.auditedOfy;
import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters; import com.beust.jcommander.Parameters;
import google.registry.model.EppResource; import google.registry.model.EppResource;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.persistence.VKey; import google.registry.persistence.VKey;
import java.util.List; import java.util.List;
/** /** Command to get info on a Datastore resource by websafe key. */
* Command to get info on a Datastore resource by websafe key. @DeleteAfterMigration
*/
@Parameters(separators = " =", commandDescription = "Fetch a Datastore resource by websafe key") @Parameters(separators = " =", commandDescription = "Fetch a Datastore resource by websafe key")
final class GetResourceByKeyCommand implements CommandWithRemoteApi { final class GetResourceByKeyCommand implements CommandWithRemoteApi {

View file

@ -19,11 +19,13 @@ import static java.nio.charset.StandardCharsets.UTF_8;
import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters; import com.beust.jcommander.Parameters;
import google.registry.model.SchemaVersion; import google.registry.model.SchemaVersion;
import google.registry.model.annotations.DeleteAfterMigration;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
/** Generates the schema file used for model versioning. */ /** Generates the schema file used for model versioning. */
@DeleteAfterMigration
@Parameters(commandDescription = "Generate a model schema file") @Parameters(commandDescription = "Generate a model schema file")
final class GetSchemaCommand implements Command { final class GetSchemaCommand implements Command {

View file

@ -29,6 +29,7 @@ import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.EntitySubclass; import com.googlecode.objectify.annotation.EntitySubclass;
import com.googlecode.objectify.annotation.Parent; import com.googlecode.objectify.annotation.Parent;
import google.registry.model.BackupGroupRoot; import google.registry.model.BackupGroupRoot;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.annotations.NotBackedUp; import google.registry.model.annotations.NotBackedUp;
import google.registry.model.annotations.VirtualEntity; import google.registry.model.annotations.VirtualEntity;
import java.io.Serializable; import java.io.Serializable;
@ -40,6 +41,7 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
/** Visualizes the schema parentage tree. */ /** Visualizes the schema parentage tree. */
@DeleteAfterMigration
@Parameters(commandDescription = "Generate a model schema file") @Parameters(commandDescription = "Generate a model schema file")
final class GetSchemaTreeCommand implements Command { final class GetSchemaTreeCommand implements Command {

View file

@ -22,6 +22,7 @@ import com.google.common.base.Ascii;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import google.registry.export.datastore.DatastoreAdmin; import google.registry.export.datastore.DatastoreAdmin;
import google.registry.export.datastore.Operation; import google.registry.export.datastore.Operation;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -35,6 +36,7 @@ import org.joda.time.Duration;
* href="http://playbooks/domain_registry/procedures/backup-restore-testing.md">the playbook</a> for * href="http://playbooks/domain_registry/procedures/backup-restore-testing.md">the playbook</a> for
* the entire process. * the entire process.
*/ */
@DeleteAfterMigration
@Parameters(separators = " =", commandDescription = "Imports a backup of the Datastore.") @Parameters(separators = " =", commandDescription = "Imports a backup of the Datastore.")
public class ImportDatastoreCommand extends ConfirmingCommand { public class ImportDatastoreCommand extends ConfirmingCommand {

View file

@ -20,6 +20,7 @@ import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.client.json.jackson2.JacksonFactory;
import google.registry.export.datastore.DatastoreAdmin; import google.registry.export.datastore.DatastoreAdmin;
import google.registry.export.datastore.DatastoreAdmin.ListOperations; import google.registry.export.datastore.DatastoreAdmin.ListOperations;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.util.Clock; import google.registry.util.Clock;
import java.util.Optional; import java.util.Optional;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -28,6 +29,7 @@ import org.joda.time.DateTime;
import org.joda.time.Duration; import org.joda.time.Duration;
/** Command that lists Datastore operations. */ /** Command that lists Datastore operations. */
@DeleteAfterMigration
@Parameters(separators = " =", commandDescription = "List Datastore operations.") @Parameters(separators = " =", commandDescription = "List Datastore operations.")
public class ListDatastoreOperationsCommand implements Command { public class ListDatastoreOperationsCommand implements Command {

View file

@ -26,12 +26,14 @@ import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListenableFuture;
import google.registry.bigquery.BigqueryUtils.SourceFormat; import google.registry.bigquery.BigqueryUtils.SourceFormat;
import google.registry.export.AnnotatedEntities; import google.registry.export.AnnotatedEntities;
import google.registry.model.annotations.DeleteAfterMigration;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
/** Command to load Datastore snapshots into Bigquery. */ /** Command to load Datastore snapshots into Bigquery. */
@DeleteAfterMigration
@Parameters(separators = " =", commandDescription = "Load Datastore snapshot into Bigquery") @Parameters(separators = " =", commandDescription = "Load Datastore snapshot into Bigquery")
final class LoadSnapshotCommand extends BigqueryCommand { final class LoadSnapshotCommand extends BigqueryCommand {

View file

@ -25,6 +25,7 @@ import com.google.common.io.CharStreams;
import com.google.common.io.Files; import com.google.common.io.Files;
import com.googlecode.objectify.Key; import com.googlecode.objectify.Key;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.domain.DomainBase; import google.registry.model.domain.DomainBase;
import google.registry.persistence.VKey; import google.registry.persistence.VKey;
import google.registry.util.NonFinalForTesting; import google.registry.util.NonFinalForTesting;
@ -40,6 +41,7 @@ import java.util.List;
* <p>The key path is the value of column __key__.path of the entity's BigQuery table. Its value is * <p>The key path is the value of column __key__.path of the entity's BigQuery table. Its value is
* converted from the entity's key. * converted from the entity's key.
*/ */
@DeleteAfterMigration
abstract class ReadEntityFromKeyPathCommand<T> extends MutatingCommand { abstract class ReadEntityFromKeyPathCommand<T> extends MutatingCommand {
@Parameter( @Parameter(

View file

@ -19,12 +19,14 @@ import static google.registry.persistence.transaction.TransactionManagerFactory.
import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters; import com.beust.jcommander.Parameters;
import com.google.common.collect.ImmutableSortedMap; import com.google.common.collect.ImmutableSortedMap;
import google.registry.model.annotations.DeleteAfterMigration;
import google.registry.model.common.DatabaseMigrationStateSchedule; import google.registry.model.common.DatabaseMigrationStateSchedule;
import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationState; import google.registry.model.common.DatabaseMigrationStateSchedule.MigrationState;
import google.registry.tools.params.TransitionListParameter.MigrationStateTransitions; import google.registry.tools.params.TransitionListParameter.MigrationStateTransitions;
import org.joda.time.DateTime; import org.joda.time.DateTime;
/** Command to set the Registry 3.0 database migration state schedule. */ /** Command to set the Registry 3.0 database migration state schedule. */
@DeleteAfterMigration
@Parameters( @Parameters(
separators = " =", separators = " =",
commandDescription = "Set the current database migration state schedule.") commandDescription = "Set the current database migration state schedule.")