Пример #1
0
 def test_subsequentBeforeTriggerFiresPriorBeforeDeferred(self):
     """
     If a trigger added to the C{'before'} phase of an event calls back a
     L{Deferred} returned by an earlier trigger in the C{'before'} phase of
     the same event, the remaining C{'before'} triggers for that event
     should be run and any further L{Deferred}s waited on before proceeding
     to the C{'during'} events.
     """
     eventType = 'test'
     events = []
     firstDeferred = Deferred()
     secondDeferred = Deferred()
     def firstBeforeTrigger():
         return firstDeferred
     def secondBeforeTrigger():
         firstDeferred.callback(None)
     def thirdBeforeTrigger():
         events.append('before')
         return secondDeferred
     def duringTrigger():
         events.append('during')
     self.addTrigger('before', eventType, firstBeforeTrigger)
     self.addTrigger('before', eventType, secondBeforeTrigger)
     self.addTrigger('before', eventType, thirdBeforeTrigger)
     self.addTrigger('during', eventType, duringTrigger)
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, ['before'])
     secondDeferred.callback(None)
     self.assertEqual(events, ['before', 'during'])
Пример #2
0
 def test_multipleBeforeReturnDeferred(self):
     """
     If more than one trigger added to the C{'before'} phase of an event
     return L{Deferred}s, the C{'during'} phase should be delayed until they
     are all called back.
     """
     firstDeferred = Deferred()
     secondDeferred = Deferred()
     eventType = 'test'
     events = []
     def firstBeforeTrigger():
         return firstDeferred
     def secondBeforeTrigger():
         return secondDeferred
     def duringTrigger():
         events.append('during')
     self.addTrigger('before', eventType, firstBeforeTrigger)
     self.addTrigger('before', eventType, secondBeforeTrigger)
     self.addTrigger('during', eventType, duringTrigger)
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, [])
     firstDeferred.callback(None)
     self.assertEqual(events, [])
     secondDeferred.callback(None)
     self.assertEqual(events, ['during'])
Пример #3
0
def exit_reactor(res):
    if reactor.running:
        #Manually firing shutdown triggers
        logging.info('Shutting down twisted reactor')
        reactor.fireSystemEvent('shutdown')
        reactor.stop()
    sys.exit(res)
Пример #4
0
def signal_handler(signal, frame):
    print 'You pressed Ctrl+C'
    # As per here:
    # http://www.tornadoweb.org/documentation/twisted.html
    reactor.fireSystemEvent('shutdown')
    reactor.disconnectAll()
    sys.exit(0)
Пример #5
0
 def test_multipleBeforeReturnDeferred(self):
     """
     If more than one trigger added to the C{'before'} phase of an event
     return L{Deferred}s, the C{'during'} phase should be delayed until they
     are all called back.
     """
     firstDeferred = Deferred()
     secondDeferred = Deferred()
     eventType = 'test'
     events = []
     def firstBeforeTrigger():
         return firstDeferred
     def secondBeforeTrigger():
         return secondDeferred
     def duringTrigger():
         events.append('during')
     self.addTrigger('before', eventType, firstBeforeTrigger)
     self.addTrigger('before', eventType, secondBeforeTrigger)
     self.addTrigger('during', eventType, duringTrigger)
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, [])
     firstDeferred.callback(None)
     self.assertEqual(events, [])
     secondDeferred.callback(None)
     self.assertEqual(events, ['during'])
Пример #6
0
 def test_subsequentBeforeTriggerFiresPriorBeforeDeferred(self):
     """
     If a trigger added to the C{'before'} phase of an event calls back a
     L{Deferred} returned by an earlier trigger in the C{'before'} phase of
     the same event, the remaining C{'before'} triggers for that event
     should be run and any further L{Deferred}s waited on before proceeding
     to the C{'during'} events.
     """
     eventType = 'test'
     events = []
     firstDeferred = Deferred()
     secondDeferred = Deferred()
     def firstBeforeTrigger():
         return firstDeferred
     def secondBeforeTrigger():
         firstDeferred.callback(None)
     def thirdBeforeTrigger():
         events.append('before')
         return secondDeferred
     def duringTrigger():
         events.append('during')
     self.addTrigger('before', eventType, firstBeforeTrigger)
     self.addTrigger('before', eventType, secondBeforeTrigger)
     self.addTrigger('before', eventType, thirdBeforeTrigger)
     self.addTrigger('during', eventType, duringTrigger)
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, ['before'])
     secondDeferred.callback(None)
     self.assertEqual(events, ['before', 'during'])
