class Elesai::Action::Show

Constants

COMPONENTS

Public Class Methods

new(arguments,options) click to toggle source
# File lib/elesai/action/show.rb, line 7
def initialize(arguments,options)

  @options = options
  @arguments = arguments

  @component = nil

  opts = OptionParser.new
  opts.banner = "Usage: #{ID} [options] show <component>"
  opts.separator ""
  opts.separator "      <component> is adapter, physicaldisk|pd, virtualdisk|vd, bbu"
  opts.order!(@arguments)

  options_valid?
  arguments_valid?
  process_arguments

  @show = { :adapter => self.method(:show_adapter),
            :virtualdrive => self.method(:show_virtualdrive),
            :physicaldrive => self.method(:show_physicaldrive),
            :bbu => self.method(:show_bbu)
  }
end

Public Instance Methods

exec() click to toggle source
# File lib/elesai/action/show.rb, line 31
def exec
  @lsi = LSI.new(:megacli => @options[:megacli], :fake => @options[:fake], :hint => @component)
  @show[@component].call
end

Protected Instance Methods

arguments_valid?() click to toggle source
# File lib/elesai/action/show.rb, line 42
def arguments_valid?
  raise ArgumentError, "missing component" if @arguments.size == 0
  raise ArgumentError, "too many components" if @arguments.size > 1
  raise ArgumentError, "invalid component #{@arguments[0]}" unless COMPONENTS.include? @arguments[0]
  true
end
options_valid?() click to toggle source
# File lib/elesai/action/show.rb, line 38
def options_valid?
  true
end
process_arguments() click to toggle source
# File lib/elesai/action/show.rb, line 49
def process_arguments
  @component = case @arguments[0].to_sym
    when :vd then :virtualdrive
    when :pd then :physicaldrive
    else @arguments[0].to_sym
  end
end
show_adapter() click to toggle source
# File lib/elesai/action/show.rb, line 75
def show_adapter
  @lsi.adapters.each do |adapter|
    print "#{adapter}\n"
  end
end
show_bbu() click to toggle source
# File lib/elesai/action/show.rb, line 69
def show_bbu
  @lsi.bbus.each do |bbu|
    print "#{bbu}\n"
  end
end
show_physicaldrive() click to toggle source
# File lib/elesai/action/show.rb, line 63
def show_physicaldrive
  @lsi.physicaldrives.each do |id,physicaldrive|
    print "#{physicaldrive}\n"
  end
end
show_virtualdrive() click to toggle source
# File lib/elesai/action/show.rb, line 57
def show_virtualdrive
  @lsi.virtualdrives.each do |virtualdrive|
    print "#{virtualdrive}\n"
  end
end