Class: Elesai::Megacli::Megacli::Context
- Inherits:
-
Object
- Object
- Elesai::Megacli::Megacli::Context
- Defined in:
- lib/elesai/megacli/megacli.rb
Overview
Context
Instance Method Summary collapse
- #adapter ⇒ Object
- #bbu ⇒ Object
- #close ⇒ Object
- #current ⇒ Object
- #flash!(new_state) ⇒ Object
-
#initialize(current_state, lsi) ⇒ Context
constructor
A new instance of Context.
- #open(component) ⇒ Object
- #physicaldrive ⇒ Object
- #virtualdrive ⇒ Object
Constructor Details
#initialize(current_state, lsi) ⇒ Context
Returns a new instance of Context.
15 16 17 18 19 20 |
# File 'lib/elesai/megacli/megacli.rb', line 15 def initialize(current_state,lsi) current_state.[:context] = { :stack => [] } @context = current_state.[:context] @lsi = lsi @log = Elesai::Logger.instance.log end |
Instance Method Details
#adapter ⇒ Object
58 59 60 |
# File 'lib/elesai/megacli/megacli.rb', line 58 def adapter @context[Elesai::LSI::Adapter] end |
#bbu ⇒ Object
70 71 72 |
# File 'lib/elesai/megacli/megacli.rb', line 70 def bbu @context[Elesai::LSI::BBU] end |
#close ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# 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 ⇒ Object
54 55 56 |
# File 'lib/elesai/megacli/megacli.rb', line 54 def current @context[:stack][-1] end |
#flash!(new_state) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/elesai/megacli/megacli.rb', line 29 def flash!(new_state) new_state.[:context] = @context @context = nil @context = new_state.[:context] @log.debug " + Flash context: #{@context[:stack]}" end |
#open(component) ⇒ Object
22 23 24 25 26 27 |
# 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 ⇒ Object
66 67 68 |
# File 'lib/elesai/megacli/megacli.rb', line 66 def physicaldrive @context[Elesai::LSI::PhysicalDrive] end |
#virtualdrive ⇒ Object
62 63 64 |
# File 'lib/elesai/megacli/megacli.rb', line 62 def virtualdrive @context[Elesai::LSI::VirtualDrive] end |