class Elesai::Megacli::Megacli::Context

Context

Public Class Methods

new(current_state,lsi) click to toggle source
# File lib/elesai/megacli/megacli.rb, line 15
def initialize(current_state,lsi)
  current_state.meta[:context] = { :stack => [] }
  @context = current_state.meta[:context]
  @lsi = lsi
  @log = Elesai::Logger.instance.log
end

Public Instance Methods

adapter() click to toggle source
# File lib/elesai/megacli/megacli.rb, line 58
def adapter
  @context[Elesai::LSI::Adapter]
end
bbu() click to toggle source
# File lib/elesai/megacli/megacli.rb, line 70
def bbu
  @context[Elesai::LSI::BBU]
end
close() click to toggle source
# File lib/elesai/megacli/megacli.rb, line 36
def close
  component = @context[:stack].pop
  @context[component.class] = nil
  @log.debug "         * Close #{component.inspect}"
  case component
    when Elesai::LSI::PhysicalDrive
      pd = @lsi.add(component)
      pd.add_adapter(adapter)
      pd.add_virtualdrive(virtualdrive) unless virtualdrive.nil?
      adapter.add_physicaldrive(pd)
    when Elesai::LSI::VirtualDrive
      vd = @lsi.add(component)
    when Elesai::LSI::BBU
      @lsi.add(component)
  end
  @log.debug "           + context: #{@context[:stack]}"
end
current() click to toggle source
# File lib/elesai/megacli/megacli.rb, line 54
def current
  @context[:stack][-1]
end
flash!(new_state) click to toggle source
# File lib/elesai/megacli/megacli.rb, line 29
def flash!(new_state)
  new_state.meta[:context] = @context
  @context = nil
  @context = new_state.meta[:context]
  @log.debug "         + Flash context: #{@context[:stack]}"
end
open(component) click to toggle source
# File lib/elesai/megacli/megacli.rb, line 22
def open(component)
  @log.debug "         * Open #{component.inspect}"
  @context[:stack].push(component)
  @context[component.class] = component
  @log.debug "           + context: #{@context[:stack]}"
end
physicaldrive() click to toggle source
# File lib/elesai/megacli/megacli.rb, line 66
def physicaldrive
  @context[Elesai::LSI::PhysicalDrive]
end
virtualdrive() click to toggle source
# File lib/elesai/megacli/megacli.rb, line 62
def virtualdrive
  @context[Elesai::LSI::VirtualDrive]
end