def connect(self): while True: self.logger.debug("Connecting to leader at %s:%s" % self.leader_address) try: socket = util.connect_and_retry(self.leader_address, max_retries=self._max_retries, delay=self._delay, max_delay=self._max_delay) except IOError: raise ClusterError("Unable to connect to leader %s:%s" % self.leader_address) self.handle(socket)
def test_eventual_connect(): class SimpleServer(gevent.server.StreamServer): def handle(self, socket, address): socket.sendall("hello and goodbye!") socket.shutdown(0) server = SimpleServer(('127.0.0.1', 16667)) gevent.spawn_later(0.5, server.start) client = util.connect_and_retry(('127.0.0.1', 16667), max_delay=1) lines = [line for line in util.line_protocol(client)] assert len(lines) == 1, "Didn't receive the line" server.stop()
def test_does_connect(): class SimpleServer(gevent.server.StreamServer): def handle(self, socket, address): socket.sendall("hello and goodbye!") socket.shutdown(0) server = SimpleServer(('127.0.0.1', 0)) server.start() client = util.connect_and_retry(('127.0.0.1', server.server_port)) lines = [line for line in util.line_protocol(client)] assert len(lines) == 1, "Didn't receive the line" server.stop()
def test_max_retries(): client = util.connect_and_retry(('127.0.0.1', 16666), max_retries=2, delay=0.1, max_delay=0.5)