module Vagrant::Action::Builtin::MixinProvisioners

Public Instance Methods

provisioner_instances(env) click to toggle source

This returns all the instances of the configured provisioners. This is safe to call multiple times since it will cache the results.

@return [Array<Provisioner>]

# File lib/vagrant/action/builtin/mixin_provisioners.rb, line 9
def provisioner_instances(env)
  return @_provisioner_instances if @_provisioner_instances

  # Make the mapping that'll keep track of provisioner => type
  @_provisioner_types = {}

  # Get all the configured provisioners
  @_provisioner_instances = env[:machine].config.vm.provisioners.map do |provisioner|
    # Instantiate the provisioner
    klass  = Vagrant.plugin("2").manager.provisioners[provisioner.name]
    result = klass.new(env[:machine], provisioner.config)

    # Store in the type map so that --provision-with works properly
    @_provisioner_types[result] = provisioner.name

    # Return the result
    result
  end

  return @_provisioner_instances
end
provisioner_type_map(env) click to toggle source

This will return a mapping of a provisioner instance to its type.

# File lib/vagrant/action/builtin/mixin_provisioners.rb, line 33
def provisioner_type_map(env)
  # Call this in order to initial the map if it hasn't been already
  provisioner_instances(env)

  # Return the type map
  @_provisioner_types
end