def start(self): self.nodes = [] from mpx.service.time.time_zone import TimeZone if not IScheduleHolderParent.implementedBy(TimeZone): class_implements(TimeZone, IScheduleHolderParent) self.security_manager = self.nodespace.as_node(self.security_manager) self._pdo_lock.acquire() try: if not self._pdo: self._pdo = PersistentDataObject(self, dmtype=GC_NEVER) self._pdo.holders = {} self._pdo.schedules = {} self._pdo.load() holderdicts = self._pdo.holders.values() holderdumps = [] for holderdict in holderdicts: holderdumps.extend(holderdict.items()) # schedules = {'local': {'Holder1': {'Sched1': Sched1Dump}, 'Holder2': ...}, 'UTC': ...} scheduledicts = [] [ scheduledicts.extend(holderdict.values()) for holderdict in self._pdo.schedules.values() ] scheduledumps = [] for scheduledict in scheduledicts: scheduledumps.extend(scheduledict.items()) finally: self._pdo_lock.release() super(ScheduleConfigurator, self).start() tstart = time.time() for holdername, holderdump in holderdumps: try: self.nodes.append(IPickles(cPickle.loads(holderdump))()) except: message = self.LOADFAILURE % (self.name, 'Schedule Holder', holdername) msglog.log('broadway', msglog.types.ERR, message) msglog.exception(prefix='Handled') tend = time.time() tlapse = tend - tstart msglog.log( 'broadway', msglog.types.INFO, 'Schedule Configurator loaded ' '%s nodes in %s seconds.' % (len(holderdumps), tlapse)) tstart = time.time() for schedulename, scheduledump in scheduledumps: try: self.nodes.append(IPickles(cPickle.loads(scheduledump))()) except: message = self.LOADFAILURE % (self.name, 'Schedule Holder', schedulename) msglog.log('broadway', msglog.types.ERR, message) msglog.exception(prefix='Handled') tend = time.time() tlapse = tend - tstart msglog.log( 'broadway', msglog.types.INFO, 'Schedule Configurator loaded ' '%s nodes in %s seconds.' % (len(scheduledumps), tlapse)) self.template = self.parent.read_resource(self.page_template)
def start(self): self.nodes = [] from mpx.service.time.time_zone import TimeZone if not IScheduleHolderParent.implementedBy(TimeZone): class_implements(TimeZone, IScheduleHolderParent) self.security_manager = self.nodespace.as_node(self.security_manager) self._pdo_lock.acquire() try: if not self._pdo: self._pdo = PersistentDataObject(self, dmtype=GC_NEVER) self._pdo.holders = {} self._pdo.schedules = {} self._pdo.load() holderdicts = self._pdo.holders.values() holderdumps = [] for holderdict in holderdicts: holderdumps.extend(holderdict.items()) # schedules = {'local': {'Holder1': {'Sched1': Sched1Dump}, 'Holder2': ...}, 'UTC': ...} scheduledicts = [] [scheduledicts.extend(holderdict.values()) for holderdict in self._pdo.schedules.values()] scheduledumps = [] for scheduledict in scheduledicts: scheduledumps.extend(scheduledict.items()) finally: self._pdo_lock.release() super(ScheduleConfigurator, self).start() tstart = time.time() for holdername, holderdump in holderdumps: try: self.nodes.append(IPickles(cPickle.loads(holderdump))()) except: message = self.LOADFAILURE % (self.name, 'Schedule Holder', holdername) msglog.log('broadway', msglog.types.ERR, message) msglog.exception(prefix = 'Handled') tend = time.time() tlapse = tend - tstart msglog.log('broadway', msglog.types.INFO, 'Schedule Configurator loaded ' '%s nodes in %s seconds.' % (len(holderdumps), tlapse)) tstart = time.time() for schedulename, scheduledump in scheduledumps: try: self.nodes.append(IPickles(cPickle.loads(scheduledump))()) except: message = self.LOADFAILURE % (self.name, 'Schedule Holder', schedulename) msglog.log('broadway', msglog.types.ERR, message) msglog.exception(prefix = 'Handled') tend = time.time() tlapse = tend - tstart msglog.log('broadway', msglog.types.INFO, 'Schedule Configurator loaded ' '%s nodes in %s seconds.' % (len(scheduledumps), tlapse)) self.template = self.parent.read_resource(self.page_template)
def setup_hybrid_architecture(nodespace): OGConfigurableNeodeAdapter.nodespace = nodespace from mpx.lib.node import ConfigurableNode from mpx.lib.node import CompositeNode from mpx.lib.rna import NodeFacade class_implements(ConfigurableNode, IOGConfigurableNode) class_implements(CompositeNode, IOGCompositeNode) class_implements(NodeFacade, IOGRemoteNode) class_implements(NodeFacade, IOGCompositeNode) NodeFacade.__conform__ = None
def make_persistent_type(self, klass): if not inspect.isclass(klass): raise TypeError('Argument must be class.') if not IPersistent.implementedBy(klass): class_implements(klass, IPersistent)
def getTagById(self, id): return None class IDOMish(Interface): pass def domish(tag): try: return IDOMish(tag) except: return MockDOMish(tag) class ILeafNode(Interface): pass class_implements(IdInput, ILeafNode) class IContentContainter(Interface): pass class_implements(HTMLgen.AbstractTag, IContentContainter) class_implements(HTMLgen.BasicDocument, IContentContainter) class_implements(HTMLgen.Container, IContentContainter) class_implements(HTMLgen.Form, IContentContainter) class_implements(CustomForm, IContentContainter) class IDataContainer(Interface): pass class_implements(HTMLgen.List, IDataContainer)