vagrant-berkshelf 1.2.0 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -28,7 +28,7 @@ Clone the project
28
28
  and run:
29
29
 
30
30
  $ cd vagrant-berkshelf
31
- $ bundle-vagrant install
31
+ $ bundle install
32
32
 
33
33
  Bundler will install all gems and their dependencies required for testing and developing.
34
34
 
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Berkshelf::Vagrant
1
+ # vagrant-berkshelf
2
2
  [![Gem Version](https://badge.fury.io/rb/vagrant-berkshelf.png)](http://badge.fury.io/rb/vagrant-berkshelf)
3
3
  [![Build Status](https://travis-ci.org/RiotGames/vagrant-berkshelf.png?branch=master)](https://travis-ci.org/RiotGames/vagrant-berkshelf)
4
4
  [![Dependency Status](https://gemnasium.com/RiotGames/vagrant-berkshelf.png)](https://gemnasium.com/RiotGames/vagrant-berkshelf)
@@ -8,16 +8,15 @@ A Vagrant plugin to add Berkshelf integration to the Chef provisioners
8
8
 
9
9
  ## Installation
10
10
 
11
- Install Vagrant 1.1.x from the [Vagrant downloads page](http://downloads.vagrantup.com/)
11
+ Install Vagrant 1.2.x from the [Vagrant downloads page](http://downloads.vagrantup.com/)
12
12
 
13
- Install the Berkshelf Vagrant plugin
13
+ Install the Vagrant Berkshelf plugin
14
14
 
15
15
  $ vagrant plugin install vagrant-berkshelf
16
16
 
17
17
  ## Usage
18
18
 
19
- Once the Berkshelf Vagrant plugin is installed it can be enabled in your Vagrantfile
20
-
19
+ Once the Vagrant Berkshelf plugin is installed it can be enabled in your Vagrantfile
21
20
 
22
21
  Vagrant.configure("2") do |config|
23
22
  ...
@@ -29,6 +28,7 @@ The plugin will look in your current working directory for your `Berksfile` by d
29
28
 
30
29
  # Authors
31
30
  - Jamie Winsor (<reset@riotgames.com>)
31
+ - Michael Ivey (<michael.ivey@riotgames.com>)
32
32
 
33
33
  Thank you to all of our [Contributors](https://github.com/RiotGames/vagrant-berkshelf/graphs/contributors), testers, and users.
34
34
 
data/Thorfile CHANGED
@@ -8,26 +8,22 @@ require 'thor/rake_compat'
8
8
  require 'berkshelf/vagrant'
9
9
 
10
10
  class Default < Thor
11
- class Gem < Thor
12
- include Thor::RakeCompat
13
- Bundler::GemHelper.install_tasks
11
+ include Thor::RakeCompat
12
+ Bundler::GemHelper.install_tasks
14
13
 
15
- namespace :gem
16
-
17
- desc "build", "Build vagrant-berkshelf-#{Berkshelf::Vagrant::VERSION}.gem into the pkg directory"
18
- def build
19
- Rake::Task["build"].execute
20
- end
14
+ desc "build", "Build vagrant-berkshelf-#{Berkshelf::Vagrant::VERSION}.gem into the pkg directory"
15
+ def build
16
+ Rake::Task["build"].execute
17
+ end
21
18
 
22
- desc "release", "Create tag v#{Berkshelf::Vagrant::VERSION} and build and push vagrant-berkshelf-#{Berkshelf::Vagrant::VERSION}.gem to Rubygems"
23
- def release
24
- Rake::Task["release"].execute
25
- end
19
+ desc "release", "Create tag v#{Berkshelf::Vagrant::VERSION} and build and push vagrant-berkshelf-#{Berkshelf::Vagrant::VERSION}.gem to Rubygems"
20
+ def release
21
+ Rake::Task["release"].execute
22
+ end
26
23
 
27
- desc "install", "Build and install vagrant-berkshelf-#{Berkshelf::Vagrant::VERSION}.gem into system gems"
28
- def install
29
- Rake::Task["install"].execute
30
- end
24
+ desc "install", "Build and install vagrant-berkshelf-#{Berkshelf::Vagrant::VERSION}.gem into system gems"
25
+ def install
26
+ Rake::Task["install"].execute
31
27
  end
32
28
 
33
29
  class Spec < Thor
@@ -1,14 +1,16 @@
1
1
  begin
2
- require "vagrant"
2
+ require 'vagrant'
3
3
  rescue LoadError
4
- raise "The Vagrant Berkshelf plugin must be run within Vagrant."
4
+ raise 'The Vagrant Berkshelf plugin must be run within Vagrant.'
5
5
  end
6
6
 
7
+ require 'fileutils'
8
+ require 'json'
9
+ require 'tmpdir'
10
+
7
11
  require 'berkshelf'
8
12
  require 'berkshelf/vagrant/version'
9
13
  require 'berkshelf/vagrant/errors'
10
- require 'tmpdir'
11
- require 'fileutils'
12
14
 
13
15
  module Berkshelf
14
16
  # @author Jamie Winsor <reset@riotgames.com>
@@ -31,12 +33,19 @@ module Berkshelf
31
33
  #
32
34
  # @return [String]
33
35
  # path to the generated shelf
34
- def mkshelf
36
+ def mkshelf(machine_name = nil)
37
+
35
38
  unless File.exist?(shelf_path)
36
39
  FileUtils.mkdir_p(shelf_path)
37
40
  end
38
41
 
39
- Dir.mktmpdir('berkshelf-', shelf_path)
42
+ if machine_name.nil?
43
+ prefix_suffix = 'berkshelf-'
44
+ else
45
+ prefix_suffix = ['berkshelf-', "-#{machine_name}"]
46
+ end
47
+
48
+ Dir.mktmpdir(prefix_suffix, shelf_path)
40
49
  end
41
50
  end
42
51
  end
@@ -14,7 +14,7 @@ module Berkshelf
14
14
  env[:berkshelf].ui.info "Cleaning Vagrant's berkshelf"
15
15
 
16
16
  FileUtils.remove_dir(env[:berkshelf].shelf, force: true)
17
- FileUtils.rm_f(cache_file)
17
+ FileUtils.rm_f(cache_file(env))
18
18
  env[:berkshelf].shelf = nil
19
19
  end
20
20
 
@@ -14,10 +14,13 @@ module Berkshelf
14
14
  return @app.call(env)
15
15
  end
16
16
 
17
- shelf = load_shelf
17
+ # Make sure that Berkshelf itself uses distinct directories for each vagrant run.
18
+ ENV['BERKSHELF_PATH'] = File.join(Berkshelf.berkshelf_path, env[:machine].name.to_s) unless ENV['BERKSHELF_PATH']
19
+
20
+ shelf = load_shelf env
18
21
 
19
22
  if shelf.nil?
20
- shelf = cache_shelf(Berkshelf::Vagrant.mkshelf)
23
+ shelf = cache_shelf(Berkshelf::Vagrant.mkshelf(env[:machine].name), env)
21
24
  end
22
25
 
23
26
  env[:berkshelf].shelf = shelf
@@ -28,10 +31,10 @@ module Berkshelf
28
31
  # @param [String] path
29
32
  #
30
33
  # @return [String]
31
- def cache_shelf(path)
34
+ def cache_shelf(path, env)
32
35
  FileUtils.mkdir_p(File.dirname(path))
33
36
 
34
- File.open(cache_file, 'w+') do |f|
37
+ File.open((cache_file(env)), 'w+') do |f|
35
38
  f.write(path)
36
39
  end
37
40
 
@@ -39,10 +42,10 @@ module Berkshelf
39
42
  end
40
43
 
41
44
  # @return [String, nil]
42
- def load_shelf
43
- return nil unless File.exist?(cache_file)
45
+ def load_shelf(env)
46
+ return nil unless File.exist?(cache_file(env))
44
47
 
45
- File.read(cache_file).chomp
48
+ File.read(cache_file(env)).chomp
46
49
  end
47
50
  end
48
51
  end
@@ -8,8 +8,8 @@ module Berkshelf
8
8
  # Vagrant runs.
9
9
  #
10
10
  # @return [String]
11
- def cache_file
12
- File.join('.vagrant', 'berkshelf')
11
+ def cache_file(env)
12
+ File.join('.vagrant', 'machines', env[:machine].name.to_s, 'berkshelf')
13
13
  end
14
14
 
15
15
  # Filter all of the provisioners of the given vagrant environment with the given name
@@ -1,5 +1,5 @@
1
1
  module Berkshelf
2
2
  module Vagrant
3
- VERSION = "1.2.0"
3
+ VERSION = "1.3.2"
4
4
  end
5
5
  end
@@ -13,13 +13,21 @@ describe Berkshelf::Vagrant do
13
13
  end
14
14
 
15
15
  describe "::mkshelf" do
16
+
16
17
  it "returns a String" do
17
- subject.mkshelf.should be_a(String)
18
+ subject.mkshelf().should be_a(String)
18
19
  end
19
20
 
20
21
  it "is a pathname including the shelf_path" do
21
- subject.mkshelf.should include(subject.shelf_path)
22
+ subject.mkshelf().should include(subject.shelf_path)
22
23
  end
24
+
25
+ it "is a pathname including machine name" do
26
+
27
+ machine_name = 'fantastic_machine'
28
+ subject.mkshelf(machine_name).should include(machine_name)
29
+ end
30
+
23
31
  end
24
32
  end
25
33
  end
@@ -4,30 +4,29 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'berkshelf/vagrant/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "vagrant-berkshelf"
7
+ spec.name = 'vagrant-berkshelf'
8
8
  spec.version = Berkshelf::Vagrant::VERSION
9
- spec.authors = [ "Jamie Winsor" ]
10
- spec.email = [ "reset@riotgames.com" ]
9
+ spec.authors = [ 'Jamie Winsor', 'Michael Ivey' ]
10
+ spec.email = [ 'reset@riotgames.com', 'michael.ivey@riotgames.com' ]
11
11
  spec.description = %q{A Vagrant plugin to add Berkshelf integration to the Chef provisioners}
12
12
  spec.summary = spec.description
13
- spec.homepage = "http://berkshelf.com"
14
- spec.license = "Apache 2.0"
13
+ spec.homepage = 'http://berkshelf.com'
14
+ spec.license = 'Apache 2.0'
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
- spec.required_ruby_version = ">= 1.9.1"
19
+ spec.require_paths = ['lib']
20
+ spec.required_ruby_version = '>= 1.9.1'
21
21
 
22
- spec.add_dependency 'berkshelf', '~> 1.4.0'
22
+ spec.add_dependency 'berkshelf', '~> 2.0.4'
23
23
  # activesupport 3.2.13 contains an incompatible hard lock on i18n (= 0.6.1)
24
24
  spec.add_dependency 'activesupport', '>= 3.2.0', '< 3.2.13'
25
25
 
26
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"
27
+ spec.add_dependency 'i18n', '~> 0.6.0'
28
+ spec.add_dependency 'net-ssh', '~> 2.6.6'
29
+ spec.add_dependency 'net-scp', '~> 1.1.0'
31
30
 
32
31
  spec.add_development_dependency 'bundler', '~> 1.3'
33
32
  spec.add_development_dependency 'spork'
metadata CHANGED
@@ -1,32 +1,37 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-berkshelf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.2
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Jamie Winsor
9
+ - Michael Ivey
8
10
  autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
- date: 2013-04-19 00:00:00.000000000 Z
13
+ date: 2013-06-17 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: berkshelf
15
17
  requirement: !ruby/object:Gem::Requirement
18
+ none: false
16
19
  requirements:
17
20
  - - ~>
18
21
  - !ruby/object:Gem::Version
19
- version: 1.4.0
22
+ version: 2.0.4
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
23
27
  requirements:
24
28
  - - ~>
25
29
  - !ruby/object:Gem::Version
26
- version: 1.4.0
30
+ version: 2.0.4
27
31
  - !ruby/object:Gem::Dependency
28
32
  name: activesupport
29
33
  requirement: !ruby/object:Gem::Requirement
34
+ none: false
30
35
  requirements:
31
36
  - - ! '>='
32
37
  - !ruby/object:Gem::Version
@@ -37,6 +42,7 @@ dependencies:
37
42
  type: :runtime
38
43
  prerelease: false
39
44
  version_requirements: !ruby/object:Gem::Requirement
45
+ none: false
40
46
  requirements:
41
47
  - - ! '>='
42
48
  - !ruby/object:Gem::Version
@@ -47,6 +53,7 @@ dependencies:
47
53
  - !ruby/object:Gem::Dependency
48
54
  name: i18n
49
55
  requirement: !ruby/object:Gem::Requirement
56
+ none: false
50
57
  requirements:
51
58
  - - ~>
52
59
  - !ruby/object:Gem::Version
@@ -54,33 +61,15 @@ dependencies:
54
61
  type: :runtime
55
62
  prerelease: false
56
63
  version_requirements: !ruby/object:Gem::Requirement
64
+ none: false
57
65
  requirements:
58
66
  - - ~>
59
67
  - !ruby/object:Gem::Version
60
68
  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
69
  - !ruby/object:Gem::Dependency
82
70
  name: net-ssh
83
71
  requirement: !ruby/object:Gem::Requirement
72
+ none: false
84
73
  requirements:
85
74
  - - ~>
86
75
  - !ruby/object:Gem::Version
@@ -88,6 +77,7 @@ dependencies:
88
77
  type: :runtime
89
78
  prerelease: false
90
79
  version_requirements: !ruby/object:Gem::Requirement
80
+ none: false
91
81
  requirements:
92
82
  - - ~>
93
83
  - !ruby/object:Gem::Version
@@ -95,6 +85,7 @@ dependencies:
95
85
  - !ruby/object:Gem::Dependency
96
86
  name: net-scp
97
87
  requirement: !ruby/object:Gem::Requirement
88
+ none: false
98
89
  requirements:
99
90
  - - ~>
100
91
  - !ruby/object:Gem::Version
@@ -102,6 +93,7 @@ dependencies:
102
93
  type: :runtime
103
94
  prerelease: false
104
95
  version_requirements: !ruby/object:Gem::Requirement
96
+ none: false
105
97
  requirements:
106
98
  - - ~>
107
99
  - !ruby/object:Gem::Version
@@ -109,6 +101,7 @@ dependencies:
109
101
  - !ruby/object:Gem::Dependency
110
102
  name: bundler
111
103
  requirement: !ruby/object:Gem::Requirement
104
+ none: false
112
105
  requirements:
113
106
  - - ~>
114
107
  - !ruby/object:Gem::Version
@@ -116,6 +109,7 @@ dependencies:
116
109
  type: :development
117
110
  prerelease: false
118
111
  version_requirements: !ruby/object:Gem::Requirement
112
+ none: false
119
113
  requirements:
120
114
  - - ~>
121
115
  - !ruby/object:Gem::Version
@@ -123,6 +117,7 @@ dependencies:
123
117
  - !ruby/object:Gem::Dependency
124
118
  name: spork
125
119
  requirement: !ruby/object:Gem::Requirement
120
+ none: false
126
121
  requirements:
127
122
  - - ! '>='
128
123
  - !ruby/object:Gem::Version
@@ -130,6 +125,7 @@ dependencies:
130
125
  type: :development
131
126
  prerelease: false
132
127
  version_requirements: !ruby/object:Gem::Requirement
128
+ none: false
133
129
  requirements:
134
130
  - - ! '>='
135
131
  - !ruby/object:Gem::Version
@@ -137,6 +133,7 @@ dependencies:
137
133
  - !ruby/object:Gem::Dependency
138
134
  name: rspec
139
135
  requirement: !ruby/object:Gem::Requirement
136
+ none: false
140
137
  requirements:
141
138
  - - ! '>='
142
139
  - !ruby/object:Gem::Version
@@ -144,6 +141,7 @@ dependencies:
144
141
  type: :development
145
142
  prerelease: false
146
143
  version_requirements: !ruby/object:Gem::Requirement
144
+ none: false
147
145
  requirements:
148
146
  - - ! '>='
149
147
  - !ruby/object:Gem::Version
@@ -151,6 +149,7 @@ dependencies:
151
149
  - !ruby/object:Gem::Dependency
152
150
  name: thor
153
151
  requirement: !ruby/object:Gem::Requirement
152
+ none: false
154
153
  requirements:
155
154
  - - ! '>='
156
155
  - !ruby/object:Gem::Version
@@ -158,6 +157,7 @@ dependencies:
158
157
  type: :development
159
158
  prerelease: false
160
159
  version_requirements: !ruby/object:Gem::Requirement
160
+ none: false
161
161
  requirements:
162
162
  - - ! '>='
163
163
  - !ruby/object:Gem::Version
@@ -165,6 +165,7 @@ dependencies:
165
165
  description: A Vagrant plugin to add Berkshelf integration to the Chef provisioners
166
166
  email:
167
167
  - reset@riotgames.com
168
+ - michael.ivey@riotgames.com
168
169
  executables: []
169
170
  extensions: []
170
171
  extra_rdoc_files: []
@@ -201,26 +202,30 @@ files:
201
202
  homepage: http://berkshelf.com
202
203
  licenses:
203
204
  - Apache 2.0
204
- metadata: {}
205
205
  post_install_message:
206
206
  rdoc_options: []
207
207
  require_paths:
208
208
  - lib
209
209
  required_ruby_version: !ruby/object:Gem::Requirement
210
+ none: false
210
211
  requirements:
211
212
  - - ! '>='
212
213
  - !ruby/object:Gem::Version
213
214
  version: 1.9.1
214
215
  required_rubygems_version: !ruby/object:Gem::Requirement
216
+ none: false
215
217
  requirements:
216
218
  - - ! '>='
217
219
  - !ruby/object:Gem::Version
218
220
  version: '0'
221
+ segments:
222
+ - 0
223
+ hash: -2561841672745040153
219
224
  requirements: []
220
225
  rubyforge_project:
221
- rubygems_version: 2.0.3
226
+ rubygems_version: 1.8.23
222
227
  signing_key:
223
- specification_version: 4
228
+ specification_version: 3
224
229
  summary: A Vagrant plugin to add Berkshelf integration to the Chef provisioners
225
230
  test_files:
226
231
  - spec/spec_helper.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NzE0MzU1NWI1YjNlNTFiNGEwYjFlNGI4YzM3YTcyYWEyZmYzZTc1Yg==
5
- data.tar.gz: !binary |-
6
- YjBhYTE3OTU0OTc2NzZiNzhkMjJlZjJjMGE4ZGRmNzNiMjhkZTM2OA==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- ZjBlMzI2YTQzMDljZjhkOTNlMWU3YzY5ZWNlNzYyZTdjZTk3MDkxNzM0Njll
10
- ODQzNzdmZjYyYjU2OGE2NjQ0ODgyZTA2NTljZTk1OTU5MzUwMDVjODkyYjc1
11
- YjJlNjRkZDgyZjk0MDE3MGQ4ODY4ZmNkMzdiYzkwN2M1ZDBkMDg=
12
- data.tar.gz: !binary |-
13
- YTgxZmYwMGI3ZGM4NWNlYmE3OTkwMjc5OGZkYzZhN2Y0MmFhMmZmYTEzOWU2
14
- YTlhOGUyNDEwODk4NDYzNjFlMGI5M2RiNjc4MjNlMmNhYTkzNjJlMmQwZDc1
15
- ZmMzNWEzNGQxYWE3ZDJjYmMxNGVkZTQ4ZGZlMDdhNmM4MTJiODE=