class Lsmap_npiv

Attributes

data[RW]
data_string_raw[R]
fc_names[R]
sys[RW]
vios[RW]

Public Class Methods

new(string = nil, vios = nil, sys = nil) click to toggle source
# File lib/VIOS/lsmap_npiv.rb, line 14
def initialize(string = nil, vios = nil, sys = nil)
  @vios = vios
  @sys = sys

  @data = {}
  @data_string_raw = ''
  parse(string) unless string.nil? or string.empty?
end

Public Instance Methods

mapping_for_lpar_id(lpar_id) click to toggle source
# File lib/VIOS/lsmap_npiv.rb, line 45
def mapping_for_lpar_id(lpar_id)
  result = []
  @data.each_pair do |name, entry|
    result.push(entry) if entry.clntid == lpar_id
  end
  result
end
parse(string) click to toggle source
# File lib/VIOS/lsmap_npiv.rb, line 23
def parse(string)
  @data_string_raw = string

  if string =~ /Name\s*Physloc/
    string.gsub("\nName", '--split--Name').split('--split--').each do |str|
      entry = Lsmap_npiv_entry.new(str)
      entry.vios = @vios
      entry.sys = @sys
      @data[entry.name] = entry
    end
  else
    string.each_line do |line|
      entry = Lsmap_npiv_entry.new(line)
      entry.vios = @vios
      entry.sys = @sys
      @data[entry.name] = entry
    end
  end
  working_fcs
  @data
end
to_s(separator = ':') click to toggle source
# File lib/VIOS/lsmap_npiv.rb, line 53
def to_s(separator = ':')
  result = ''
  @data.each_pair do |name, entry|
    result += entry.to_s(separator)
  end

  result
end
using_fcs?(name) click to toggle source
# File lib/VIOS/lsmap_npiv.rb, line 81
def using_fcs?(name)
  @fc_names.include?(name)
end
working_fcs() click to toggle source
# File lib/VIOS/lsmap_npiv.rb, line 62
def working_fcs
  result = []
  @data.each_pair do |name, entry|
    result.push(entry.fc_name)
  end
  @fc_names = result.uniq
  @fc_names
end
working_fcs_number() click to toggle source
# File lib/VIOS/lsmap_npiv.rb, line 71
def working_fcs_number
  result = {}
  @data.each_pair do |name, entry|
    result[entry.fc_name] = 0 unless defined? result[entry.fc_name]
    result[entry.fc_name] += 1
  end

  result
end