vagrant-berkshelf 3.0.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +36 -17
- data/.travis.yml +6 -4
- data/CONTRIBUTING.md +4 -4
- data/Gemfile +2 -2
- data/{LICENSE.txt → LICENSE} +1 -1
- data/README.md +67 -24
- data/Rakefile +14 -0
- data/lib/vagrant-berkshelf.rb +17 -1
- data/lib/vagrant-berkshelf/action/base.rb +48 -0
- data/lib/vagrant-berkshelf/action/check.rb +44 -0
- data/lib/vagrant-berkshelf/action/clean.rb +29 -0
- data/lib/vagrant-berkshelf/action/install.rb +35 -0
- data/lib/vagrant-berkshelf/action/load.rb +59 -0
- data/lib/vagrant-berkshelf/action/share.rb +38 -0
- data/lib/vagrant-berkshelf/action/upload.rb +99 -0
- data/lib/vagrant-berkshelf/config.rb +87 -0
- data/lib/vagrant-berkshelf/env.rb +14 -0
- data/lib/vagrant-berkshelf/errors.rb +79 -0
- data/lib/vagrant-berkshelf/helpers.rb +180 -0
- data/lib/vagrant-berkshelf/plugin.rb +40 -0
- data/lib/vagrant-berkshelf/version.rb +5 -0
- data/spec/spec_helper.rb +1 -4
- data/spec/unit/vagrant-berkshelf/config_spec.rb +119 -0
- data/vagrant-berkshelf.gemspec +26 -14
- metadata +35 -52
- data/Thorfile +0 -59
- data/integration/Berksfile +0 -3
- data/integration/Gemfile +0 -10
- data/integration/Vagrantfile +0 -19
- data/lib/berkshelf/vagrant.rb +0 -68
- data/lib/berkshelf/vagrant/action.rb +0 -64
- data/lib/berkshelf/vagrant/action/clean.rb +0 -27
- data/lib/berkshelf/vagrant/action/configure_chef.rb +0 -27
- data/lib/berkshelf/vagrant/action/install.rb +0 -69
- data/lib/berkshelf/vagrant/action/load_shelf.rb +0 -52
- data/lib/berkshelf/vagrant/action/upload.rb +0 -53
- data/lib/berkshelf/vagrant/berks_config.rb +0 -48
- data/lib/berkshelf/vagrant/chef_config.rb +0 -88
- data/lib/berkshelf/vagrant/config.rb +0 -113
- data/lib/berkshelf/vagrant/env.rb +0 -16
- data/lib/berkshelf/vagrant/env_helpers.rb +0 -160
- data/lib/berkshelf/vagrant/errors.rb +0 -71
- data/lib/berkshelf/vagrant/plugin.rb +0 -41
- data/lib/berkshelf/vagrant/version.rb +0 -5
- data/spec/unit/berkshelf/vagrant/config_spec.rb +0 -97
- data/spec/unit/berkshelf/vagrant/errors_spec.rb +0 -12
- data/spec/unit/berkshelf/vagrant_spec.rb +0 -31
@@ -1,41 +0,0 @@
|
|
1
|
-
module Berkshelf
|
2
|
-
module Vagrant
|
3
|
-
class Plugin < ::Vagrant.plugin("2")
|
4
|
-
class << self
|
5
|
-
def provision(hook)
|
6
|
-
hook.after(::Vagrant::Action::Builtin::Provision, Berkshelf::Vagrant::Action.upload)
|
7
|
-
hook.after(::Vagrant::Action::Builtin::Provision, Berkshelf::Vagrant::Action.install)
|
8
|
-
|
9
|
-
# vagrant-aws < 0.4.0 uses a non-standard provision action
|
10
|
-
if defined?(VagrantPlugins::AWS::Action::TimedProvision)
|
11
|
-
hook.after(VagrantPlugins::AWS::Action::TimedProvision, Berkshelf::Vagrant::Action.upload)
|
12
|
-
hook.after(VagrantPlugins::AWS::Action::TimedProvision, Berkshelf::Vagrant::Action.install)
|
13
|
-
end
|
14
|
-
|
15
|
-
hook.before(::Vagrant::Action::Builtin::ConfigValidate, Berkshelf::Vagrant::Action.setup)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
name "berkshelf"
|
20
|
-
description <<-DESC
|
21
|
-
Automatically make available cookbooks to virtual machines provisioned by Chef Solo
|
22
|
-
or Chef Client using Berkshelf.
|
23
|
-
DESC
|
24
|
-
|
25
|
-
action_hook(:berkshelf_provision, :machine_action_up, &method(:provision))
|
26
|
-
action_hook(:berkshelf_provision, :machine_action_reload, &method(:provision))
|
27
|
-
action_hook(:berkshelf_provision, :machine_action_provision, &method(:provision))
|
28
|
-
|
29
|
-
action_hook(:berkshelf_cleanup, :machine_action_destroy) do |hook|
|
30
|
-
# @todo this should be appended to the middleware stack instead of hooked in after the
|
31
|
-
# Virtualbox specific destroy step but there is a bug in Vagrant (1.1.0) which
|
32
|
-
# causes appended middleware to run multiple times.
|
33
|
-
hook.after(VagrantPlugins::ProviderVirtualBox::Action::DestroyUnusedNetworkInterfaces, Berkshelf::Vagrant::Action.clean)
|
34
|
-
end
|
35
|
-
|
36
|
-
config(:berkshelf) do
|
37
|
-
Berkshelf::Vagrant::Config
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,97 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Berkshelf::Vagrant::Config do
|
4
|
-
let(:unset_value) { described_class::UNSET_VALUE }
|
5
|
-
subject { described_class.new.tap {|s| s.finalize! } }
|
6
|
-
|
7
|
-
it "sets a path to a Berksfile in the current working directory for berksfile_path" do
|
8
|
-
subject.berksfile_path.should eql(File.join(Dir.pwd, "Berksfile"))
|
9
|
-
end
|
10
|
-
|
11
|
-
context "when the Berksfile exists" do
|
12
|
-
before do
|
13
|
-
File.should_receive(:exist?).with(File.join(Dir.pwd, "Berksfile")).and_return(true)
|
14
|
-
end
|
15
|
-
|
16
|
-
it "it sets the value of enabled to true" do
|
17
|
-
subject.enabled.should be true
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
context "when the Berksfile doesn't exist" do
|
22
|
-
before do
|
23
|
-
File.should_receive(:exist?).with(File.join(Dir.pwd, "Berksfile")).and_return(false)
|
24
|
-
end
|
25
|
-
|
26
|
-
it "set the value of enabled to false" do
|
27
|
-
subject.enabled.should be false
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
it "sets the value of only to an empty array" do
|
32
|
-
subject.only.should be_a(Array)
|
33
|
-
subject.only.should be_empty
|
34
|
-
end
|
35
|
-
|
36
|
-
it "sets the value of except to an empty array" do
|
37
|
-
subject.except.should be_a(Array)
|
38
|
-
subject.except.should be_empty
|
39
|
-
end
|
40
|
-
|
41
|
-
it "sets the value of node_name to the value in the Berkshelf::Vagrant::BerksConfig.instance" do
|
42
|
-
subject.node_name.should eql(Berkshelf::Vagrant::BerksConfig.instance.chef.node_name)
|
43
|
-
end
|
44
|
-
|
45
|
-
it "sets the value of client_key to the value in Berkshelf::Vagrant::BerksConfig.instance" do
|
46
|
-
subject.client_key.should eql(Berkshelf::Vagrant::BerksConfig.instance.chef.client_key)
|
47
|
-
end
|
48
|
-
|
49
|
-
describe "#validate" do
|
50
|
-
let(:env) { double('env', root_path: Dir.pwd ) }
|
51
|
-
let(:config) { double('config', berkshelf: subject) }
|
52
|
-
let(:machine) { double('machine', config: config, env: env) }
|
53
|
-
|
54
|
-
before do
|
55
|
-
subject.finalize!
|
56
|
-
end
|
57
|
-
|
58
|
-
context "when the plugin is enabled" do
|
59
|
-
before(:each) do
|
60
|
-
subject.stub(enabled: true)
|
61
|
-
env.stub_chain(:vagrantfile, :config, :vm, :provisioners, :any?)
|
62
|
-
end
|
63
|
-
|
64
|
-
let(:result) { subject.validate(machine) }
|
65
|
-
|
66
|
-
it "returns a Hash with a 'berkshelf configuration' key" do
|
67
|
-
result.should be_a(Hash)
|
68
|
-
result.should have_key("berkshelf configuration")
|
69
|
-
end
|
70
|
-
|
71
|
-
context "when all validations pass" do
|
72
|
-
before(:each) do
|
73
|
-
File.should_receive(:exist?).with(subject.berksfile_path).and_return(true)
|
74
|
-
end
|
75
|
-
|
76
|
-
it "contains an empty Array for the 'berkshelf configuration' key" do
|
77
|
-
result["berkshelf configuration"].should be_a(Array)
|
78
|
-
result["berkshelf configuration"].should be_empty
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
context "when the plugin is disabled" do
|
84
|
-
let(:machine) { double('machine', env: env) }
|
85
|
-
|
86
|
-
before do
|
87
|
-
subject.stub(enabled: false)
|
88
|
-
end
|
89
|
-
|
90
|
-
it "does not perform any validations" do
|
91
|
-
machine.should_not_receive(:config)
|
92
|
-
|
93
|
-
subject.validate(machine)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Berkshelf::VagrantWrapperError do
|
4
|
-
subject { described_class }
|
5
|
-
|
6
|
-
it "proxies messages to the original exception" do
|
7
|
-
original = double('original_error')
|
8
|
-
original.should_receive(:a_message)
|
9
|
-
|
10
|
-
subject.new(original).a_message
|
11
|
-
end
|
12
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Berkshelf::Vagrant do
|
4
|
-
describe "ClassMethods" do
|
5
|
-
describe "::shelf_path" do
|
6
|
-
it "returns a String" do
|
7
|
-
subject.shelf_path.should be_a(String)
|
8
|
-
end
|
9
|
-
|
10
|
-
it "is a pathname including the berkshelf_path" do
|
11
|
-
subject.shelf_path.should include(Berkshelf.berkshelf_path)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "::mkshelf" do
|
16
|
-
it "returns a String" do
|
17
|
-
subject.mkshelf().should be_a(String)
|
18
|
-
end
|
19
|
-
|
20
|
-
it "is a pathname including the shelf_path" do
|
21
|
-
subject.mkshelf().should include(subject.shelf_path)
|
22
|
-
end
|
23
|
-
|
24
|
-
it "is a pathname including machine name" do
|
25
|
-
|
26
|
-
machine_name = 'fantastic_machine'
|
27
|
-
subject.mkshelf(machine_name).should include(machine_name)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|