def signal_handler(signal, frame):
        print 'You pressed Ctrl+C'
        # As per here:
        # http://www.tornadoweb.org/documentation/twisted.html
        reactor.fireSystemEvent('shutdown')
        reactor.disconnectAll()
        sys.exit(0)
Пример #8
0
def exit_reactor(res):
    if reactor.running:
        #Manually firing shutdown triggers
        logging.info('Shutting down twisted reactor')
        reactor.fireSystemEvent('shutdown')
        reactor.stop()
    sys.exit(res)
Пример #9
0
 def start():
     try:
         OscInterface("Test", 8000)
     except:
         import traceback
         traceback.print_exc()
         print >> sys.stderr, "Caught exception during startup."
         reactor.fireSystemEvent('shutdown')
Пример #10
0
 def start():
     try:
         OscInterface("Test", 8000)
     except:
         import traceback
         traceback.print_exc()
         print >> sys.stderr, "Caught exception during startup."
         reactor.fireSystemEvent('shutdown')
Пример #11
0
 def _addSystemEventTriggerTest(self, phase):
     eventType = 'test'
     events = []
     def trigger():
         events.append(None)
     self.addTrigger(phase, eventType, trigger)
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, [None])
Пример #12
0
 def _addSystemEventTriggerTest(self, phase):
     eventType = 'test'
     events = []
     def trigger():
         events.append(None)
     self.addTrigger(phase, eventType, trigger)
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, [None])
Пример #13
0
 def start():
     print "roam_node2 starting..."
     try:
         RoamNode()
     except:
         import traceback
         traceback.print_exc()
         print >> sys.stderr, "\nCaught exception during startup. Shutting down."
         reactor.fireSystemEvent('shutdown')
Пример #14
0
 def _bail(self):
     from twisted.internet import reactor, utils
     d = defer.Deferred()
     reactor.addSystemEventTrigger('after', 'shutdown', lambda: d.callback(None))
     reactor.fireSystemEvent('shutdown') # radix's suggestion
     treactor = interfaces.IReactorThreads(reactor, None)
     if treactor is not None:
         treactor.suggestThreadPoolSize(0)
     utils.suppressWarnings(lambda: util.wait(d), 
                            (['ignore', 'Do NOT use wait.*'], {}))
Пример #15
0
    def test_interactionBetweenDifferentEvents(self):
        """
        L{IReactorCore.fireSystemEvent} should behave the same way for a
        particular system event regardless of whether Deferreds are being
        waited on for a different system event.
        """
        events = []

        firstEvent = 'first-event'
        firstDeferred = Deferred()

        def beforeFirstEvent():
            events.append(('before', 'first'))
            return firstDeferred

        def afterFirstEvent():
            events.append(('after', 'first'))

        secondEvent = 'second-event'
        secondDeferred = Deferred()

        def beforeSecondEvent():
            events.append(('before', 'second'))
            return secondDeferred

        def afterSecondEvent():
            events.append(('after', 'second'))

        self.addTrigger('before', firstEvent, beforeFirstEvent)
        self.addTrigger('after', firstEvent, afterFirstEvent)
        self.addTrigger('before', secondEvent, beforeSecondEvent)
        self.addTrigger('after', secondEvent, afterSecondEvent)

        self.assertEqual(events, [])

        # After this, firstEvent should be stuck before 'during' waiting for
        # firstDeferred.
        reactor.fireSystemEvent(firstEvent)
        self.assertEqual(events, [('before', 'first')])

        # After this, secondEvent should be stuck before 'during' waiting for
        # secondDeferred.
        reactor.fireSystemEvent(secondEvent)
        self.assertEqual(events, [('before', 'first'), ('before', 'second')])

        # After this, firstEvent should have finished completely, but
        # secondEvent should be at the same place.
        firstDeferred.callback(None)
        self.assertEqual(events, [('before', 'first'), ('before', 'second'),
                                  ('after', 'first')])

        # After this, secondEvent should have finished completely.
        secondDeferred.callback(None)
        self.assertEqual(events, [('before', 'first'), ('before', 'second'),
                                  ('after', 'first'), ('after', 'second')])
