module IDRAC::Power

def wait_for_power_state(target_state:, tries: 6)

def wait_for_power_state(target_state:, tries: 6)
  retry_count = tries
  
  while retry_count > 0
    begin
      current_state = get_power_state
      
      return true if current_state == target_state
      
      puts "Waiting for power #{target_state == 'On' ? 'on' : 'off'}...".yellow
      puts "Current state: #{current_state}"
      retry_count -= 1
      sleep 8
    rescue => e
      puts "Error checking power state: #{e.message}".red
      retry_count -= 1
      sleep 5
    end
  end
  
  puts "Failed to reach power state #{target_state}".red
  return false
end