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 _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()