class Lsmpio_disk

Attributes

data_string_raw[RW]
name[R]
paths[R]
viosname[RW]

Public Class Methods

new(string = '') click to toggle source
# File lib/AIX/lsmpio_disk.rb, line 11
def initialize(string = '')
  @name = nil
  @paths = {}
  parse(string) unless string.empty?
end

Public Instance Methods

parse(string) click to toggle source
# File lib/AIX/lsmpio_disk.rb, line 17
def parse(string)
  @data_string_raw = string

  regexp = %r{(hdisk\d+)\s+(\d+)\s+(Enabled|Disabled|Failed|Missing)\s+([\w\,]+)\s+(fscsi\d+)\s+(\w+)\,(\w+)}
  string.each_line do |line|

    line = line.strip
    next if line =~ /name/
    next if line =~ /^\s*$/
    next if line =~ /^[=]+$/

    if match = regexp.match(line)
      path = Lsmpio_entry.new(line)
      @paths[path.path_id] = path
      if @name.nil?
        @name = path.name
      else
        raise "Inconsistance data: #{line}" if @name != path.name
      end
    else
      raise "Wrong line:>#{line}<"
    end
  end
end