module IDRAC::System
def idrac_network
def idrac_network response = authenticated_request(:get, "/redfish/v1/Managers/iDRAC.Embedded.1/EthernetInterfaces/iDRAC.Embedded.1%23NIC.1") if response.status == 200 begin data = JSON.parse(response.body) idrac = { "name" => data["Id"], "status" => data["Status"]["Health"] == 'OK' ? 'Up' : 'Down', "mac" => data["MACAddress"], "mask" => data["IPv4Addresses"].first["SubnetMask"], "ipv4" => data["IPv4Addresses"].first["Address"], "origin" => data["IPv4Addresses"].first["AddressOrigin"], # DHCP or Static "port" => nil, "speed_mbps" => data["SpeedMbps"], "kind" => "ethernet" } return idrac rescue JSON::ParserError raise Error, "Failed to parse iDRAC network response: #{response.body}" end else raise Error, "Failed to get iDRAC network. Status code: #{response.status}" end end