module IDRAC::Power
def reboot
def reboot # Login to iDRAC if needed login unless @session_id puts "Rebooting server...".light_cyan # Send reboot command (Reset with ResetType=ForceRestart) path = "/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset" payload = { "ResetType" => "ForceRestart" } response = authenticated_request(:post, path, body: payload.to_json, headers: { 'Content-Type' => 'application/json' }) if response.status >= 200 && response.status < 300 puts "Server reboot command sent successfully".green return true else error_message = "Failed to reboot server. Status code: #{response.status}" begin error_data = JSON.parse(response.body) error_message += ", Message: #{error_data['error']['message']}" if error_data['error'] && error_data['error']['message'] rescue # Ignore JSON parsing errors end raise Error, error_message end end