Пример #16
0
 def _bail(self):
     from twisted.internet import reactor
     d = defer.Deferred()
     reactor.addSystemEventTrigger('after', 'shutdown',
                                   lambda: d.callback(None))
     reactor.fireSystemEvent('shutdown')  # radix's suggestion
     # As long as TestCase does crap stuff with the reactor we need to
     # manually shutdown the reactor here, and that requires util.wait
     # :(
     # so that the shutdown event completes
     unittest.TestCase('mktemp')._wait(d)
Пример #17
0
    def _bail(self):
        from twisted.internet import reactor
        d = defer.Deferred()
        reactor.addSystemEventTrigger('after', 'shutdown', lambda: d.callback(None))
        reactor.fireSystemEvent('shutdown') # radix's suggestion

        treactor = interfaces.IReactorThreads(reactor, None)
        if treactor is not None:
            treactor.suggestThreadPoolSize(0)

        util.wait(d) # so that the shutdown event completes
Пример #18
0
 def _bail(self):
     from twisted.internet import reactor
     d = defer.Deferred()
     reactor.addSystemEventTrigger('after', 'shutdown',
                                   lambda: d.callback(None))
     reactor.fireSystemEvent('shutdown') # radix's suggestion
     # As long as TestCase does crap stuff with the reactor we need to
     # manually shutdown the reactor here, and that requires util.wait
     # :(
     # so that the shutdown event completes
     unittest.TestCase('mktemp')._wait(d)
    def test_interactionBetweenDifferentEvents(self):
        """
        L{IReactorCore.fireSystemEvent} should behave the same way for a
        particular system event regardless of whether Deferreds are being
        waited on for a different system event.
        """
        events = []

        firstEvent = "first-event"
        firstDeferred = Deferred()

        def beforeFirstEvent():
            events.append(("before", "first"))
            return firstDeferred

        def afterFirstEvent():
            events.append(("after", "first"))

        secondEvent = "second-event"
        secondDeferred = Deferred()

        def beforeSecondEvent():
            events.append(("before", "second"))
            return secondDeferred

        def afterSecondEvent():
            events.append(("after", "second"))

        self.addTrigger("before", firstEvent, beforeFirstEvent)
        self.addTrigger("after", firstEvent, afterFirstEvent)
        self.addTrigger("before", secondEvent, beforeSecondEvent)
        self.addTrigger("after", secondEvent, afterSecondEvent)

        self.assertEqual(events, [])

        # After this, firstEvent should be stuck before 'during' waiting for
        # firstDeferred.
        reactor.fireSystemEvent(firstEvent)
        self.assertEqual(events, [("before", "first")])

        # After this, secondEvent should be stuck before 'during' waiting for
        # secondDeferred.
        reactor.fireSystemEvent(secondEvent)
        self.assertEqual(events, [("before", "first"), ("before", "second")])

        # After this, firstEvent should have finished completely, but
        # secondEvent should be at the same place.
        firstDeferred.callback(None)
        self.assertEqual(events, [("before", "first"), ("before", "second"), ("after", "first")])

        # After this, secondEvent should have finished completely.
        secondDeferred.callback(None)
        self.assertEqual(events, [("before", "first"), ("before", "second"), ("after", "first"), ("after", "second")])
Пример #20
0
 def _bail(self):
     from twisted.internet import reactor, utils
     d = defer.Deferred()
     reactor.addSystemEventTrigger('after', 'shutdown', lambda: d.callback(None))
     reactor.fireSystemEvent('shutdown') # radix's suggestion
     treactor = interfaces.IReactorThreads(reactor, None)
     if treactor is not None:
         treactor.suggestThreadPoolSize(0)
     # As long as TestCase does crap stuff with the reactor we need to 
     # manually shutdown the reactor here, and that requires util.wait
     # :(
     # so that the shutdown event completes
     utils.suppressWarnings(lambda: util.wait(d), 
                            (['ignore', 'Do NOT use wait.*'], {}))
Пример #21
0
 def _bail(self):
     from twisted.internet import reactor, utils
     d = defer.Deferred()
     reactor.addSystemEventTrigger('after', 'shutdown',
                                   lambda: d.callback(None))
     reactor.fireSystemEvent('shutdown')  # radix's suggestion
     treactor = interfaces.IReactorThreads(reactor, None)
     if treactor is not None:
         treactor.suggestThreadPoolSize(0)
     # As long as TestCase does crap stuff with the reactor we need to
     # manually shutdown the reactor here, and that requires util.wait
     # :(
     # so that the shutdown event completes
     utils.suppressWarnings(lambda: util.wait(d),
                            (['ignore', 'Do NOT use wait.*'], {}))
