class Sas2ircu::Card

Constants

BACKPLANE_REGEX
CARD_REGEX

Attributes

backplanes[RW]
drives_by_serial[RW]
drives_by_wnn[RW]
id[RW]

Public Class Methods

new(id) click to toggle source
# File lib/disk_reporter/sas2ircu_parser.rb, line 11
def initialize(id)
  self.id = id
  self.backplanes = {}
  self.drives_by_serial = {}
  self.drives_by_wnn = {}
  populate_backplanes
end

Public Instance Methods

to_h() click to toggle source
# File lib/disk_reporter/sas2ircu_parser.rb, line 19
def to_h
  bs = {}
  backplanes.each do |_k,b|
    bs[b.enclosure] = b.to_h
  end
  { backplanes: bs }
end

Protected Instance Methods

populate_backplanes() click to toggle source
# File lib/disk_reporter/sas2ircu_parser.rb, line 33
def populate_backplanes
  sas2ircu_lines.scan(CARD_REGEX).each do |bp|
    self.backplanes[bp[0].to_i] = Backplane.new self, bp[0].to_i, bp[1], bp[2].to_i, bp[3].to_i
  end
  populate_slots
end
populate_slots() click to toggle source
# File lib/disk_reporter/sas2ircu_parser.rb, line 40
def populate_slots
  sas2ircu_lines.scan(BACKPLANE_REGEX).each do |d|
    b = @backplanes[d[0].to_i]
    disk = Disk.new b, d
    b.slots[d[1].to_i] = disk
    self.drives_by_serial[d[9]] = disk
    self.drives_by_wnn[d[10]] = disk
  end
end
sas2ircu_lines() click to toggle source
# File lib/disk_reporter/sas2ircu_parser.rb, line 29
def sas2ircu_lines
  @lines ||= `sas2ircu #{id} display`
end