def _wait(state): if use_post_state: state[0] = ilo_common.get_server_post_state(node) else: state[0] = _get_power_state(node) # NOTE(rameshg87): For reboot operations, initially the state # will be same as the final state. So defer the check for one retry. if retries[0] != 0 and state[0] == state_to_check: raise loopingcall.LoopingCallDone() if retries[0] > max_retry: state[0] = states.ERROR raise loopingcall.LoopingCallDone() LOG.debug( "%(tim)s secs elapsed while waiting for power state " "of '%(target_state)s', current state of server %(node)s " "is '%(cur_state)s'.", { 'tim': int(retries[0] * interval), 'target_state': state_to_check, 'node': node.uuid, 'cur_state': state[0] }) retries[0] += 1
def _can_get_server_post_state(node): """Checks if POST state can be retrieved. Returns True if the POST state of the server can be retrieved. It cannot be retrieved for older ProLiant models. :param node: The node. :returns: True if POST state can be retrieved, else Flase. :raises: IloOperationError on an error from IloClient library. """ try: ilo_common.get_server_post_state(node) return True except exception.IloOperationNotSupported as exc: LOG.debug("Node %(node)s does not support retrieval of " "boot post state. Reason: %(reason)s", {'node': node.uuid, 'reason': exc}) return False
def _wait(state): if use_post_state: state[0] = ilo_common.get_server_post_state(node) else: state[0] = _get_power_state(node) # NOTE(rameshg87): For reboot operations, initially the state # will be same as the final state. So defer the check for one retry. if retries[0] != 0 and state[0] == state_to_check: raise loopingcall.LoopingCallDone() if retries[0] > max_retry: state[0] = states.ERROR raise loopingcall.LoopingCallDone() LOG.debug("%(tim)s secs elapsed while waiting for power state " "of '%(target_state)s', current state of server %(node)s " "is '%(cur_state)s'.", {'tim': int(retries[0] * interval), 'target_state': state_to_check, 'node': node.uuid, 'cur_state': state[0]}) retries[0] += 1