Class: Vagrant::Action::VM::Provision

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant/action/vm/provision.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, env) ⇒ Provision

Returns a new instance of Provision.



5
6
7
8
9
# File 'lib/vagrant/action/vm/provision.rb', line 5

def initialize(app, env)
  @app = app
  @env = env
  @env["provision.enabled"] = true if !@env.has_key?("provision.enabled")
end

Instance Method Details

#call(env) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/vagrant/action/vm/provision.rb', line 11

def call(env)
  # Instantiate and prepare the provisioners. Preparation must happen here
  # so that shared folders and such can properly take effect.
  provisioners = enabled_provisioners
  provisioners.map { |p| p.prepare }

  @app.call(env)

  # Take prepared provisioners and run the provisioning
  provisioners.each do |instance|
    @env.ui.info I18n.t("vagrant.actions.vm.provision.beginning", :provisioner => instance.class)
    instance.provision!
  end
end

#enabled_provisionersObject



26
27
28
29
30
# File 'lib/vagrant/action/vm/provision.rb', line 26

def enabled_provisioners
  @env["config"].vm.provisioners.map do |provisioner|
    provisioner.provisioner.new(@env, provisioner.config)
  end
end