Class: Elesai::LSIArray::PhysicalDrive

Inherits:
Hash
  • Object
show all
Defined in:
lib/elesai/lsi.rb

Overview

Physical Drive

Defined Under Namespace

Classes: FirmwareState, Size

Constant Summary collapse

STATES =
{
    :online               => 'Online',
    :unconfigured_good    => 'Unconfigured(good)',
    :hotspare             => 'Hotspare',
    :failed               => 'Failed',
    :rebuild              => 'Rebuild',
    :unconfigured_bad     => 'Unconfigured(bad)',
    :missing              => 'Missing',
    :offline              => 'Offline'
}
SPINS =
{
    :spun_up              => 'Spun up'
}

Instance Method Summary collapse

Constructor Details

#initializePhysicalDrive

Returns a new instance of PhysicalDrive.



169
170
171
172
# File 'lib/elesai/lsi.rb', line 169

def initialize
  self[:_adapter] = nil
  self[:_virtualdrives] = []
end

Instance Method Details

#_idObject



174
175
176
# File 'lib/elesai/lsi.rb', line 174

def _id
  "e#{self[:enclosuredeviceid].to_s}s#{self[:slotnumber].to_s}".to_sym
end

#add_adapter(a) ⇒ Object



196
197
198
# File 'lib/elesai/lsi.rb', line 196

def add_adapter(a)
  self[:_adapter] = a
end

#add_virtualdrive(vd) ⇒ Object



204
205
206
# File 'lib/elesai/lsi.rb', line 204

def add_virtualdrive(vd)
   self[:_virtualdrives][vd._id] = vd if self[:_virtualdrives][vd._id].nil?
end

#get_adapterObject



200
201
202
# File 'lib/elesai/lsi.rb', line 200

def get_adapter
  self[:_adapter]
end

#get_virtualdrive(vd_id) ⇒ Object



208
209
210
# File 'lib/elesai/lsi.rb', line 208

def get_virtualdrive(vd_id)
  self[:_virtualdrives][vd_id]
end

#get_virtualdrivesObject



212
213
214
# File 'lib/elesai/lsi.rb', line 212

def get_virtualdrives
  self[:_virtualdrives]
end

#inspectObject



192
193
194
# File 'lib/elesai/lsi.rb', line 192

def inspect
  "#{self.class}:#{self.__id__}"
end

#to_sObject



186
187
188
189
190
# File 'lib/elesai/lsi.rb', line 186

def to_s
  keys = [:deviceid, :firmwarestate, :coercedsize, :mediatype, :pdtype, :mediaerrorcount, :predictivefailurecount,:inquirydata]
  #"[PD] %8s %4s %19s %8.2f%s %5s %5s %3d %3d   %s" % [ self.id, @deviceid, "#{@state}:#{@spin}", @_size.number, @_size.unit, @mediatype, @pdtype, @mediaerrors, @predictivefailure, @inquirydata  ]
  "[PD] %8s %4s %19s %s %5s %5s %3d %3d  a%s  %s" % [ self._id, self[:deviceid], self[:firmwarestate], self[:coercedsize], self[:mediatype], self[:pdtype], self[:mediaerrorcount], self[:predictivefailurecount], self[:_adapter]._id, self[:inquirydata] ]
end

#typeObject



178
179
180
# File 'lib/elesai/lsi.rb', line 178

def type
  :physicaldrive
end

#type_of?(type) ⇒ Boolean

Returns:

  • (Boolean)


182
183
184
# File 'lib/elesai/lsi.rb', line 182

def type_of?(type)
  self.type == type
end