module IDRAC::Boot
def get_idrac_version
def get_idrac_version response = authenticated_request(:get, "/redfish/v1") if response.status == 200 begin data = JSON.parse(response.body) redfish = data["RedfishVersion"] server = response.headers["server"] case server.to_s.downcase when /appweb\/4.5.4/, /idrac\/8/ return 8 when /apache/, /idrac\/9/ return 9 else # Try to determine by RedfishVersion as fallback if redfish == "1.4.0" return 8 elsif redfish == "1.18.0" return 9 else raise Error, "Unknown iDRAC version: #{server} / #{redfish}" end end rescue JSON::ParserError raise Error, "Failed to parse iDRAC response: #{response.body}" end else raise Error, "Failed to get iDRAC information. Status code: #{response.status}" end end