Пример #22
0
def start_server_and_listen(use_auth, analytics_manager, max_tries=5):
    """The primary entry point for launching the daemon.
    Args:
        use_auth: set to true to enable http authentication
        analytics_manager: to send analytics
    """
    analytics_manager.send_server_startup()
    daemon_server = DaemonServer(analytics_manager)
    try:
        yield daemon_server.start(use_auth)
        analytics_manager.send_server_startup_success()
    except Exception as e:
        log.exception('Failed to startup')
        yield daemon_server.stop()
        analytics_manager.send_server_startup_error(str(e))
        reactor.fireSystemEvent("shutdown")
Пример #23
0
 def test_duringPreceedsAfter(self):
     """
     L{IReactorCore.addSystemEventTrigger} should call triggers added to the
     C{'during'} phase before it calls triggers added to the C{'after'}
     phase.
     """
     eventType = 'test'
     events = []
     def duringTrigger():
         events.append('during')
     def afterTrigger():
         events.append('after')
     self.addTrigger('during', eventType, duringTrigger)
     self.addTrigger('after', eventType, afterTrigger)
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, ['during', 'after'])
Пример #24
0
 def test_beforePreceedsDuring(self):
     """
     L{IReactorCore.addSystemEventTrigger} should call triggers added to the
     C{'before'} phase before it calls triggers added to the C{'during'}
     phase.
     """
     eventType = 'test'
     events = []
     def beforeTrigger():
         events.append('before')
     def duringTrigger():
         events.append('during')
     self.addTrigger('before', eventType, beforeTrigger)
     self.addTrigger('during', eventType, duringTrigger)
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, ['before', 'during'])
Пример #25
0
 def test_duringPreceedsAfter(self):
     """
     L{IReactorCore.addSystemEventTrigger} should call triggers added to the
     C{'during'} phase before it calls triggers added to the C{'after'}
     phase.
     """
     eventType = 'test'
     events = []
     def duringTrigger():
         events.append('during')
     def afterTrigger():
         events.append('after')
     self.addTrigger('during', eventType, duringTrigger)
     self.addTrigger('after', eventType, afterTrigger)
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, ['during', 'after'])
Пример #26
0
 def test_removeSystemEventTrigger(self):
     """
     A trigger removed with L{IReactorCore.removeSystemEventTrigger} should
     not be called when the event fires.
     """
     eventType = 'test'
     events = []
     def firstBeforeTrigger():
         events.append('first')
     def secondBeforeTrigger():
         events.append('second')
     self.addTrigger('before', eventType, firstBeforeTrigger)
     self.removeTrigger(
         self.addTrigger('before', eventType, secondBeforeTrigger))
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, ['first'])
Пример #27
0
 def test_removeSystemEventTrigger(self):
     """
     A trigger removed with L{IReactorCore.removeSystemEventTrigger} should
     not be called when the event fires.
     """
     eventType = 'test'
     events = []
     def firstBeforeTrigger():
         events.append('first')
     def secondBeforeTrigger():
         events.append('second')
     self.addTrigger('before', eventType, firstBeforeTrigger)
     self.removeTrigger(
         self.addTrigger('before', eventType, secondBeforeTrigger))
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, ['first'])
Пример #28
0
 def test_beforePreceedsDuring(self):
     """
     L{IReactorCore.addSystemEventTrigger} should call triggers added to the
     C{'before'} phase before it calls triggers added to the C{'during'}
     phase.
     """
     eventType = 'test'
     events = []
     def beforeTrigger():
         events.append('before')
     def duringTrigger():
         events.append('during')
     self.addTrigger('before', eventType, beforeTrigger)
     self.addTrigger('during', eventType, duringTrigger)
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, ['before', 'during'])
Пример #29
0
    def test_removeSystemEventTrigger(self):
        """
        A trigger removed with L{IReactorCore.removeSystemEventTrigger} should
        not be called when the event fires.
        """
        eventType = "test"
        events = []

        def firstBeforeTrigger():
            events.append("first")

        def secondBeforeTrigger():
            events.append("second")

        self.addTrigger("before", eventType, firstBeforeTrigger)
        self.removeTrigger(self.addTrigger("before", eventType, secondBeforeTrigger))
        self.assertEqual(events, [])
        reactor.fireSystemEvent(eventType)
        self.assertEqual(events, ["first"])
    def test_removeSystemEventTrigger(self):
        """
        A trigger removed with L{IReactorCore.removeSystemEventTrigger} should
        not be called when the event fires.
        """
        eventType = "test"
        events = []

        def firstBeforeTrigger():
            events.append("first")

        def secondBeforeTrigger():
            events.append("second")

        self.addTrigger("before", eventType, firstBeforeTrigger)
        self.removeTrigger(self.addTrigger("before", eventType, secondBeforeTrigger))
        self.assertEqual(events, [])
        reactor.fireSystemEvent(eventType)
        self.assertEqual(events, ["first"])
