Class: Kitchen::Provisioner::Base

Inherits:
Object
  • Object
show all
Includes:
Logging
Defined in:
lib/kitchen/provisioner/base.rb

Overview

Base class for a provisioner.

Direct Known Subclasses

ChefBase, Dummy

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = {}) ⇒ Base

Returns a new instance of Base.



34
35
36
37
38
39
# File 'lib/kitchen/provisioner/base.rb', line 34

def initialize(config = {})
  @config = LazyHash.new(config, self)
  self.class.defaults.each do |attr, value|
    @config[attr] = value unless @config.has_key?(attr)
  end
end

Instance Attribute Details

#instanceObject

Returns the value of attribute instance.



32
33
34
# File 'lib/kitchen/provisioner/base.rb', line 32

def instance
  @instance
end

Class Method Details

.default_config(attr, value = nil, &block) ⇒ Object



110
111
112
# File 'lib/kitchen/provisioner/base.rb', line 110

def self.default_config(attr, value = nil, &block)
  defaults[attr] = block_given? ? block : value
end

.defaultsObject



96
97
98
# File 'lib/kitchen/provisioner/base.rb', line 96

def self.defaults
  @defaults ||= Hash.new.merge(super_defaults)
end

.super_defaultsObject



100
101
102
103
104
105
106
107
108
# File 'lib/kitchen/provisioner/base.rb', line 100

def self.super_defaults
  klass = self.superclass

  if klass.respond_to?(:defaults)
    klass.defaults
  else
    Hash.new
  end
end

Instance Method Details

#[](attr) ⇒ Object

Provides hash-like access to configuration keys.

Parameters:

  • attr (Object)

    configuration key

Returns:

  • (Object)

    value at configuration key



52
53
54
# File 'lib/kitchen/provisioner/base.rb', line 52

def [](attr)
  config[attr]
end

#cleanup_sandboxObject



73
# File 'lib/kitchen/provisioner/base.rb', line 73

def cleanup_sandbox ; end

#config_keysArray

Returns an array of configuration keys.

Returns:

  • (Array)

    array of configuration keys



59
60
61
# File 'lib/kitchen/provisioner/base.rb', line 59

def config_keys
  config.keys
end

#create_sandboxObject



67
# File 'lib/kitchen/provisioner/base.rb', line 67

def create_sandbox ; end

#diagnoseHash

Returns a Hash of configuration and other useful diagnostic information.

Returns:

  • (Hash)

    a diagnostic hash



78
79
80
81
82
# File 'lib/kitchen/provisioner/base.rb', line 78

def diagnose
  result = Hash.new
  config_keys.sort.each { |k| result[k] = config[k] }
  result
end

#init_commandObject



65
# File 'lib/kitchen/provisioner/base.rb', line 65

def init_command ; end

#install_commandObject



63
# File 'lib/kitchen/provisioner/base.rb', line 63

def install_command ; end

#nameString

Returns the name of this driver, suitable for display in a CLI.

Returns:

  • (String)

    name of this driver



44
45
46
# File 'lib/kitchen/provisioner/base.rb', line 44

def name
  self.class.name.split('::').last
end

#prepare_commandObject



69
# File 'lib/kitchen/provisioner/base.rb', line 69

def prepare_command ; end

#run_commandObject



71
# File 'lib/kitchen/provisioner/base.rb', line 71

def run_command ; end