Sha256: 945496b2c2dc66acbc67dfc1128e177d0d27ba27f23afab91bc13068b1195666
Contents?: true
Size: 1.6 KB
Versions: 3
Compression:
Stored size: 1.6 KB
Contents
module Vagrant class Action module VM class Provision def initialize(app, env) @app = app @env = env @env["provision.enabled"] = true if !@env.has_key?("provision.enabled") load_provisioner if provisioning_enabled? end def call(env) @app.call(env) if provisioning_enabled? @env.ui.info I18n.t("vagrant.actions.vm.provision.beginning") @provisioner.provision! end end def provisioning_enabled? !@env["config"].vm.provisioner.nil? && @env["provision.enabled"] end def load_provisioner provisioner = @env["config"].vm.provisioner if provisioner.is_a?(Class) @provisioner = provisioner.new(@env) raise Errors::ProvisionInvalidClass if !@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, :puppet => Provisioners::Puppet } provisioner_klass = mapping[provisioner] raise Errors::ProvisionUnknownType, :provisioner => provisioner.to_s if provisioner_klass.nil? @provisioner = provisioner_klass.new(@env) end @env.ui.info I18n.t("vagrant.actions.vm.provision.enabled", :provisioner => @provisioner.class.to_s) @provisioner.prepare @provisioner end end end end end
Version data entries
3 entries across 3 versions & 2 rubygems
Version | Path |
---|---|
vagrantup-0.6.9 | lib/vagrant/action/vm/provision.rb |
vagrant-0.7.0.beta | lib/vagrant/action/vm/provision.rb |
vagrant-0.6.9 | lib/vagrant/action/vm/provision.rb |