Пример #31
0
 def test_beforeReturnsDeferred(self):
     """
     If a trigger added to the C{'before'} phase of an event returns a
     L{Deferred}, the C{'during'} phase should be delayed until it is called
     back.
     """
     triggerDeferred = Deferred()
     eventType = 'test'
     events = []
     def beforeTrigger():
         return triggerDeferred
     def duringTrigger():
         events.append('during')
     self.addTrigger('before', eventType, beforeTrigger)
     self.addTrigger('during', eventType, duringTrigger)
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, [])
     triggerDeferred.callback(None)
     self.assertEqual(events, ['during'])
Пример #32
0
 def test_beforeReturnsDeferred(self):
     """
     If a trigger added to the C{'before'} phase of an event returns a
     L{Deferred}, the C{'during'} phase should be delayed until it is called
     back.
     """
     triggerDeferred = Deferred()
     eventType = 'test'
     events = []
     def beforeTrigger():
         return triggerDeferred
     def duringTrigger():
         events.append('during')
     self.addTrigger('before', eventType, beforeTrigger)
     self.addTrigger('during', eventType, duringTrigger)
     self.assertEqual(events, [])
     reactor.fireSystemEvent(eventType)
     self.assertEqual(events, [])
     triggerDeferred.callback(None)
     self.assertEqual(events, ['during'])
Пример #33
0
    def test_wsgi(self):
        """
        The I{--wsgi} option takes the fully-qualifed Python name of a WSGI
        application object and creates a L{WSGIResource} at the root which
        serves that application.
        """
        options = Options()
        options.parseOptions(['--wsgi', __name__ + '.application'])
        root = options['root']
        self.assertTrue(root, WSGIResource)
        self.assertIdentical(root._reactor, reactor)
        self.assertTrue(isinstance(root._threadpool, ThreadPool))
        self.assertIdentical(root._application, application)

        # The threadpool should start and stop with the reactor.
        self.assertFalse(root._threadpool.started)
        reactor.fireSystemEvent('startup')
        self.assertTrue(root._threadpool.started)
        self.assertFalse(root._threadpool.joined)
        reactor.fireSystemEvent('shutdown')
        self.assertTrue(root._threadpool.joined)
Пример #34
0
    def test_wsgi(self):
        """
        The I{--wsgi} option takes the fully-qualifed Python name of a WSGI
        application object and creates a L{WSGIResource} at the root which
        serves that application.
        """
        options = Options()
        options.parseOptions(['--wsgi', __name__ + '.application'])
        root = options['root']
        self.assertTrue(root, WSGIResource)
        self.assertIdentical(root._reactor, reactor)
        self.assertTrue(isinstance(root._threadpool, ThreadPool))
        self.assertIdentical(root._application, application)

        # The threadpool should start and stop with the reactor.
        self.assertFalse(root._threadpool.started)
        reactor.fireSystemEvent('startup')
        self.assertTrue(root._threadpool.started)
        self.assertFalse(root._threadpool.joined)
        reactor.fireSystemEvent('shutdown')
        self.assertTrue(root._threadpool.joined)
