class Vmreverter::Configuration

Config was taken by Ruby.

Attributes

config[R]
logger[R]
options[R]

Public Class Methods

build(options, logger) click to toggle source
# File lib/vmreverter/configuration.rb, line 10
def self.build(options, logger)
  @@options = options
  @@logger = logger
end
new() click to toggle source
# File lib/vmreverter/configuration.rb, line 15
def initialize
  @options = @@options
  @logger = @@logger
  config_file = @options[:config]
  @config = load_file(config_file)
end

Public Instance Methods

[](key) click to toggle source
# File lib/vmreverter/configuration.rb, line 22
def [](key)
  @config[key]
end
dump() click to toggle source

Print out test configuration

# File lib/vmreverter/configuration.rb, line 56
def dump

  # Access "tags" for each host
  @config["HOSTS"].each_key do|host|
    @config["HOSTS"][host]['tags'].each do |tag|
      @logger.notify "Tags for #{host} #{tag}"
    end
  end

  # Access @config keys/values
  @config["CONFIG"].each_key do|cfg|
      @logger.notify "Config Key|Val: #{cfg} #{@config["CONFIG"][cfg].inspect}"
  end
end
load_file(config_file) click to toggle source
# File lib/vmreverter/configuration.rb, line 26
def load_file(config_file)
  if config_file.is_a? Hash
    config = config_file
  else
    config = YAML.load_file(config_file)

    # Make sure the tag array is present for all hosts
    config['HOSTS'].each_key do |host|
      config['HOSTS'][host]['tags'] ||= []

      report_and_raise(@logger, RuntimeError.new("Missing hypervisor: (#{host})"), "Configuration::load_file")  unless config['HOSTS'][host].include? "hypervisor"
      hypervisor = config['HOSTS'][host]['hypervisor'].downcase
      #check to see if this host has a hypervisor
      report_and_raise(@logger, RuntimeError.new("Invalid hypervisor: #{hypervisor} (#{host})"), "Configuration::load_file") unless Vmreverter::HYPERVISOR_TYPES.include? hypervisor

      #check to see if this host has a hypervisor
      report_and_raise(@logger, RuntimeError.new("Missing snapshot: (#{host})"), "Configuration::load_file")  unless config['HOSTS'][host].include? "snapshot"

    end

  end

  # Merge some useful date into the config hash
  config['CONFIG'] ||= {}

  config
end