Example #1
0
    def testReceiver(self, count=1):
        self.server.max_connections = 1
        self.source.limit = count

        oself = self

        class Counter:
            def __init__(self):
                self.received = 0
                self.receiver = None
                self.open_event = False

            def on_link_remote_open(self, event):
                self.open_event = True

            def on_message(self, event):
                assert event.message.body == oself.source.template % self.received
                self.received += 1
                if self.received == count:
                    self.receiver.stop(event.reactor)

        counter = Counter()
        rcv = Receiver("//localhost:%s" % PORT, Processor(counter))
        counter.receiver = rcv
        self.reactor.handler.add(rcv)
        rcv.start(self.reactor)
        self.reactor.run()
        assert counter.received == count
        assert counter.open_event
Example #2
0
    def testAgent(self, count=1, frequency=10):
        self.server.max_connections = 1
        self.agent.sampler.frequency = frequency

        class Counter(Timeout):
            def __init__(self):
                self.received = 0

            def on_message(self, event):
                m = event.message
                assert event.message.body["samples"] == self.received, (
                    event.message.body, self.received)
                self.received += 1
                if self.received == count:
                    rcv.stop(event.reactor)
                    self.cancel()

            def on_timer_task(self, event):
                rcv.stop(event.reactor)

        counter = Counter()
        rcv = Receiver("//localhost:%s" % PORT, Processor(counter))
        rcv.start(self.reactor)
        counter.set_timeout(self.reactor, 20)
        self.reactor.run()
        assert counter.cancelled, "Sampling timed out"
Example #3
0
 def __init__(self, args):
     self.host = args.host
     self.port = args.port
     self.tether = Tether(None, "//%s/monitor" % self.host, "//%s:%s" % (self.host, self.port))
     self.stream = Stream(HistoryStore(100))
     self.directory = Receiver("//%s/directory" % self.host, Processor(self))
     self.receivers = []
     self.handlers = [self.stream]
     self.statMessages = []
Example #4
0
 def add_routes(self, event):
     address, routes = event.message.body
     if "/agents/" in address:
         if routes:
             rcv = Receiver(address, Processor(self))
             self.receivers.append(rcv)
             rcv.start(event.reactor)
         else:
             for rcv in self.receivers:
                 if rcv.source == address:
                     self.receivers.remove(rcv)
                     rcv.stop(event.reactor)
                     break
Example #5
0
 def __init__(self, user, hostname):
     self.user = user
     self.receiver = Receiver("//%s/inbox/%s" % (hostname, user),
                              Processor(self))
     self.width = 10