Remove ofy support from RdeRevision (#1772)

This commit is contained in:
Lai Jiang 2022-09-07 13:30:38 -04:00 committed by GitHub
parent 318c64cf8b
commit 813c08715a
5 changed files with 11 additions and 35 deletions

View file

@ -28,7 +28,6 @@ import google.registry.model.host.HostHistory;
import google.registry.model.index.EppResourceIndex; import google.registry.model.index.EppResourceIndex;
import google.registry.model.index.EppResourceIndexBucket; import google.registry.model.index.EppResourceIndexBucket;
import google.registry.model.index.ForeignKeyIndex; import google.registry.model.index.ForeignKeyIndex;
import google.registry.model.rde.RdeRevision;
import google.registry.model.registrar.Registrar; import google.registry.model.registrar.Registrar;
import google.registry.model.reporting.HistoryEntry; import google.registry.model.reporting.HistoryEntry;
import google.registry.model.server.Lock; import google.registry.model.server.Lock;
@ -57,7 +56,6 @@ public final class EntityClasses {
Host.class, Host.class,
HostHistory.class, HostHistory.class,
Lock.class, Lock.class,
RdeRevision.class,
Registrar.class, Registrar.class,
ServerSecret.class); ServerSecret.class);

View file

@ -19,10 +19,6 @@ import static google.registry.model.rde.RdeNamingUtils.makePartialName;
import static google.registry.persistence.transaction.TransactionManagerFactory.tm; import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
import com.google.common.base.VerifyException; import com.google.common.base.VerifyException;
import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id;
import com.googlecode.objectify.annotation.Ignore;
import google.registry.model.BackupGroupRoot; import google.registry.model.BackupGroupRoot;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import google.registry.model.rde.RdeRevision.RdeRevisionId; import google.registry.model.rde.RdeRevision.RdeRevisionId;
@ -32,10 +28,11 @@ import java.io.Serializable;
import java.util.Optional; import java.util.Optional;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Convert; import javax.persistence.Convert;
import javax.persistence.Entity;
import javax.persistence.EnumType; import javax.persistence.EnumType;
import javax.persistence.Enumerated; import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.IdClass; import javax.persistence.IdClass;
import javax.persistence.Transient;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.joda.time.LocalDate; import org.joda.time.LocalDate;
@ -47,18 +44,14 @@ import org.joda.time.LocalDate;
* flag is included in the generated XML. * flag is included in the generated XML.
*/ */
@Entity @Entity
@javax.persistence.Entity
@IdClass(RdeRevisionId.class) @IdClass(RdeRevisionId.class)
public final class RdeRevision extends BackupGroupRoot { public final class RdeRevision extends BackupGroupRoot {
/** String triplet of tld, date, and mode, e.g. {@code soy_2015-09-01_full}. */ @Id String tld;
@Id @Transient String id;
@javax.persistence.Id @Ignore String tld; @Id LocalDate date;
@javax.persistence.Id @Ignore LocalDate date; @Id RdeMode mode;
@javax.persistence.Id @Ignore RdeMode mode;
/** /**
* Number of last revision successfully staged to GCS. * Number of last revision successfully staged to GCS.
@ -71,10 +64,8 @@ public final class RdeRevision extends BackupGroupRoot {
/** Hibernate requires an empty constructor. */ /** Hibernate requires an empty constructor. */
private RdeRevision() {} private RdeRevision() {}
public static RdeRevision create( public static RdeRevision create(String tld, LocalDate date, RdeMode mode, int revision) {
String id, String tld, LocalDate date, RdeMode mode, int revision) {
RdeRevision instance = new RdeRevision(); RdeRevision instance = new RdeRevision();
instance.id = id;
instance.tld = tld; instance.tld = tld;
instance.date = date; instance.date = date;
instance.mode = mode; instance.mode = mode;
@ -92,12 +83,9 @@ public final class RdeRevision extends BackupGroupRoot {
* @return {@code 0} for first deposit generation and {@code >0} for resends * @return {@code 0} for first deposit generation and {@code >0} for resends
*/ */
public static int getNextRevision(String tld, DateTime date, RdeMode mode) { public static int getNextRevision(String tld, DateTime date, RdeMode mode) {
String id = makePartialName(tld, date, mode);
RdeRevisionId sqlKey = RdeRevisionId.create(tld, date.toLocalDate(), mode); RdeRevisionId sqlKey = RdeRevisionId.create(tld, date.toLocalDate(), mode);
Key<RdeRevision> ofyKey = Key.create(RdeRevision.class, id);
Optional<RdeRevision> revisionOptional = Optional<RdeRevision> revisionOptional =
tm().transact( tm().transact(() -> tm().loadByKeyIfPresent(VKey.createSql(RdeRevision.class, sqlKey)));
() -> tm().loadByKeyIfPresent(VKey.create(RdeRevision.class, sqlKey, ofyKey)));
return revisionOptional.map(rdeRevision -> rdeRevision.revision + 1).orElse(0); return revisionOptional.map(rdeRevision -> rdeRevision.revision + 1).orElse(0);
} }
@ -121,12 +109,10 @@ public final class RdeRevision extends BackupGroupRoot {
*/ */
public static void saveRevision(String tld, DateTime date, RdeMode mode, int revision) { public static void saveRevision(String tld, DateTime date, RdeMode mode, int revision) {
checkArgument(revision >= 0, "Negative revision: %s", revision); checkArgument(revision >= 0, "Negative revision: %s", revision);
String triplet = makePartialName(tld, date, mode);
tm().assertInTransaction(); tm().assertInTransaction();
RdeRevisionId sqlKey = RdeRevisionId.create(tld, date.toLocalDate(), mode); RdeRevisionId sqlKey = RdeRevisionId.create(tld, date.toLocalDate(), mode);
Key<RdeRevision> ofyKey = Key.create(RdeRevision.class, triplet);
Optional<RdeRevision> revisionOptional = Optional<RdeRevision> revisionOptional =
tm().loadByKeyIfPresent(VKey.create(RdeRevision.class, sqlKey, ofyKey)); tm().loadByKeyIfPresent(VKey.createSql(RdeRevision.class, sqlKey));
if (revision == 0) { if (revision == 0) {
revisionOptional.ifPresent( revisionOptional.ifPresent(
rdeRevision -> { rdeRevision -> {
@ -139,7 +125,7 @@ public final class RdeRevision extends BackupGroupRoot {
checkArgument( checkArgument(
revisionOptional.isPresent(), revisionOptional.isPresent(),
"Couldn't find existing RDE revision %s when trying to save new revision %s", "Couldn't find existing RDE revision %s when trying to save new revision %s",
triplet, makePartialName(tld, date, mode),
revision); revision);
checkArgument( checkArgument(
revisionOptional.get().revision == revision - 1, revisionOptional.get().revision == revision - 1,
@ -147,7 +133,7 @@ public final class RdeRevision extends BackupGroupRoot {
revision - 1, revision - 1,
revisionOptional.get()); revisionOptional.get());
} }
RdeRevision object = RdeRevision.create(triplet, tld, date.toLocalDate(), mode, revision); RdeRevision object = create(tld, date.toLocalDate(), mode, revision);
tm().put(object); tm().put(object);
} }

View file

@ -27,7 +27,6 @@ import google.registry.model.index.EppResourceIndexBucket;
import google.registry.model.index.ForeignKeyIndex.ForeignKeyContactIndex; import google.registry.model.index.ForeignKeyIndex.ForeignKeyContactIndex;
import google.registry.model.index.ForeignKeyIndex.ForeignKeyDomainIndex; import google.registry.model.index.ForeignKeyIndex.ForeignKeyDomainIndex;
import google.registry.model.index.ForeignKeyIndex.ForeignKeyHostIndex; import google.registry.model.index.ForeignKeyIndex.ForeignKeyHostIndex;
import google.registry.model.rde.RdeRevision;
import google.registry.model.registrar.Registrar; import google.registry.model.registrar.Registrar;
import google.registry.model.reporting.HistoryEntry; import google.registry.model.reporting.HistoryEntry;
import google.registry.model.server.Lock; import google.registry.model.server.Lock;
@ -51,7 +50,6 @@ public class ClassPathManagerTest {
assertThat(ClassPathManager.getClass("ForeignKeyContactIndex")) assertThat(ClassPathManager.getClass("ForeignKeyContactIndex"))
.isEqualTo(ForeignKeyContactIndex.class); .isEqualTo(ForeignKeyContactIndex.class);
assertThat(ClassPathManager.getClass("AllocationToken")).isEqualTo(AllocationToken.class); assertThat(ClassPathManager.getClass("AllocationToken")).isEqualTo(AllocationToken.class);
assertThat(ClassPathManager.getClass("RdeRevision")).isEqualTo(RdeRevision.class);
assertThat(ClassPathManager.getClass("Host")).isEqualTo(Host.class); assertThat(ClassPathManager.getClass("Host")).isEqualTo(Host.class);
assertThat(ClassPathManager.getClass("Registrar")).isEqualTo(Registrar.class); assertThat(ClassPathManager.getClass("Registrar")).isEqualTo(Registrar.class);
assertThat(ClassPathManager.getClass("Contact")).isEqualTo(Contact.class); assertThat(ClassPathManager.getClass("Contact")).isEqualTo(Contact.class);
@ -103,7 +101,6 @@ public class ClassPathManagerTest {
assertThat(ClassPathManager.getClassName(ForeignKeyContactIndex.class)) assertThat(ClassPathManager.getClassName(ForeignKeyContactIndex.class))
.isEqualTo("ForeignKeyContactIndex"); .isEqualTo("ForeignKeyContactIndex");
assertThat(ClassPathManager.getClassName(AllocationToken.class)).isEqualTo("AllocationToken"); assertThat(ClassPathManager.getClassName(AllocationToken.class)).isEqualTo("AllocationToken");
assertThat(ClassPathManager.getClassName(RdeRevision.class)).isEqualTo("RdeRevision");
assertThat(ClassPathManager.getClassName(Host.class)).isEqualTo("Host"); assertThat(ClassPathManager.getClassName(Host.class)).isEqualTo("Host");
assertThat(ClassPathManager.getClassName(Registrar.class)).isEqualTo("Registrar"); assertThat(ClassPathManager.getClassName(Registrar.class)).isEqualTo("Registrar");
assertThat(ClassPathManager.getClassName(Contact.class)).isEqualTo("Contact"); assertThat(ClassPathManager.getClassName(Contact.class)).isEqualTo("Contact");

View file

@ -121,8 +121,7 @@ public class RdeRevisionTest extends EntityTestCase {
} }
public static void save(String tld, DateTime date, RdeMode mode, int revision) { public static void save(String tld, DateTime date, RdeMode mode, int revision) {
String triplet = RdeNamingUtils.makePartialName(tld, date, mode); RdeRevision object = RdeRevision.create(tld, date.toLocalDate(), mode, revision);
RdeRevision object = RdeRevision.create(triplet, tld, date.toLocalDate(), mode, revision);
tm().transact(() -> tm().put(object)); tm().transact(() -> tm().put(object));
} }
} }

View file

@ -343,10 +343,6 @@ class google.registry.model.index.ForeignKeyIndex$ForeignKeyHostIndex {
google.registry.persistence.VKey<E> topReference; google.registry.persistence.VKey<E> topReference;
org.joda.time.DateTime deletionTime; org.joda.time.DateTime deletionTime;
} }
class google.registry.model.rde.RdeRevision {
@Id java.lang.String id;
int revision;
}
class google.registry.model.registrar.Registrar { class google.registry.model.registrar.Registrar {
@Id java.lang.String clientIdentifier; @Id java.lang.String clientIdentifier;
@Parent com.googlecode.objectify.Key<google.registry.model.common.EntityGroupRoot> parent; @Parent com.googlecode.objectify.Key<google.registry.model.common.EntityGroupRoot> parent;