class Souffle::Provisioner

Starts up the base provisioner class with system and node state machines.

Starts up the base provisioner class with system and node state machines.

Attributes

provider[R]
system[R]

Public Class Methods

new() click to toggle source

Creates a new provisioner.

# File lib/souffle/provisioner.rb, line 12
def initialize
  @provider = initialize_provider
  @provisioner = nil
end

Public Instance Methods

begin_provisioning() click to toggle source

Starts the provisioning process keeping a local lookup to the provisioner.

# File lib/souffle/provisioner.rb, line 51
def begin_provisioning
  @provisioner = Souffle::Provisioner::System.new(@system, @provider)
end
cleanup_provider(provider) click to toggle source

Cleans up the provider name to match the providers we have.

@param [ String ] provider The name of the provider to use.

@return [ String ] The cleaned up provider name.

# File lib/souffle/provisioner.rb, line 31
def cleanup_provider(provider)
  lookups = {}
  Souffle::Provider.constants.each { |k| lookups[k.to_s.downcase] = k.to_s }
  lookups.fetch([provider.downcase], provider)
end
initialize_provider(provider=nil) click to toggle source

Sets up the given provider to be used for the creation of a system.

@param [ String ] provider The system provider to use for provisioning.

# File lib/souffle/provisioner.rb, line 40
def initialize_provider(provider=nil)
  prv = cleanup_provider(Souffle::Config[:provider])
  Souffle::Provider.const_get(prv).new
rescue Souffle::Exceptions::InvalidAwsKeys => e
  Souffle::Log.error "#{e.message}:\n#{e.backtrace.join("\n")}"
rescue Exception
  raise Souffle::Exceptions::InvalidProvider,
    "The provider Souffle::Provider::#{prv} does not exist."
end
setup_system(system_hash) click to toggle source

Creates the system object from a hash.

@param [ Hash ] system_hash The system represented in hash format.

# File lib/souffle/provisioner.rb, line 20
def setup_system(system_hash)
  @system = Souffle::System.from_hash(system_hash)
  @provider = initialize_provider(
    cleanup_provider(@system.try_opt[:provider]))
end