def report_missing(self, missing_children): """Report missing children. Returns: True if reporting was successful. False otherwise. """ client = None try: request = ReportMissingRequest() request.scheduler_id = self._scheduler_id request.hosts = missing_children chairman_list = StaticServerSet(self._config.chairman_list) client_timeout = self._config.thrift_timeout_sec client = Client(Chairman.Client, "Chairman", chairman_list, client_timeout=client_timeout) res = client.report_missing(request) if res.result != ReportMissingResultCode.OK: rc = ReportMissingResultCode._VALUES_TO_NAMES[res.result] self._logger.warn("Failed to send %s: %s" % (request, rc)) return False return True except Exception: self._logger.warn("Failed to send %s" % request, exc_info=True) return False finally: if client: client.close()
def test_timeout(self): client = Client(Echoer.Client, "echo", self.serverset, acquisition_timeout=0.1) client.echo("foobar") client.close()
def _unregister(self): """Unregister the host with the chairman. :raise: ErrorUnregistering if there was an error from the server :raise: socket.timeout if there was a timeout making the request :raise: common.photon_thrift.client.TimeoutError if there was a timeout acquiring a client """ server_set = StaticServerSet(self.chairman_list) client = Client(Chairman.Client, "Chairman", server_set, client_timeout=REGISTRATION_TIMEOUT) try: host_handler = common.services.get(Host.Iface) res = host_handler.get_host_config_no_logging(GetConfigRequest()) response = client.unregister_host( UnregisterHostRequest(res.hostConfig.agent_id)) if response.result != UnregisterHostResultCode.OK: result = UnregisterHostResultCode._VALUES_TO_NAMES[ response.result] raise Exception("Failed to unregister: %s" % result) self._logger.info("Unregistered with Chairman") finally: client.close()
def test_client_timeout(self): client = Client(Echoer.Client, "echo", self.serverset) client.client_timeout = 0.1 self.serverset.add_server(("localhost", PORT)) client.echo("sleep") client.close()
def test_add_server(self): client = Client(Echoer.Client, "echo", self.serverset) def add_server(): # make the call below wait until there is a server present time.sleep(0.2) self.serverset.add_server(("localhost", PORT)) Thread(target=add_server).start() assert_that(client.echo("foobar"), equal_to("foobar")) assert_that(client.echo("foobar2"), equal_to("foobar2")) assert_that(len(client._acquired_clients), equal_to(0)) assert_that(len(client._clients), equal_to(1)) assert_that(len(client._servers), equal_to(1)) client.close()
def test_remove_server(self): client = Client(Echoer.Client, "echo", self.serverset) self.serverset.add_server(("localhost", PORT + 1)) try: client.echo("foobar") raise AssertionError("Client should have failed") except TTransportException: pass self.serverset.remove_server(("localhost", PORT + 1)) assert_that(len(client._clients), equal_to(0)) self.serverset.add_server(("localhost", PORT)) assert_that(len(client._servers), equal_to(1)) assert_that(client.echo("foobar"), equal_to("foobar")) client.close()
def _unregister(self): """Unregister the host with the chairman. :raise: ErrorUnregistering if there was an error from the server :raise: socket.timeout if there was a timeout making the request :raise: common.photon_thrift.client.TimeoutError if there was a timeout acquiring a client """ server_set = StaticServerSet(self.chairman_list) client = Client(Chairman.Client, "Chairman", server_set, client_timeout=REGISTRATION_TIMEOUT) try: host_handler = common.services.get(Host.Iface) res = host_handler.get_host_config_no_logging(GetConfigRequest()) response = client.unregister_host(UnregisterHostRequest( res.hostConfig.agent_id)) if response.result != UnregisterHostResultCode.OK: result = UnregisterHostResultCode._VALUES_TO_NAMES[ response.result] raise Exception("Failed to unregister: %s" % result) self._logger.info("Unregistered with Chairman") finally: client.close()
def test_close_sync(self): client = Client(Echoer.Client, "echo", self.serverset) client.close() client.echo("foobar")