Пример #35
0
    def start_listening(self):
        from twisted.internet import reactor, error as tx_error

        try:
            self.server = self.get_server_factory()
            if self.server.use_ssl:
                log.info("Using SSL")
                self.listening_port = reactor.listenSSL(
                    conf.settings['api_port'],
                    self.server,
                    self.server.options,
                    interface=conf.settings['api_host'])
            else:
                log.info("Not using SSL")
                self.listening_port = reactor.listenTCP(
                    conf.settings['api_port'],
                    self.server,
                    interface=conf.settings['api_host'])
            log.info("lbrynet API listening on TCP %s:%i",
                     conf.settings['api_host'], conf.settings['api_port'])
            yield self.setup()
            self.analytics_manager.send_server_startup_success()
        except tx_error.CannotListenError:
            log.error(
                'lbrynet API failed to bind TCP %s:%i for listening. Daemon is already running or this port is '
                'already in use by another application.',
                conf.settings['api_host'], conf.settings['api_port'])
            reactor.fireSystemEvent("shutdown")
        except defer.CancelledError:
            log.info("shutting down before finished starting")
            reactor.fireSystemEvent("shutdown")
        except Exception as err:
            self.analytics_manager.send_server_startup_error(str(err))
            log.exception('Failed to start lbrynet-daemon')
            reactor.fireSystemEvent("shutdown")
    def test_system_events_triggered(self):
        batons = list()
        stub_pipeline_provider = StubPipelineProvider(batons.append)
        self.runtime_environment.resource_manager.register('pipeline.test_pipeline', stub_pipeline_provider)
        
        provider = system_events_provider.SystemEventsProvider()

        configuration_manager = self.runtime_environment.configuration_manager

        for event_type in 'startup', 'shutdown':
            configuration_manager.set('system-events.%s.name' % event_type, 'test_pipeline')

        provider.configure(self.runtime_environment)

        self.runtime_environment.dependency_manager.resolve_initial_states()

        # wait a reactor iteration so the startup event is triggered
        yield util.wait(0)
        self.assertEquals(batons, [dict(event_type='startup')])
        batons[:] = list()

        # trigger the shutdown event, which should give our pipeline a baton
        reactor.fireSystemEvent('shutdown')
        self.assertEquals(batons, [dict(event_type='shutdown')])
Пример #37
0
    def start_listening(self):
        from twisted.internet import reactor, error as tx_error

        try:
            self.server = self.get_server_factory()
            self.listening_port = reactor.listenTCP(
                conf.settings['api_port'], self.server, interface=conf.settings['api_host']
            )
            log.info("lbrynet API listening on TCP %s:%i", conf.settings['api_host'], conf.settings['api_port'])
            yield self.setup()
            self.analytics_manager.send_server_startup_success()
        except tx_error.CannotListenError:
            log.error('lbrynet API failed to bind TCP %s:%i for listening', conf.settings['api_host'],
                      conf.settings['api_port'])
            reactor.fireSystemEvent("shutdown")
        except defer.CancelledError:
            log.info("shutting down before finished starting")
            reactor.fireSystemEvent("shutdown")
        except Exception as err:
            self.analytics_manager.send_server_startup_error(str(err))
            log.exception('Failed to start lbrynet-daemon')
            reactor.fireSystemEvent("shutdown")
Пример #38
0
import tornado.ioloop
import tornado.web

import tornado.platform.twisted
tornado.platform.twisted.install()
from twisted.internet import reactor

from internals.commandRegistry import CommandRegistry

from connectors import irc, jabber
from commands import shutdown, deploy

if __name__ == "__main__":
    import config
    reg = CommandRegistry.getRegistry()
    if reg.websinks:
        application = tornado.web.Application(reg.websinks)
        p = getattr(config, 'webport', 8808)
        application.listen(p)
    try:
        print "Starting loop"
        tornado.ioloop.IOLoop.instance().start()
    except:
        print "Stopping loop ... shutdown"
        reactor.fireSystemEvent('shutdown')
        print "Disconnect all"
        reactor.disconnectAll()
        print "Actual stop"
        tornado.ioloop.IOLoop.instance().stop()
        print "Stopped"
Пример #39
0
 def clientConnectionFailed(self, connector, reason):
     print("connection failed: {}".format(reason))
     reactor.fireSystemEvent('shutdown')
     reactor.disconnectAll()
     tornado.ioloop.IOLoop.instance().stop()
Пример #40
0
def going_away(registry, user, instruction, match):
    reactor.fireSystemEvent('shutdown')
    reactor.disconnectAll()
    tornado.ioloop.IOLoop.instance().stop()
    return {'success': True, 'answer': "So long and thanks for all the fish."}
