Class: Engineyard::Local::Middleware::DefaultProvisioner

Inherits:
Object
  • Object
show all
Defined in:
lib/engineyard-local/middleware/default_provisioner.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, env) ⇒ DefaultProvisioner

Returns a new instance of DefaultProvisioner.



5
6
7
# File 'lib/engineyard-local/middleware/default_provisioner.rb', line 5

def initialize(app, env)
  @app, @env = app, env
end

Instance Method Details

#call(env) ⇒ Object

if the default recipe cookbooks/main/recipes/default.rb exists and the user doesn’t already have a provisioner configured use the default recipe



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/engineyard-local/middleware/default_provisioner.rb', line 12

def call(env)
  if File.exists?(default_recipe_path) && !provisioner_configured?
    @env[:ui].info I18n.t("eylocal.provisioner", :recipe_path => default_recipe_path)
    @env[:vm].config.vm.provision :chef_solo  do |chef|
      chef.cookbooks_path = "cookbooks"
      chef.add_recipe "main"
    end
  end

  @app.call(env)
end

#default_recipe_pathObject



24
25
26
# File 'lib/engineyard-local/middleware/default_provisioner.rb', line 24

def default_recipe_path
  File.join(@env[:root_path], "cookbooks", "main", "recipes", "default.rb")
end

#provisioner_configured?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/engineyard-local/middleware/default_provisioner.rb', line 28

def provisioner_configured?
  !@env[:vm].config.vm.provisioners.empty?
end