vagrant-berkshelf 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: