Class: Elesai::Megacli::Context
- Inherits:
-
Object
- Object
- Elesai::Megacli::Context
- Defined in:
- lib/elesai/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.
30 31 32 33 34 35 |
# File 'lib/elesai/megacli.rb', line 30 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
75 76 77 |
# File 'lib/elesai/megacli.rb', line 75 def adapter @context[Elesai::LSIArray::Adapter] end |
#bbu ⇒ Object
87 88 89 |
# File 'lib/elesai/megacli.rb', line 87 def bbu @context[Elesai::LSIArray::BBU] end |
#close ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/elesai/megacli.rb', line 51 def close component = @context[:stack].pop @context[component.class] = nil @log.debug " * Close #{component.inspect}" case component when Elesai::LSIArray::PhysicalDrive pd = @lsi.add_physicaldrive(component) pd.add_adapter(adapter) pd.add_virtualdrive(virtualdrive) unless virtualdrive.nil? adapter.add_physicaldrive(pd) when Elesai::LSIArray::VirtualDrive vd = @lsi.add_virtualdrive(component) when Elesai::LSIArray::Adapter @lsi.add_adapter(component) when Elesai::LSIArray::BBU @lsi.add_bbu(component) end @log.debug " + context: #{@context[:stack]}" end |
#current ⇒ Object
71 72 73 |
# File 'lib/elesai/megacli.rb', line 71 def current @context[:stack][-1] end |
#flash!(new_state) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/elesai/megacli.rb', line 44 def flash!(new_state) new_state.[:context] = @context @context = nil @context = new_state.[:context] @log.debug " + Flash context: #{@context[:stack]}" end |
#open(component) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/elesai/megacli.rb', line 37 def open(component) @log.debug " * Open #{component.inspect}" @context[:stack].push(component) @context[component.class] = component @log.debug " + context: #{@context[:stack]}" end |
#physicaldrive ⇒ Object
83 84 85 |
# File 'lib/elesai/megacli.rb', line 83 def physicaldrive @context[Elesai::LSIArray::PhysicalDrive] end |
#virtualdrive ⇒ Object
79 80 81 |
# File 'lib/elesai/megacli.rb', line 79 def virtualdrive @context[Elesai::LSIArray::VirtualDrive] end |