def test_fle(): now = time.time() init = Initial(timestamp=now, src="10.0.0.1:32000", dst="10.0.0.2:3888", server_id=1, election_addr="10.0.0.1:3888") notif = Notification(timestamp=now, src="10.0.0.1:32000", dst="10.0.0.2:3888", state=PeerState.LOOKING, leader=4, zxid=0x100, peer_epoch=0x1, election_epoch=0x1, version=2, config="config") output = StringIO() printer = Printer(colors=False, output=output) printer.add(init) printer.add(notif) # wait for the messages to be consumed while not printer.empty: time.sleep(0.0001) # stop it printer.stop() while not printer.stopped: time.sleep(0.0001) assert str(init) in output.getvalue() assert str(notif) in output.getvalue()
def test_zab(): now = time.time() request = Request( timestamp=now, src="10.0.0.3:2889", dst="10.0.0.4:58566", ptype=PacketType.REQUEST, zxid=-1, length=100, session_id=0xdeadbeef, cxid=90000, req_type=OpCodes.CREATE, ) proposal = Proposal( timestamp=now, src="10.0.0.3:2889", dst="10.0.0.4:58566", ptype=PacketType.PROPOSAL, zxid=0x100, length=100, session_id=0xdeadbeef, cxid=90000, txn_zxid=0x100, txn_time=now, txn_type=OpCodes.CREATE, ) output = StringIO() printer = Printer(colors=False, output=output) printer.add(request) printer.add(proposal) # consume all messages while not printer.empty: time.sleep(0.0001) # stop it printer.stop() while not printer.stopped: time.sleep(0.0001) assert str(request) in output.getvalue() assert str(proposal) in output.getvalue()
def test_zab(): now = time.time() request = Request( timestamp=now, src="10.0.0.3:2889", dst="10.0.0.4:58566", ptype=PacketType.REQUEST, zxid=-1, length=100, session_id=0xDEADBEEF, cxid=90000, req_type=OpCodes.CREATE, ) proposal = Proposal( timestamp=now, src="10.0.0.3:2889", dst="10.0.0.4:58566", ptype=PacketType.PROPOSAL, zxid=0x100, length=100, session_id=0xDEADBEEF, cxid=90000, txn_zxid=0x100, txn_time=now, txn_type=OpCodes.CREATE, ) output = StringIO() printer = Printer(colors=False, output=output) printer.add(request) printer.add(proposal) # consume all messages while not printer.empty: time.sleep(0.0001) # stop it printer.stop() while not printer.stopped: time.sleep(0.0001) assert str(request) in output.getvalue() assert str(proposal) in output.getvalue()
def test_fle(): now = time.time() init = Initial( timestamp=now, src="10.0.0.1:32000", dst="10.0.0.2:3888", server_id=1, election_addr="10.0.0.1:3888" ) notif = Notification( timestamp=now, src="10.0.0.1:32000", dst="10.0.0.2:3888", state=PeerState.LOOKING, leader=4, zxid=0x100, peer_epoch=0x1, election_epoch=0x1, version=2, config="config" ) output = StringIO() printer = Printer(colors=False, output=output) printer.add(init) printer.add(notif) # wait for the messages to be consumed while not printer.empty: time.sleep(0.0001) # stop it printer.stop() while not printer.stopped: time.sleep(0.0001) assert str(init) in output.getvalue() assert str(notif) in output.getvalue()
def main(_, options): if options.version: sys.stdout.write("%s\n" % __version__) sys.exit(0) printer = Printer(options.colors, output=sys.stdout, skip_print=None if options.include_pings else lambda msg: isinstance(msg, ZAB.Ping)) zk_printer = ZKDefaultPrinter(options.colors, loopback=False, output=sys.stdout) zk_printer.start() def fle_sniffer_factory(port): return Sniffer(None, port, FLE.Message, printer.add, options.dump_bad_packet, start=False) def zab_sniffer_factory(port): return Sniffer(None, port, ZAB.QuorumPacket, printer.add, options.dump_bad_packet, start=False) def zk_sniffer_factory(port): config = ZKSnifferConfig(None) config.track_replies = True config.zookeeper_port = port config.client_port = 0 if options.include_pings: config.include_pings() return ZKSniffer(config, zk_printer.request_handler, zk_printer.reply_handler, zk_printer.event_handler, error_to_stderr=True) if not options.offline: sniffer = OmniSniffer(fle_sniffer_factory, zab_sniffer_factory, zk_sniffer_factory, pfilter=options.packet_filter, dump_bad_packet=options.dump_bad_packet) else: sniffer = OmniSniffer(fle_sniffer_factory, zab_sniffer_factory, zk_sniffer_factory, pfilter=options.packet_filter, dump_bad_packet=options.dump_bad_packet, start=False) sniffer.run(offline=options.offline) try: while (printer.isAlive() or zk_printer.isAlive()) and not options.offline: sniffer.join(1) except (KeyboardInterrupt, SystemExit): pass # consume all messages while not printer.empty or not zk_printer.empty: time.sleep(0.0001) # stop it printer.stop() zk_printer.stop() while not printer.stopped or not zk_printer.stopped: time.sleep(0.0001)
def main(_, options): if options.version: sys.stdout.write("%s\n" % __version__) sys.exit(0) printer = Printer(options.colors, output=sys.stdout, skip_print=None if options.include_pings else lambda msg: isinstance(msg, ZAB.Ping)) zk_printer = ZKDefaultPrinter(options.colors, loopback=False, output=sys.stdout) zk_printer.start() def fle_sniffer_factory(port): return Sniffer('dummy', port, FLE.Message, printer.add, options.dump_bad_packet, start=False) def zab_sniffer_factory(port): return Sniffer('dummy', port, ZAB.QuorumPacket, printer.add, options.dump_bad_packet, start=False) def zk_sniffer_factory(port): config = ZKSnifferConfig('dummy') config.track_replies = True config.zookeeper_port = port config.client_port = 0 if options.include_pings: config.include_pings() return ZKSniffer( config, zk_printer.request_handler, zk_printer.reply_handler, zk_printer.event_handler, error_to_stderr=True ) if not options.offline: sniffer = OmniSniffer( fle_sniffer_factory, zab_sniffer_factory, zk_sniffer_factory, pfilter=options.packet_filter, dump_bad_packet=options.dump_bad_packet) else: sniffer = OmniSniffer( fle_sniffer_factory, zab_sniffer_factory, zk_sniffer_factory, pfilter=options.packet_filter, dump_bad_packet=options.dump_bad_packet, start=False) sniffer.run(offline=options.offline) try: while (printer.isAlive() or zk_printer.isAlive()) and not options.offline: sniffer.join(1) except (KeyboardInterrupt, SystemExit): pass # consume all messages while not printer.empty or not zk_printer.empty: time.sleep(0.0001) # stop it printer.stop() zk_printer.stop() while not printer.stopped or not zk_printer.stopped: time.sleep(0.0001)