class Elesai::Megacli::PDlist_aAll

Public Class Methods

new() click to toggle source
# File lib/elesai/megacli/_pdlist_aall.rb, line 5
def initialize
  @megacli = { :adapter       => { :re => /^Adapter\s+#*(?<value>\d+)/,                         :method => self.method(:adapter_match) },
               :physicaldrive => { :re => /^(?<key>Enclosure\s+Device\s+ID):\s+(?<value>\d+)/,  :method => self.method(:physicaldrive_match) },
               :exit          => { :re => /^Exit Code: /,                                       :method => self.method(:exit_match) },
               :attribute     => { :re => /^(?<key>[A-Za-z0-9()\s#'-.&]+)[:|=](?<value>.*)/,    :method => self.method(:attribute_match) }
  }.freeze
  @command_arguments = "-pdlist -aall".freeze
  @command_output_file = "pdlist_aall".freeze
end

Public Instance Methods

on_physicaldrive_entry(old_state, event, *args) click to toggle source
# File lib/elesai/megacli/_pdlist_aall.rb, line 108
def on_physicaldrive_entry(old_state, event, *args)
  @log.debug "        [#{current_state}] on_entry: leaving #{old_state}; args: #{args}"
  @context.open args[0]
end
on_physicaldrive_exit(new_state, event, *args) click to toggle source
# File lib/elesai/megacli/_pdlist_aall.rb, line 113
def on_physicaldrive_exit(new_state, event, *args)
  @log.debug "      [#{current_state}] on_exit: entering #{new_state}; args: #{args}"
  @context.flash!(new_state)
end
on_virtualdrive_entry(old_state, event, *args) click to toggle source
# File lib/elesai/megacli/_pdlist_aall.rb, line 84
def on_virtualdrive_entry(old_state, event, *args)
  @log.debug "        [#{current_state}] on_entry: leaving #{old_state}; args: #{args}"

  unless @context.current.nil?
    if Elesai::LSI::VirtualDrive === @context.current
      @context.close
    end
  end
  virtualdrive = args[0]
  @context.open virtualdrive
end
on_virtualdrive_exit(new_state, event, *args) click to toggle source
# File lib/elesai/megacli/_pdlist_aall.rb, line 96
def on_virtualdrive_exit(new_state, event, *args)
  @log.debug "      [#{current_state}] on_exit: entering #{new_state}; args: #{args}"
  @context.flash!(new_state)
end
parse!(lsi,opts) click to toggle source
Calls superclass method
# File lib/elesai/megacli/_pdlist_aall.rb, line 15
def parse!(lsi,opts)
  fake = opts[:fake].nil? ? @command_arguments : File.join(opts[:fake],@command_output_file)
  super lsi, :fake => fake, :megacli => opts[:megacli]
end
physicaldrive_line(physicaldrive,key,value) click to toggle source

Physical Drives

# File lib/elesai/megacli/_pdlist_aall.rb, line 103
def physicaldrive_line(physicaldrive,key,value)
  @log.debug "  [#{current_state}] event: physicaldrive_line: new #{physicaldrive.inspect}"
  physicaldrive[key.to_sym] = value.to_i
end
physicaldrive_match(k,match) click to toggle source
# File lib/elesai/megacli/_pdlist_aall.rb, line 68
def physicaldrive_match(k,match)
  @log.debug "PHYSICALDRIVE! #{match.string}"
  key = match[:key].gsub(/\s+/,"").downcase
  value = match[:value]
  physicaldrive_line!(LSI::PhysicalDrive.new,key,value)
end
virtualdrive_line(virtualdrive,key,value) click to toggle source

Virtual Drives

# File lib/elesai/megacli/_pdlist_aall.rb, line 79
def virtualdrive_line(virtualdrive,key,value)
  @log.debug "  [#{current_state}] event: virtualdrive_line: new #{virtualdrive.inspect}"
  virtualdrive[key.to_sym] = value.to_i
end
virtualdrive_match(k,match) click to toggle source

Match Handlers

# File lib/elesai/megacli/_pdlist_aall.rb, line 61
def virtualdrive_match(k,match)
  @log.debug "VIRTUALDRIVE! #{match.string}"
  key = match[:key].gsub(/\s+/,"").downcase
  value = match[:value]
  virtualdrive_line!(LSI::VirtualDrive.new,key,value)
end