예제 #1
0
    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)
예제 #2
0
 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)
예제 #3
0
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
예제 #4
0
파일: tools.py 프로젝트: mcruse/monotone
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
예제 #5
0
파일: manager.py 프로젝트: mcruse/monotone
 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)
예제 #6
0
    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)
예제 #7
0
 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)