Exemple #1
0
 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
Exemple #2
0
 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