class Rubyipmi::Ipmitool::Connection

Constants

DRIVERS_MAP

Attributes

options[RW]

Public Class Methods

new(user, pass, host, opts) click to toggle source
# File lib/rubyipmi/ipmitool/connection.rb, line 21
def initialize(user, pass, host, opts)
  @options = Rubyipmi::ObservableHash.new
  raise("Must provide a host to connect to") unless host
  @options["H"] = host
  # Credentials can also be stored in the freeipmi configuration file
  # So they are not required
  @options["U"] = user if user
  @options["P"] = pass if pass
  @options["L"] = opts[:privilege] if opts.key?(:privilege)
  # Note: rubyipmi should auto detect which driver to use so its unnecessary to specify the driver unless
  #  the user really wants to.
  @options['I'] = DRIVERS_MAP[opts[:driver]] unless DRIVERS_MAP[opts[:driver]].nil?
end

Public Instance Methods

bmc() click to toggle source
# File lib/rubyipmi/ipmitool/connection.rb, line 50
def bmc
  @bmc ||= Rubyipmi::Ipmitool::Bmc.new(@options)
end
chassis() click to toggle source
# File lib/rubyipmi/ipmitool/connection.rb, line 58
def chassis
  @chassis ||= Rubyipmi::Ipmitool::Chassis.new(@options)
end
connection_works?() click to toggle source

test the connection to ensure we can at least make a single call

# File lib/rubyipmi/ipmitool/connection.rb, line 36
def connection_works?
  ! (bmc.info.nil? || bmc.info.empty?)
rescue
  false
end
fru() click to toggle source
# File lib/rubyipmi/ipmitool/connection.rb, line 42
def fru
  @fru ||= Rubyipmi::Ipmitool::Fru.new(@options)
end
get_diag() click to toggle source
# File lib/rubyipmi/ipmitool/connection.rb, line 62
def get_diag
  data = {}
  data[:provider] = provider
  data[:frus]     = fru.getfrus
  data[:sensors]  = sensors.getsensors
  data[:bmc_info] = bmc.info
  data[:version]  = bmc.version
  data
end
provider() click to toggle source
# File lib/rubyipmi/ipmitool/connection.rb, line 46
def provider
  'ipmitool'
end
sensors() click to toggle source
# File lib/rubyipmi/ipmitool/connection.rb, line 54
def sensors
  @sensors ||= Rubyipmi::Ipmitool::Sensors.new(@options)
end