class Elesai::Megacli::Megacli::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