Beispiel #1
0
 def _on_registered_or_started(self, component, manager=None):
     del manager
     if self._poller is None:
         if isinstance(component, BasePoller):
             self._poller = component
             self.fire(ready(self))
         else:
             if component is not self:
                 return
             component = findcmp(self.root, BasePoller)
             if component is not None:
                 self._poller = component
                 self.fire(ready(self))
             else:
                 self._poller = Poll().register(self)
                 self.fire(ready(self))
Beispiel #2
0
class JournalPoller(Component):
    channel = 'journalctl'

    def __init__(self, channel=channel):
        super(JournalPoller, self).__init__(channel=channel)
        self._poller = None
        self.journal = journal.Reader()
        self.journal.seek_tail()

    @handler("registered", "started", channel="*")
    def _on_registered_or_started(self, component, manager=None):
        del manager
        if self._poller is None:
            if isinstance(component, BasePoller):
                self._poller = component
                self.fire(ready(self))
            else:
                if component is not self:
                    return
                component = findcmp(self.root, BasePoller)
                if component is not None:
                    self._poller = component
                    self.fire(ready(self))
                else:
                    self._poller = Poll().register(self)
                    self.fire(ready(self))

    @handler('ready')
    def __on_ready(self, component):
        del component
        self._poller.addReader(self, self.journal)

    @handler('_read', priority=1)
    def __on_read(self, fd):
        del fd

        for line in self.journal:
            self.fire(read(line))
        self.journal.process()
Beispiel #3
0
class JournalPoller(Component):
    channel = 'journalctl'

    def __init__(self, channel=channel):
        super(JournalPoller, self).__init__(channel=channel)
        self._poller = None
        self.journal = journal.Reader()
        self.journal.seek_tail()

    @handler("registered", "started", channel="*")
    def _on_registered_or_started(self, component, manager=None):
        del manager
        if self._poller is None:
            if isinstance(component, BasePoller):
                self._poller = component
                self.fire(ready(self))
            else:
                if component is not self:
                    return
                component = findcmp(self.root, BasePoller)
                if component is not None:
                    self._poller = component
                    self.fire(ready(self))
                else:
                    self._poller = Poll().register(self)
                    self.fire(ready(self))

    @handler('ready')
    def __on_ready(self, component):
        del component
        self._poller.addReader(self, self.journal)

    @handler('_read', priority=1)
    def __on_read(self, fd):
        del fd

        for line in self.journal:
            self.fire(read(line))
        self.journal.process()
Beispiel #4
0
 def _on_registered_or_started(self, component, manager=None):
     del manager
     if self._poller is None:
         if isinstance(component, BasePoller):
             self._poller = component
             self.fire(ready(self))
         else:
             if component is not self:
                 return
             component = findcmp(self.root, BasePoller)
             if component is not None:
                 self._poller = component
                 self.fire(ready(self))
             else:
                 self._poller = Poll().register(self)
                 self.fire(ready(self))