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.
@@ -0,0 +1,5 @@
1
+ module Berkshelf
2
+ module Vagrant
3
+ VERSION = "1.2.0"
4
+ end
5
+ end
@@ -0,0 +1 @@
1
+ require 'berkshelf/vagrant'
@@ -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: