Add global-scoped (and other type-scoped) cursors

Expanding recurring billing events will require a global cursor as opposed to a Registry-scoped cursor, so this CL creates a more generic Cursor type and adds a dual-write for the old RegistryCursor (for both old and new styles) on save. We can then touch any stragglers using the UpdateCursorsCommand and simply drop the old RegistryCursor once all have been migrated.

See [] for migration tracking.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=121706885
This commit is contained in:
ctingue 2016-05-06 13:58:26 -07:00 committed by Justine Tunney
parent 42139be99d
commit 87961fbb12
7 changed files with 342 additions and 4 deletions

View file

@ -23,6 +23,7 @@ import google.registry.model.billing.BillingEvent;
import google.registry.model.billing.RegistrarBillingEntry;
import google.registry.model.billing.RegistrarCredit;
import google.registry.model.billing.RegistrarCreditBalance;
import google.registry.model.common.Cursor;
import google.registry.model.common.EntityGroupRoot;
import google.registry.model.common.GaeUserIdConverter;
import google.registry.model.contact.ContactResource;
@ -77,6 +78,7 @@ public final class EntityClasses {
CommitLogManifest.class,
CommitLogMutation.class,
ContactResource.class,
Cursor.class,
DomainApplication.class,
DomainApplicationIndex.class,
DomainBase.class,