Пример #41
0
  def run(self):

    import objectfactory
    import objectid

    import keymap

    pygame.mixer.Sound('spin.ogg').play(-1)

    game_world = objectfactory.ObjectFactory.from_id(objectid.world_id)

    client_proto = ClientProtocol(game_world)

    reactor.listenUDP(self.client_port, client_proto)
    reactor.fireSystemEvent('startup')

    fps = 30
    clock = pygame.time.Clock()

    sequence_number = 0

    keys = keymap.KeyMap()
    active = True

    try:
      while active:
        delta_t = clock.tick(fps)

        msg = [sequence_number]
        sequence_number += 1

        keys.read_keys(pygame.key.get_pressed())
        keys.to_network(msg)

        msg = map(str, msg)
        msg = ','.join(msg)

        client_proto.transport.write(msg, (self.host, self.host_port))

        reactor.iterate(0)

        if client_proto.our_monkey == None:
          continue

        events = []
        for event in pygame.event.get():
          events.append(event)

          if event.type == pygame.QUIT:
            active = False
          elif event.type == pygame.KEYDOWN:
            if event.unicode == 'q':
              active = False

        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)

        glMatrixMode(GL_MODELVIEW)
        glLoadIdentity()

        zoom = 0.1
        glScale(zoom, zoom, 1)

        # center camera on monkey
        mx, my = client_proto.our_monkey.body.position
        glTranslate(-mx, -my, 0)

        game_world.tree_render()
        game_world.play_sounds()

        pygame.display.flip()

    except Exception as e:
      print e

    pygame.mixer.stop()
    reactor.fireSystemEvent('shutdown')
Пример #42
0
    def blockMeNow(self):
	global lst
	print json.dumps(lst)
	reactor.fireSystemEvent('shutdown')
Пример #43
0
 def stop(self):
     if reactor.running:
         log.info("Stopping the reactor")
         reactor.fireSystemEvent("shutdown")
Пример #44
0
 def exit_callback():
     log.msg("Exiting due to timeout (--exit-timeout/-t)")
     reactor.fireSystemEvent('shutdown')
     #reactor.stop()
     sys.exit(12)
Пример #45
0
 def exit_callback():
     log.msg("Exiting due to timeout (--exit-timeout/-t)")
     reactor.fireSystemEvent('shutdown')
     #reactor.stop()
     sys.exit(12)
Пример #46
0
 def _bootstrap_complete():
     # do some things after bootstrap
     # e.g. provide a way to alert the BridgeManager
     # that this bridge has completed bootstrap
     reactor.fireSystemEvent('bootstrap')
Пример #47
0
      client.keys.from_network(msg)


  def iterate(self, step=0):
    self.reactor.iterate(step)

  def broadcast(self, msg):
    for address in list(self.active):
      client = self.active[address]
      client.time_to_live -= 1

      if client.time_to_live == 0:
        self.removed_monkeys.append(client.monkey)
        del self.active[address]
        continue

      client_id = client.monkey.player_id
      client_tag = str(client_id)+','
      self.transport.write(client_tag + msg, address)

  def shutdown(self):
    self.reactor.fireSystemEvent('shutdown')

# Singleton
Server = Server(reactor)
reactor.listenUDP(8007, Server)
reactor.fireSystemEvent('startup')


Пример #48
0
 def _shutdown_by_ros(self, why):
     reactor.fireSystemEvent('shutdown')
Пример #49
0
def shutdown_by_ros(why):
    reactor.fireSystemEvent('shutdown')
Пример #50
0
 def stop(self):
     if reactor.running:
         log.info("Stopping the reactor")
         reactor.fireSystemEvent("shutdown")
Пример #51
0
 def _shutdown_by_ros(self, *args):
     """
     ROS shutdown callback.  Sends a signal to reactor to shutdown.
     """
     reactor.fireSystemEvent('shutdown')
Пример #52
0
 def _bootstrap_complete():
     # do some things after bootstrap
     # e.g. provide a way to alert the BridgeManager
     # that this bridge has completed bootstrap
     reactor.fireSystemEvent('bootstrap')
Пример #53
0
 def clientConnectionFailed(self, connector, reason):
     print("connection failed: {}".format(reason))
     reactor.fireSystemEvent('shutdown')
     reactor.disconnectAll()
     tornado.ioloop.IOLoop.instance().stop()
