Class: Storcs::Parsers::Equalogic

Inherits:
Object
  • Object
show all
Includes:
Utils
Defined in:
lib/storcs/parsers/equalogic.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utils

#parse_size

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

#deviceObject

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