class Gonzo::Runner

Attributes

config[R]
global[R]
statedir[R]

Public Class Methods

new(config) click to toggle source
# File lib/gonzo/runner.rb, line 9
def initialize(config)
  @config = config
  @global = config['gonzo']
end

Public Instance Methods

cleanup() click to toggle source
# File lib/gonzo/runner.rb, line 32
def cleanup
  return if global['cleanup'] == false
  providers.each(&:cleanup)
  FileUtils.rm_r global['statedir']
end
providers() click to toggle source
# File lib/gonzo/runner.rb, line 18
def providers
  return @providers if @providers
  @providers = []
  provs = config.select { |k,v| k unless k == 'gonzo' }
  provs.each do |provider,config|
    unless supported_providers.include?(provider)
      puts "Provider #{provider} is not implemented!"
      break
    end
    @providers << Object.const_get("Gonzo::Providers::#{provider.capitalize}").new(config, global)
  end
  @providers
end
run() click to toggle source
# File lib/gonzo/runner.rb, line 38
def run
  exit_codes = []
  providers.each do |provider|
    status = provider.run

    exit_codes << status

    if config['gonzo']['stop_on_failure']
      exit status unless status
    end
  end

  status = exit_codes.include?(false) ? false : true
  cleanup
  exit status
end
supported_providers() click to toggle source
# File lib/gonzo/runner.rb, line 14
def supported_providers
  %w(docker vagrant)
end