Class: Storcs::Parsers::Equalogic
- Inherits:
-
Object
- Object
- Storcs::Parsers::Equalogic
- Includes:
- Utils
- Defined in:
- lib/storcs/parsers/equalogic.rb
Instance Attribute Summary collapse
-
#device ⇒ Object
Returns the value of attribute device.
Instance Method Summary collapse
-
#initialize(name, file) ⇒ Equalogic
constructor
A new instance of Equalogic.
- #parse!(lines) ⇒ Object
- #volumes(lines) ⇒ Object
Methods included from Utils
Constructor Details
#initialize(name, file) ⇒ Equalogic
Returns a new instance of Equalogic.
7 8 9 10 |
# File 'lib/storcs/parsers/equalogic.rb', line 7 def initialize(name,file) @device = Storcs::Device.new(name) parse!(File.readlines(file)) end |
Instance Attribute Details
#device ⇒ Object
Returns the value of attribute device.
5 6 7 |
# File 'lib/storcs/parsers/equalogic.rb', line 5 def device @device end |
Instance Method Details
#parse!(lines) ⇒ Object
12 13 14 |
# File 'lib/storcs/parsers/equalogic.rb', line 12 def parse!(lines) @device.children = volumes(lines) end |
#volumes(lines) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/storcs/parsers/equalogic.rb', line 16 def volumes(lines) return @volumes if @volumes @volumes = [] current_section = nil lines.each do |line| line.strip! if line.match /________ ([^_]+) ________/ current_section = $1.downcase elsif %w(pools volumes).include?(current_section) && line.split[2].to_s.match(/^\d+$/) if current_section == "volumes" && line.match(/^(\S+)\s+(\S+)/) #g01-varlibnfs 50MB 0 online read-write 2 N d = Storcs::Device.new($1) d.real_size = parse_size($2) d.real_used = d.real_size @volumes << d elsif current_section == "pools" && line.match(/(\S+)$/) #default true 1 10 3744.01GB 43.88GB d = Storcs::Device.new("free") d.real_size = parse_size($1) d.real_used = 0 @volumes << d end end end @volumes end |