def _poll_http_address(self, count=240, interval=0.5, is_running=None): address = self.addresses["http"] t0 = perf_counter() for _ in range(count): if callable(is_running) and not is_running(): break wire = None try: wire = Wire.open(address, keep_alive=True) wire.write("GET / HTTP/1.1\r\n" "Host: {}\r\n\r\n".format( address.host).encode("ASCII")) wire.send() data = wire.read(4) except OSError: sleep(interval) else: t1 = perf_counter() - t0 log.info("Machine {!r} available " "for HTTP traffic " "after {:.02f}s".format(self.fq_name, t1)) return True finally: if wire: wire.close() return False
def _poll_bolt_address(self, count=240, interval=0.5, is_running=None): address = self.addresses["bolt"] t0 = perf_counter() for _ in range(count): if callable(is_running) and not is_running(): break wire = None try: wire = Wire.open(address, keep_alive=True) wire.write(b"\x60\x60\xB0\x17" b"\x00\x00\x01\x04" b"\x00\x00\x00\x04" b"\x00\x00\x00\x03" b"\x00\x00\x00\x02") wire.send() data = wire.read(4) except OSError: sleep(interval) else: t1 = perf_counter() - t0 log.info("Machine {!r} available " "for Bolt traffic " "after {:.02f}s".format(self.fq_name, t1)) return True finally: if wire: wire.close() return False