Class: Elesai::LSIArray

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) ⇒ LSIArray

Returns a new instance of LSIArray.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/elesai/lsi.rb', line 7

def initialize(opts)
  @adapters = []
  @virtualdrives = []
  @physicaldrives = {}
  @enclosures = []
  @spans = []
  @bbus = []

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

Instance Attribute Details

#adaptersObject (readonly)

Returns the value of attribute adapters.



5
6
7
# File 'lib/elesai/lsi.rb', line 5

def adapters
  @adapters
end

#bbusObject (readonly)

Returns the value of attribute bbus.



5
6
7
# File 'lib/elesai/lsi.rb', line 5

def bbus
  @bbus
end

#enclosuresObject (readonly)

Returns the value of attribute enclosures.



5
6
7
# File 'lib/elesai/lsi.rb', line 5

def enclosures
  @enclosures
end

#physicaldrivesObject (readonly)

Returns the value of attribute physicaldrives.



5
6
7
# File 'lib/elesai/lsi.rb', line 5

def physicaldrives
  @physicaldrives
end

#virtualdrivesObject (readonly)

Returns the value of attribute virtualdrives.



5
6
7
# File 'lib/elesai/lsi.rb', line 5

def virtualdrives
  @virtualdrives
end

Instance Method Details

#add_adapter(a) ⇒ Object



29
30
31
# File 'lib/elesai/lsi.rb', line 29

def add_adapter(a)
  @adapters[a[:id]] = a if @adapters[a[:id]].nil?
end

#add_bbu(bbu) ⇒ Object



42
43
44
# File 'lib/elesai/lsi.rb', line 42

def add_bbu(bbu)
  @bbus.push(bbu)
end

#add_physicaldrive(pd) ⇒ Object



37
38
39
40
# File 'lib/elesai/lsi.rb', line 37

def add_physicaldrive(pd)
  @physicaldrives[pd._id] = pd if @physicaldrives[pd._id].nil?
  @physicaldrives[pd._id]
end

#add_virtualdrive(vd) ⇒ Object



33
34
35
# File 'lib/elesai/lsi.rb', line 33

def add_virtualdrive(vd)
  @virtualdrives.push(vd)
end

#to_sObject



46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/elesai/lsi.rb', line 46

def to_s
  lsiarrayout = "LSI Array\n"
  @adapters.each do |adapter|
    lsiarrayout += "  adapter #{adapter.id}\n"
    adapter.virtualdrives.each do |virtualdrive|
      lsiarrayout += "    +--+ #{virtualdrive.to_str}\n"
      virtualdrive.physicaldrives.each do |id,physicaldrive|
        lsiarrayout += "    |  |-- pd #{physicaldrive.to_str}\n"
      end
    end
  end
  lsiarrayout
end