Class: Elesai::LSI

Inherits:
Object
  • Object
show all
Defined in:
lib/elesai/lsi.rb

Defined Under Namespace

Classes: Adapter, BBU, PhysicalDrive, VirtualDrive

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts) ⇒ LSI

Returns a new instance of LSI.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 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

Instance Attribute Details

#adaptersObject (readonly)

Returns the value of attribute adapters.



7
8
9
# File 'lib/elesai/lsi.rb', line 7

def adapters
  @adapters
end

#bbusObject (readonly)

Returns the value of attribute bbus.



7
8
9
# File 'lib/elesai/lsi.rb', line 7

def bbus
  @bbus
end

#enclosuresObject (readonly)

Returns the value of attribute enclosures.



7
8
9
# File 'lib/elesai/lsi.rb', line 7

def enclosures
  @enclosures
end

#physicaldrivesObject (readonly)

Returns the value of attribute physicaldrives.



7
8
9
# File 'lib/elesai/lsi.rb', line 7

def physicaldrives
  @physicaldrives
end

#virtualdrivesObject (readonly)

Returns the value of attribute virtualdrives.



7
8
9
# File 'lib/elesai/lsi.rb', line 7

def virtualdrives
  @virtualdrives
end

Instance Method Details

#add(component) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 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