class Elesai::LSI

Attributes

adapters[R]
bbus[R]
enclosures[R]
physicaldrives[R]
virtualdrives[R]

Public Class Methods

new(opts) click to toggle source
# File lib/elesai/lsi.rb, line 9
def initialize(opts)
  @adapters = []
  @virtualdrives = []
  @physicaldrives = {}
  @enclosures = []
  @spans = []
  @bbus = []

  case opts[:hint]
    when :physicaldrive
      Megacli::PDlist_aAll.new.parse!(self,opts)
    when :virtualdrive
      Megacli::LDPDinfo_aAll.new.parse!(self,opts)
    when :adapter
      Megacli::AdpAllInfo_aAll.new.parse!(self,opts)
    when :bbu
      Megacli::AdpBbuCmd_aAll.new.parse!(self,opts)
    else
      Megacli::AdpAllInfo_aAll.new.parse!(self,opts)
      Megacli::PDlist_aAll.new.parse!(self,opts)
      Megacli::LDPDinfo_aAll.new.parse!(self,opts)
      Megacli::AdpBbuCmd_aAll.new.parse!(self,opts)
  end
end

Public Instance Methods

add(component) click to toggle source
# File lib/elesai/lsi.rb, line 34
def add(component)
  case component
    when Adapter
      @adapters[component[:id]] = component if @adapters[component[:id]].nil?
    when VirtualDrive
      @virtualdrives.push(component)
    when PhysicalDrive
      @physicaldrives[component._id] = component if @physicaldrives[component._id].nil?
      return @physicaldrives[component._id]
    when BBU
      @bbus.push(component)
    else
      raise StandardError, "invalid component #{component.class}"
  end
end