def wait_for_host_validation(self, host_id, validation_section, validation_id, statuses, timeout=consts.VALIDATION_TIMEOUT, interval=2): logging.info("Wait until host %s validation %s is in status %s", host_id, validation_id, statuses) try: waiting.wait( lambda: self.is_host_validation_in_status( host_id=host_id, validation_section=validation_section, validation_id=validation_id, statuses=statuses), timeout_seconds=timeout, sleep_seconds=interval, waiting_for="Host validation to be in status %s" % statuses, ) except BaseException: logging.error( "Host validation status is: %s", utils.get_host_validation_value( self.api_client.cluster_get(self.id), host_id, validation_section, validation_id)) raise
def is_host_validation_in_status( self, host_id, validation_section, validation_id, statuses ): logging.info("Is host %s validation %s in status %s", host_id, validation_id, statuses) try: return utils.get_host_validation_value(self.api_client.cluster_get(self.id), host_id, validation_section, validation_id) in statuses except: logging.exception("Failed to get cluster %s validation info", self.id)