Class: VagrantPlugins::PuppetInstall::Plugin

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-puppet-install/plugin.rb

Overview

Author:

Class Method Summary collapse

Class Method Details

.provision(hook) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/vagrant-puppet-install/plugin.rb', line 39

def self.provision(hook)

  hook.after(Vagrant::Action::Builtin::Provision, Action.install_puppet)

  # BEGIN workaround
  #
  # Currently hooks attached to {Vagrant::Action::Builtin::Provision} are
  # not wired into the middleware return path. My current workaround is to
  # fire after anything boot related which wedges in right before the
  # actual real run of the provisioner.

  hook.after(VagrantPlugins::ProviderVirtualBox::Action::Boot, Action.install_puppet)

  if VagrantPlugins.const_defined?("AWS")
    hook.after(VagrantPlugins::AWS::Action::RunInstance, Action.install_puppet)
  end

  if VagrantPlugins.const_defined?("Rackspace")
    # The `VagrantPlugins::Rackspace` module is missing the autoload for
    # `VagrantPlugins::Rackspace::Action` so we need to ensure it is
    # loaded before accessing the module in the after hook below.
    require 'vagrant-rackspace/action'
    hook.after(VagrantPlugins::Rackspace::Action::CreateServer, Action.install_puppet)
  end

  # END workaround
end