def upgradeParentHook1to2(oldHook): """ Add the scheduler attribute to the given L{_SubSchedulerParentHook}. """ newHook = oldHook.upgradeVersion( oldHook.typeName, 1, 2, loginAccount=oldHook.loginAccount, scheduledAt=oldHook.scheduledAt, scheduler=oldHook.store.findFirst(Scheduler)) return newHook registerUpgrader(upgradeParentHook1to2, _SubSchedulerParentHook.typeName, 1, 2) class SubScheduler(Item, SchedulerMixin): """ Track and execute persistent timed events for a substore. """ schemaVersion = 1 typeName = 'axiom_subscheduler' implements(IScheduler) powerupInterfaces = (IScheduler, ) eventsRun = integer(default=0) lastEventAt = timestamp()
return ifa def indirect(self, interface): """ Like __conform__, I adapt my store to whatever interface I am asked to produce a powerup for. This allows for app stores to be installed as powerups for their site stores directly, rather than having an additional item type for each interface that we might wish to adapt to. """ return interface(self) class SubStoreStartupService(Item, service.Service): """ This class no longer exists. It is here simply to trigger an upgrade which deletes it. Ignore it, please. """ installedOn = reference() parent = inmemory() running = inmemory() name = inmemory() schemaVersion = 2 def eliminateSubStoreStartupService(subservice): subservice.deleteFromStore() return None registerUpgrader(eliminateSubStoreStartupService, SubStoreStartupService.typeName, 1, 2)
A reference to the LoginAccount for which this is a login method. """, allowNone=False) verified = boolean(indexed=True, allowNone=False) def upgradeLoginMethod1To2(old): return old.upgradeVersion( 'login_method', 1, 2, localpart=old.localpart, domain=old.domain, internal=old.internal, protocol=old.protocol, account=old.account, verified=old.verified) upgrade.registerUpgrader(upgradeLoginMethod1To2, 'login_method', 1, 2) class LoginAccount(Item): """ I am an entry in a LoginBase. @ivar avatars: An Item which is adaptable to various cred client interfaces. Plural because it represents a collection of potentially disparate implementors, such as an IResource for web access and an IContact for SIP access. @ivar disabled: This account has been disabled. It is still database-resident but the user should not be allowed to log in. """ typeName = 'login'
self.scheduler.schedule(self, when) self.scheduledAt = when def upgradeParentHook1to2(oldHook): """ Add the scheduler attribute to the given L{_SubSchedulerParentHook}. """ newHook = oldHook.upgradeVersion( oldHook.typeName, 1, 2, loginAccount=oldHook.loginAccount, scheduledAt=oldHook.scheduledAt, scheduler=oldHook.store.findFirst(Scheduler)) return newHook registerUpgrader(upgradeParentHook1to2, _SubSchedulerParentHook.typeName, 1, 2) class SubScheduler(Item, SchedulerMixin): """ Track and execute persistent timed events for a substore. """ schemaVersion = 1 typeName = 'axiom_subscheduler' implements(IScheduler) powerupInterfaces = (IScheduler,) eventsRun = integer(default=0) lastEventAt = timestamp()