Sha256: c774a62077d0e8df7beef225050e8aaff5cee54cdb471dc90f26a91e425be31f
Contents?: true
Size: 1.44 KB
Versions: 10
Compression:
Stored size: 1.44 KB
Contents
module Vagrant class Action module VM class Provision def initialize(app, env) @app = app @env = env load_provisioner if provisioning_enabled? end def call(env) @app.call(env) if !env.error? && provisioning_enabled? @env.logger.info "Beginning provisioning process..." @provisioner.provision! end end def provisioning_enabled? !@env["config"].vm.provisioner.nil? end def load_provisioner provisioner = @env["config"].vm.provisioner if provisioner.is_a?(Class) @provisioner = provisioner.new(@env) return @env.error!(:provisioner_invalid_class) unless @provisioner.is_a?(Provisioners::Base) elsif provisioner.is_a?(Symbol) # We have a few hard coded provisioners for built-ins mapping = { :chef_solo => Provisioners::ChefSolo, :chef_server => Provisioners::ChefServer } provisioner_klass = mapping[provisioner] return @env.error!(:provisioner_unknown_type, :provisioner => provisioner.to_s) if provisioner_klass.nil? @provisioner = provisioner_klass.new(@env) end @env.logger.info "Provisioning enabled with #{@provisioner.class}" @provisioner.prepare @provisioner end end end end end
Version data entries
10 entries across 10 versions & 2 rubygems