Пример #54
0
    def start():
        try:
            t = TouchOscInterface()
            default = rospy.get_param("~load_default", False)
            handlers = rospy.get_param("~handlers", None)

            loaded_handlers = {}

            if handlers:
                rospy.loginfo("Adding handlers from configuration")
                for handler in handlers:

                    params = rospy.get_param("~" + handler)
                    HandlerClass = load_handler(params['pkg'], params['class'])
                    try:
                        aliases = [handler] + params['tabpage_aliases']
                    except KeyError:
                        aliases = [handler]
                        pass
                    rospy.loginfo("Adding %s handler with names %s" %
                                  (handler, aliases))
                    loaded_handlers[handler] = HandlerClass(
                        t, handler, aliases)
                    t.register_handler(loaded_handlers[handler])

            if default:
                names = set()
                default_handlers = {}
                for tabpage in t.tabpage_handlers.itervalues():
                    [names.add(n) for n in tabpage.tabpage_names]
                layout_file = rospy.get_param("layout_file", None)
                layout_path = rospy.get_param("layout_path", None)
                layouts = rospy.get_param("layouts", None)

                if not layout_file and not layout_path:
                    rospy.logfatal(
                        """Default set, but layout_file and layout_path
                    were not given, default tabpage will not operate""")
                if layout_path and not layouts:
                    rospy.logfatal("""layout_path given, but no layouts
                    listed, rososc will not operate""")
                if layout_path and layouts:
                    for layout in layouts:
                        source = pytouchosc.Layout.createFromExisting(
                            os.path.join(layout_path, layout))
                        for tp in source.getTabpageNames():
                            if tp not in names:
                                names.add(tp)
                                default_handlers[tp] = DefaultTabpageHandler(
                                    t, source.getTabpage(tp))
                                t.register_handler(default_handlers[tp])
                if layout_file:
                    source = pytouchosc.Layout.createFromExisting(layout_file)
                    for tp in source.getTabpageNames():
                        if tp not in names:
                            names.add(tp)
                            default_handlers[tp] = DefaultTabpageHandler(
                                t, source.getTabpage(tp))
                            t.register_handler(default_handlers[tp])

            t.initialize_tabpages()
        except:
            import traceback
            traceback.print_exc()
            print >> sys.stderr, "Caught exception during startup. Shutting down."
            reactor.fireSystemEvent('shutdown')
Пример #55
0
    def start():
        try:
            t = TouchOscInterface()
            default = rospy.get_param("~load_default", False)
            handlers = rospy.get_param("~handlers", None)

            loaded_handlers = {}

            if handlers:
                rospy.loginfo("Adding handlers from configuration")
                for handler in handlers:

                    params = rospy.get_param("~" + handler)
                    HandlerClass = load_handler(params['pkg'],
                                                params['class'])
                    try:
                        aliases = [handler] + params['tabpage_aliases']
                    except KeyError:
                        aliases = [handler]
                        pass
                    rospy.loginfo("Adding %s handler with names %s" % (handler, aliases))
                    loaded_handlers[handler] = HandlerClass(t,
                                                           handler,
                                                           aliases)
                    t.register_handler(loaded_handlers[handler])

            if default:
                names = set()
                default_handlers = {}
                for tabpage in t.tabpage_handlers.itervalues():
                    [names.add(n) for n in tabpage.tabpage_names]
                layout_file = rospy.get_param("layout_file", None)
                layout_path = rospy.get_param("layout_path", None)
                layouts = rospy.get_param("layouts", None)

                if not layout_file and not layout_path:
                    rospy.logfatal("""Default set, but layout_file and layout_path
                    were not given, default tabpage will not operate""")
                if layout_path and not layouts:
                    rospy.logfatal("""layout_path given, but no layouts
                    listed, rososc will not operate""")
                if layout_path and layouts:
                    for layout in layouts:
                        source = pytouchosc.Layout.createFromExisting(os.path.join(layout_path,
                                                                                   layout))
                        for tp in source.getTabpageNames():
                            if tp not in names:
                                names.add(tp)
                                default_handlers[tp] = DefaultTabpageHandler(t, source.getTabpage(tp))
                                t.register_handler(default_handlers[tp])
                if layout_file:
                    source = pytouchosc.Layout.createFromExisting(layout_file)
                    for tp in source.getTabpageNames():
                        if tp not in names:
                            names.add(tp)
                            default_handlers[tp] = DefaultTabpageHandler(t, source.getTabpage(tp))
                            t.register_handler(default_handlers[tp])

            t.initialize_tabpages()
        except:
            import traceback
            traceback.print_exc()
            print >> sys.stderr, "Caught exception during startup. Shutting down."
            reactor.fireSystemEvent('shutdown')