vagrant-berkshelf 1.2.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 +15 -0
- data/.gitignore +18 -0
- data/.travis.yml +11 -0
- data/CHANGELOG.md +18 -0
- data/CONTRIBUTING.md +44 -0
- data/Gemfile +35 -0
- data/Guardfile +16 -0
- data/LICENSE.txt +13 -0
- data/README.md +35 -0
- data/Thorfile +58 -0
- data/lib/berkshelf/vagrant.rb +45 -0
- data/lib/berkshelf/vagrant/action.rb +63 -0
- data/lib/berkshelf/vagrant/action/clean.rb +28 -0
- data/lib/berkshelf/vagrant/action/configure_chef.rb +28 -0
- data/lib/berkshelf/vagrant/action/install.rb +71 -0
- data/lib/berkshelf/vagrant/action/load_shelf.rb +50 -0
- data/lib/berkshelf/vagrant/action/set_ui.rb +17 -0
- data/lib/berkshelf/vagrant/action/upload.rb +50 -0
- data/lib/berkshelf/vagrant/config.rb +91 -0
- data/lib/berkshelf/vagrant/env.rb +26 -0
- data/lib/berkshelf/vagrant/env_helpers.rb +64 -0
- data/lib/berkshelf/vagrant/errors.rb +33 -0
- data/lib/berkshelf/vagrant/plugin.rb +42 -0
- data/lib/berkshelf/vagrant/version.rb +5 -0
- data/lib/vagrant-berkshelf.rb +1 -0
- data/spec/spec_helper.rb +22 -0
- data/spec/unit/berkshelf/vagrant/config_spec.rb +97 -0
- data/spec/unit/berkshelf/vagrant/errors_spec.rb +12 -0
- data/spec/unit/berkshelf/vagrant_spec.rb +25 -0
- data/vagrant-berkshelf.gemspec +36 -0
- metadata +230 -0
@@ -0,0 +1 @@
|
|
1
|
+
require 'berkshelf/vagrant'
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
require 'spork'
|
4
|
+
|
5
|
+
Spork.prefork do
|
6
|
+
APP_ROOT = File.expand_path('../../', __FILE__)
|
7
|
+
ENV["BERKSHELF_PATH"] = File.join(APP_ROOT, 'spec', 'tmp', 'berkshelf')
|
8
|
+
|
9
|
+
require 'rspec'
|
10
|
+
|
11
|
+
RSpec.configure do |config|
|
12
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
13
|
+
config.run_all_when_everything_filtered = true
|
14
|
+
config.filter_run focus: true
|
15
|
+
|
16
|
+
config.order = 'random'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
Spork.each_run do
|
21
|
+
require 'berkshelf/vagrant'
|
22
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Berkshelf::Vagrant::Config do
|
4
|
+
let(:unset_value) { described_class::UNSET_VALUE }
|
5
|
+
let(:config) { described_class.new }
|
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
|
+
config.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
|
+
config.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::Config.instance" do
|
42
|
+
subject.node_name.should eql(Berkshelf::Config.instance.chef.node_name)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "sets the value of client_key to the value in Berkshelf::Config.instance" do
|
46
|
+
subject.client_key.should eql(Berkshelf::Config.instance.chef.client_key)
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "#validate" do
|
50
|
+
let(:env) { double('env') }
|
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(:config_global, :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') }
|
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
|
@@ -0,0 +1,12 @@
|
|
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
|
@@ -0,0 +1,25 @@
|
|
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
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'berkshelf/vagrant/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "vagrant-berkshelf"
|
8
|
+
spec.version = Berkshelf::Vagrant::VERSION
|
9
|
+
spec.authors = [ "Jamie Winsor" ]
|
10
|
+
spec.email = [ "reset@riotgames.com" ]
|
11
|
+
spec.description = %q{A Vagrant plugin to add Berkshelf integration to the Chef provisioners}
|
12
|
+
spec.summary = spec.description
|
13
|
+
spec.homepage = "http://berkshelf.com"
|
14
|
+
spec.license = "Apache 2.0"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
spec.required_ruby_version = ">= 1.9.1"
|
21
|
+
|
22
|
+
spec.add_dependency 'berkshelf', '~> 1.4.0'
|
23
|
+
# activesupport 3.2.13 contains an incompatible hard lock on i18n (= 0.6.1)
|
24
|
+
spec.add_dependency 'activesupport', '>= 3.2.0', '< 3.2.13'
|
25
|
+
|
26
|
+
# Explicit locks to ensure we activate the proper gem versions for Vagrant
|
27
|
+
spec.add_dependency "i18n", "~> 0.6.0"
|
28
|
+
spec.add_dependency "json", ">= 1.5.1", "< 1.8.0"
|
29
|
+
spec.add_dependency "net-ssh", "~> 2.6.6"
|
30
|
+
spec.add_dependency "net-scp", "~> 1.1.0"
|
31
|
+
|
32
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
33
|
+
spec.add_development_dependency 'spork'
|
34
|
+
spec.add_development_dependency 'rspec'
|
35
|
+
spec.add_development_dependency 'thor'
|
36
|
+
end
|
metadata
ADDED
@@ -0,0 +1,230 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vagrant-berkshelf
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jamie Winsor
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-04-19 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: berkshelf
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.4.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.4.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.2.0
|
34
|
+
- - <
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 3.2.13
|
37
|
+
type: :runtime
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 3.2.0
|
44
|
+
- - <
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 3.2.13
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: i18n
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.6.0
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ~>
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 0.6.0
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: json
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 1.5.1
|
68
|
+
- - <
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 1.8.0
|
71
|
+
type: :runtime
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.5.1
|
78
|
+
- - <
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 1.8.0
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: net-ssh
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ~>
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 2.6.6
|
88
|
+
type: :runtime
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ~>
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 2.6.6
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: net-scp
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 1.1.0
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ~>
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: 1.1.0
|
109
|
+
- !ruby/object:Gem::Dependency
|
110
|
+
name: bundler
|
111
|
+
requirement: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ~>
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '1.3'
|
116
|
+
type: :development
|
117
|
+
prerelease: false
|
118
|
+
version_requirements: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ~>
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '1.3'
|
123
|
+
- !ruby/object:Gem::Dependency
|
124
|
+
name: spork
|
125
|
+
requirement: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - ! '>='
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
130
|
+
type: :development
|
131
|
+
prerelease: false
|
132
|
+
version_requirements: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ! '>='
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
- !ruby/object:Gem::Dependency
|
138
|
+
name: rspec
|
139
|
+
requirement: !ruby/object:Gem::Requirement
|
140
|
+
requirements:
|
141
|
+
- - ! '>='
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '0'
|
144
|
+
type: :development
|
145
|
+
prerelease: false
|
146
|
+
version_requirements: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
- !ruby/object:Gem::Dependency
|
152
|
+
name: thor
|
153
|
+
requirement: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
type: :development
|
159
|
+
prerelease: false
|
160
|
+
version_requirements: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - ! '>='
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
165
|
+
description: A Vagrant plugin to add Berkshelf integration to the Chef provisioners
|
166
|
+
email:
|
167
|
+
- reset@riotgames.com
|
168
|
+
executables: []
|
169
|
+
extensions: []
|
170
|
+
extra_rdoc_files: []
|
171
|
+
files:
|
172
|
+
- .gitignore
|
173
|
+
- .travis.yml
|
174
|
+
- CHANGELOG.md
|
175
|
+
- CONTRIBUTING.md
|
176
|
+
- Gemfile
|
177
|
+
- Guardfile
|
178
|
+
- LICENSE.txt
|
179
|
+
- README.md
|
180
|
+
- Thorfile
|
181
|
+
- lib/berkshelf/vagrant.rb
|
182
|
+
- lib/berkshelf/vagrant/action.rb
|
183
|
+
- lib/berkshelf/vagrant/action/clean.rb
|
184
|
+
- lib/berkshelf/vagrant/action/configure_chef.rb
|
185
|
+
- lib/berkshelf/vagrant/action/install.rb
|
186
|
+
- lib/berkshelf/vagrant/action/load_shelf.rb
|
187
|
+
- lib/berkshelf/vagrant/action/set_ui.rb
|
188
|
+
- lib/berkshelf/vagrant/action/upload.rb
|
189
|
+
- lib/berkshelf/vagrant/config.rb
|
190
|
+
- lib/berkshelf/vagrant/env.rb
|
191
|
+
- lib/berkshelf/vagrant/env_helpers.rb
|
192
|
+
- lib/berkshelf/vagrant/errors.rb
|
193
|
+
- lib/berkshelf/vagrant/plugin.rb
|
194
|
+
- lib/berkshelf/vagrant/version.rb
|
195
|
+
- lib/vagrant-berkshelf.rb
|
196
|
+
- spec/spec_helper.rb
|
197
|
+
- spec/unit/berkshelf/vagrant/config_spec.rb
|
198
|
+
- spec/unit/berkshelf/vagrant/errors_spec.rb
|
199
|
+
- spec/unit/berkshelf/vagrant_spec.rb
|
200
|
+
- vagrant-berkshelf.gemspec
|
201
|
+
homepage: http://berkshelf.com
|
202
|
+
licenses:
|
203
|
+
- Apache 2.0
|
204
|
+
metadata: {}
|
205
|
+
post_install_message:
|
206
|
+
rdoc_options: []
|
207
|
+
require_paths:
|
208
|
+
- lib
|
209
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
210
|
+
requirements:
|
211
|
+
- - ! '>='
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: 1.9.1
|
214
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
215
|
+
requirements:
|
216
|
+
- - ! '>='
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
version: '0'
|
219
|
+
requirements: []
|
220
|
+
rubyforge_project:
|
221
|
+
rubygems_version: 2.0.3
|
222
|
+
signing_key:
|
223
|
+
specification_version: 4
|
224
|
+
summary: A Vagrant plugin to add Berkshelf integration to the Chef provisioners
|
225
|
+
test_files:
|
226
|
+
- spec/spec_helper.rb
|
227
|
+
- spec/unit/berkshelf/vagrant/config_spec.rb
|
228
|
+
- spec/unit/berkshelf/vagrant/errors_spec.rb
|
229
|
+
- spec/unit/berkshelf/vagrant_spec.rb
|
230
|
+
has_rdoc:
|