class System::OpenvpnStatusLogParser

Attributes

clients_block[RW]
status[RW]
text[RW]

Public Class Methods

new(text) click to toggle source
# File lib/system/openvpn_status_log_parser.rb, line 5
def initialize(text)
  @status = System::OpenvpnStatus.new
  @clients_block = false
  @text = text
  parse
end

Public Instance Methods

parse() click to toggle source
# File lib/system/openvpn_status_log_parser.rb, line 12
def parse
  @text.lines.each do |line|
    line_tokens = line.strip.split(',')
    parse_client_virtual_ips(line_tokens)
  end
end

Private Instance Methods

parse_client_virtual_ips(tokens) click to toggle source
# File lib/system/openvpn_status_log_parser.rb, line 21
def parse_client_virtual_ips(tokens)
  @clients_block = false if tokens[0] == 'GLOBAL STATS'
  if clients_block
    common_name, ip_address = tokens[1], tokens[0]
    @status.clients_list[common_name] = ip_address
  end
  @clients_block = true if tokens[0] == 'Virtual Address'
end