diff --git a/lib/vagrant/action/builtin/mixin_provisioners.rb b/lib/vagrant/action/builtin/mixin_provisioners.rb index 052a23262..c4b760537 100644 --- a/lib/vagrant/action/builtin/mixin_provisioners.rb +++ b/lib/vagrant/action/builtin/mixin_provisioners.rb @@ -30,9 +30,9 @@ module Vagrant # This will return a mapping of a provisioner instance to its # type. - def provisioner_type_map + def provisioner_type_map(env) # Call this in order to initial the map if it hasn't been already - provisioner_instances + provisioner_instances(env) # Return the type map @_provisioner_types diff --git a/lib/vagrant/action/builtin/provision.rb b/lib/vagrant/action/builtin/provision.rb index aefd2332d..007625510 100644 --- a/lib/vagrant/action/builtin/provision.rb +++ b/lib/vagrant/action/builtin/provision.rb @@ -60,11 +60,12 @@ module Vagrant # Actually provision if we enabled it if enabled + type_map = provisioner_type_map(env) provisioner_instances(env).each do |p| next if env[:provision_types] && \ - !env[:provision_types].include?(provisioner_type_map[p]) + !env[:provision_types].include?(type_map[p]) - run_provisioner(env, provisioner_type_map[p].to_s, p) + run_provisioner(env, type_map[p].to_s, p) end end end diff --git a/lib/vagrant/action/builtin/provisioner_cleanup.rb b/lib/vagrant/action/builtin/provisioner_cleanup.rb index e9eec5c87..2fe727d1f 100644 --- a/lib/vagrant/action/builtin/provisioner_cleanup.rb +++ b/lib/vagrant/action/builtin/provisioner_cleanup.rb @@ -27,11 +27,13 @@ module Vagrant end def do_cleanup(env) + type_map = provisioner_type_map(env) + # Ask the provisioners to modify the configuration if needed provisioner_instances(env).each do |p| env[:ui].info(I18n.t( "vagrant.provisioner_cleanup", - name: provisioner_type_map[p].to_s)) + name: type_map[p].to_s)) p.cleanup end end