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
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"
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 = []
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
def __init__(self, user, hostname): self.user = user self.receiver = Receiver("//%s/inbox/%s" % (hostname, user), Processor(self)) self.width = 10