furnish-vagrant 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +0 -2
- data/Guardfile +1 -1
- data/furnish-vagrant.gemspec +3 -3
- data/lib/furnish/provisioners/vagrant.rb +106 -45
- data/lib/furnish/vagrant/version.rb +1 -1
- data/test/test_vagrant.rb +83 -15
- metadata +13 -43
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YTVhMzE5YTgzNzdmMzMxMGQ3OTY3MjllMjdiMTI2YTFlODI5N2JhZA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MjBkNTAwMWFjYjE5MTcxMjQyY2FhZjc5NTNlOTFjNTIwN2IyYjZiZg==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZmEwYTNlODUxNTljNjFmZGIxYTE4N2ZhOTNiZDQyMjA1ZTFiOTI3NTEwM2Rj
|
10
|
+
YzlmOGY5YjQzYzM2MzJiYzBiMTg2MmYwMzFhMjRhNzM3MjRjZTJhMTk0NmU3
|
11
|
+
YzAxZGIxZWI2MmQzZWNkOWQwMTMyYzhjNWQ2YWM1Y2IzMDUwZDY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YjdmY2QxODY4ODU5MzVjYzFkZTBmODgwN2MyNTQ2Mjg3ZWU5MzgxZGFjMmU3
|
14
|
+
Y2JmYjE5NzNhZDM3YjEyZTkwNThhMWUwMzZkOTI2OTRlNTc3MTc2MzZiZTE4
|
15
|
+
NGU1NThlN2JjNGVkYmI2NzU5OTJjNzA3Y2YwYzQ3OWUyYjk3MjE=
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/Guardfile
CHANGED
data/furnish-vagrant.gemspec
CHANGED
@@ -18,13 +18,13 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
20
|
gem.add_dependency 'vagrant-prison', '~> 0.2.0'
|
21
|
-
gem.add_dependency 'furnish', '~> 0.0
|
21
|
+
gem.add_dependency 'furnish', '~> 0.1.0'
|
22
22
|
|
23
|
-
gem.add_development_dependency 'furnish-ip', '~> 0.0
|
23
|
+
gem.add_development_dependency 'furnish-ip', '~> 0.1.0'
|
24
24
|
gem.add_development_dependency 'rake'
|
25
25
|
gem.add_development_dependency 'minitest', '~> 4.5.0'
|
26
26
|
gem.add_development_dependency 'guard-minitest'
|
27
|
-
gem.add_development_dependency 'guard-rake'
|
27
|
+
gem.add_development_dependency 'guard-rake', '~> 0.0.8'
|
28
28
|
gem.add_development_dependency 'rdoc', '~> 4'
|
29
29
|
gem.add_development_dependency 'rb-fsevent'
|
30
30
|
gem.add_development_dependency 'simplecov'
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'vagrant/prison'
|
2
2
|
require 'furnish/vagrant/ui'
|
3
|
+
require 'furnish/provisioners/api'
|
4
|
+
require 'set'
|
3
5
|
|
4
6
|
module Furnish # :nodoc:
|
5
7
|
module Provisioner # :nodoc:
|
@@ -20,17 +22,82 @@ module Furnish # :nodoc:
|
|
20
22
|
# See Furnish::IP (furnish-ip) gem for a provisioner which can be used to
|
21
23
|
# deal with IP allocation and vagrant.
|
22
24
|
#
|
23
|
-
class Vagrant
|
24
|
-
|
25
|
-
|
25
|
+
class Vagrant < API
|
26
|
+
##
|
27
|
+
# :attr: box_url
|
28
|
+
#
|
29
|
+
# Specifies vagrant's box_url. If specified, and #box is not, #box will
|
30
|
+
# be extracted from this value.
|
31
|
+
#
|
32
|
+
# Boxes will be downloaded on demand if they do not already exist.
|
33
|
+
#
|
34
|
+
furnish_property :box_url,
|
35
|
+
"Vagrant's box_url argument",
|
36
|
+
String
|
26
37
|
|
27
|
-
|
28
|
-
#
|
29
|
-
|
38
|
+
##
|
39
|
+
# :attr: box
|
40
|
+
#
|
41
|
+
# Specified a vagrant box name. Will be used for all VMs, will be used
|
42
|
+
# from #box_url if unset.
|
43
|
+
#
|
44
|
+
furnish_property :box,
|
45
|
+
"Vagrant's box argument. Will be extracted from box_url if unset.",
|
46
|
+
String
|
30
47
|
|
31
|
-
|
32
|
-
#
|
33
|
-
|
48
|
+
##
|
49
|
+
# :attr: number_of_servers
|
50
|
+
#
|
51
|
+
# The integer number of boxes to bring up for this provision.
|
52
|
+
#
|
53
|
+
# Takes a list of IPs from a previous provisioner's :ips result. This
|
54
|
+
# :ips does not yield a count that matches this number, provisioning will
|
55
|
+
# fail.
|
56
|
+
furnish_property :number_of_servers,
|
57
|
+
"The number of boxes to bring up for this provision",
|
58
|
+
Integer
|
59
|
+
|
60
|
+
##
|
61
|
+
# :attr: db_name
|
62
|
+
#
|
63
|
+
# A tag that namespaces the VMs provisioned here.
|
64
|
+
#
|
65
|
+
# The default is "default".
|
66
|
+
furnish_property :db_name,
|
67
|
+
"'default' by default, a tag namespacing this set of provisions",
|
68
|
+
String
|
69
|
+
|
70
|
+
##
|
71
|
+
# :attr: customizations
|
72
|
+
#
|
73
|
+
# An array of strings, or array of array of strings, which are passed to
|
74
|
+
# vagrant's vm.customize for each block. These are usually parameters
|
75
|
+
# passed directly to VBoxManage.
|
76
|
+
#
|
77
|
+
# Example:
|
78
|
+
#
|
79
|
+
# # one customization
|
80
|
+
# Furnish::Provisioners::Vagrant.new(
|
81
|
+
# :customizations => ["modifyvm", :id, "--memory", 1024]
|
82
|
+
# )
|
83
|
+
#
|
84
|
+
# # multiple customizations
|
85
|
+
# Furnish::Provisioners::Vagrant.new(
|
86
|
+
# :customizations => [
|
87
|
+
# [ "modifyvm", :id, "--memory", 1024 ]
|
88
|
+
# [ "modifyvm", :id, "--cpus", 4 ]
|
89
|
+
# ]
|
90
|
+
# )
|
91
|
+
#
|
92
|
+
furnish_property :customizations,
|
93
|
+
"an array of arguments that would go to vm.customize. If an array of arrays are supplied, vm.customize is called for each inner array with it as the argument.",
|
94
|
+
Array
|
95
|
+
|
96
|
+
configure_startup do
|
97
|
+
requires :ips, "A set of IP addresses to use for the host-only networks.", Set
|
98
|
+
end
|
99
|
+
|
100
|
+
configure_shutdown { accepts_from_any true }
|
34
101
|
|
35
102
|
#
|
36
103
|
# Construct a new vagrant provisioner -- takes a hash of arguments.
|
@@ -43,13 +110,7 @@ module Furnish # :nodoc:
|
|
43
110
|
# * :customziations - an array of arguments that would go to vm.customize. If an array of arrays are supplied, vm.customize is called for each inner array with it as the argument.
|
44
111
|
#
|
45
112
|
def initialize(args)
|
46
|
-
|
47
|
-
raise ArgumentError, "arguments must be a hash"
|
48
|
-
end
|
49
|
-
|
50
|
-
args.each do |k,v|
|
51
|
-
instance_variable_set("@#{k}", v)
|
52
|
-
end
|
113
|
+
super
|
53
114
|
|
54
115
|
normalize_box_args
|
55
116
|
normalize_customizations
|
@@ -63,13 +124,13 @@ module Furnish # :nodoc:
|
|
63
124
|
# Helper method to structure supplied customizations.
|
64
125
|
#
|
65
126
|
def normalize_customizations
|
66
|
-
if
|
67
|
-
unless
|
127
|
+
if customizations
|
128
|
+
unless customizations.kind_of?(Array)
|
68
129
|
raise ArgumentError, "customizations must be an array of customizations, or array of array of multiple customizations."
|
69
130
|
end
|
70
131
|
|
71
|
-
unless
|
72
|
-
@customizations = [
|
132
|
+
unless customizations.all? { |x| x.kind_of?(Array) }
|
133
|
+
@customizations = [customizations]
|
73
134
|
end
|
74
135
|
end
|
75
136
|
end
|
@@ -78,71 +139,71 @@ module Furnish # :nodoc:
|
|
78
139
|
# Helper method to coerce box and box_url into something normal.
|
79
140
|
#
|
80
141
|
def normalize_box_args
|
81
|
-
if
|
82
|
-
@box = File.basename(
|
142
|
+
if box_url
|
143
|
+
@box = File.basename(box_url).gsub(/\.box$/, '')
|
83
144
|
end
|
84
145
|
|
85
|
-
unless
|
146
|
+
unless box
|
86
147
|
raise ArgumentError, "#{self.class} must be configured with a box or box_url."
|
87
148
|
end
|
88
149
|
end
|
89
150
|
|
90
151
|
#
|
91
|
-
# Provision with vagrant. Expects a
|
152
|
+
# Provision with vagrant. Expects a set of IP addresses used as its
|
92
153
|
# arguments.
|
93
154
|
#
|
94
|
-
# During provisioning, the startup method is expected to get a
|
95
|
-
# addresses to configure vagrant's boxes with as a part of a
|
96
|
-
# network. If the number of servers and the number of IP
|
97
|
-
# are not equal, provisioning will fail.
|
155
|
+
# During provisioning, the startup method is expected to get a set of IP
|
156
|
+
# addresses via :ips to configure vagrant's boxes with as a part of a
|
157
|
+
# host-only network. If the number of servers and the number of IP
|
158
|
+
# addresses received are not equal, provisioning will fail.
|
98
159
|
#
|
99
|
-
def startup(
|
100
|
-
ips = args
|
160
|
+
def startup(args={})
|
161
|
+
ips = args[:ips]
|
101
162
|
|
102
|
-
if ips.count !=
|
163
|
+
if ips.count != number_of_servers
|
103
164
|
raise "The number of requested IP addresses does not match the number of requested servers"
|
104
165
|
end
|
105
166
|
|
106
167
|
@prison = ::Vagrant::Prison.new(Dir.mktmpdir, false)
|
107
168
|
|
108
|
-
@prison.name =
|
169
|
+
@prison.name = furnish_group_name
|
109
170
|
|
110
171
|
@prison.configure do |config|
|
111
|
-
config.vm.box_url =
|
112
|
-
config.vm.box =
|
172
|
+
config.vm.box_url = box_url
|
173
|
+
config.vm.box = box
|
113
174
|
|
114
|
-
if
|
115
|
-
|
175
|
+
if customizations
|
176
|
+
customizations.each { |c| config.vm.customize c }
|
116
177
|
end
|
117
178
|
|
118
179
|
ips.each_with_index do |ip, x|
|
119
|
-
config.vm.define "#{
|
180
|
+
config.vm.define "#{furnish_group_name}-#{x}" do |this_config|
|
120
181
|
this_config.vm.network :hostonly, ip
|
121
182
|
end
|
122
183
|
end
|
123
184
|
end
|
124
185
|
|
125
186
|
@prison.construct(:ui_class => Furnish::Vagrant::UI)
|
126
|
-
@db[
|
187
|
+
@db[furnish_group_name] = @prison # eager save in case start has issues
|
127
188
|
|
128
|
-
return @prison.start ?
|
189
|
+
return @prison.start ? { } : false
|
129
190
|
ensure
|
130
|
-
@db[
|
191
|
+
@db[furnish_group_name] = @prison
|
131
192
|
end
|
132
193
|
|
133
194
|
#
|
134
195
|
# Deprovision with Vagrant.
|
135
196
|
#
|
136
|
-
def shutdown
|
137
|
-
@prison ||= @db[
|
197
|
+
def shutdown(args={})
|
198
|
+
@prison ||= @db[furnish_group_name]
|
138
199
|
|
139
200
|
if @prison
|
140
201
|
@prison.configure_environment(:ui_class => Furnish::Vagrant::UI)
|
141
202
|
@prison.cleanup
|
142
203
|
end
|
143
204
|
|
144
|
-
@db.delete(
|
145
|
-
return
|
205
|
+
@db.delete(furnish_group_name)
|
206
|
+
return { }
|
146
207
|
end
|
147
208
|
|
148
209
|
#
|
@@ -150,7 +211,7 @@ module Furnish # :nodoc:
|
|
150
211
|
# prison directory used for this provision.
|
151
212
|
#
|
152
213
|
def report
|
153
|
-
["#{
|
214
|
+
["#{number_of_servers} servers", "prison dir: #{@prison.dir || "unprovisioned"}"]
|
154
215
|
end
|
155
216
|
end
|
156
217
|
end
|
data/test/test_vagrant.rb
CHANGED
@@ -16,6 +16,7 @@ class TestVagrant < Furnish::TestCase
|
|
16
16
|
Furnish::Vagrant::UI.debug_level = 0
|
17
17
|
|
18
18
|
@sched = Furnish::Scheduler.new
|
19
|
+
@klass = Furnish::Provisioner::Vagrant
|
19
20
|
sched.serial = true
|
20
21
|
setup_ip
|
21
22
|
end
|
@@ -58,10 +59,14 @@ class TestVagrant < Furnish::TestCase
|
|
58
59
|
@ip.allocate("10.10.10.1")
|
59
60
|
end
|
60
61
|
|
62
|
+
def make_auto_ip(num, ip=@ip)
|
63
|
+
Furnish::Provisioner::AutoIP.new(:ip => ip, :number_of_addresses => num)
|
64
|
+
end
|
65
|
+
|
61
66
|
def make_provisioner(num=1)
|
62
67
|
[
|
63
|
-
|
64
|
-
|
68
|
+
make_auto_ip(num),
|
69
|
+
@klass.new(
|
65
70
|
:box_url => BOX_URL,
|
66
71
|
:number_of_servers => num
|
67
72
|
)
|
@@ -70,35 +75,86 @@ class TestVagrant < Furnish::TestCase
|
|
70
75
|
|
71
76
|
def test_constructor
|
72
77
|
assert_raises(ArgumentError, "arguments must be a hash") do
|
73
|
-
|
78
|
+
@klass.new(nil)
|
74
79
|
end
|
75
80
|
|
76
81
|
assert_raises(ArgumentError, "Furnish::Provisioner::Vagrant must be configured with a box or box_url") do
|
77
|
-
|
82
|
+
@klass.new({})
|
78
83
|
end
|
79
84
|
|
80
|
-
assert(
|
81
|
-
assert(
|
85
|
+
assert(@klass.new(:box_url => BOX_URL))
|
86
|
+
assert(@klass.new(:box => "precise64"))
|
82
87
|
|
83
88
|
assert_raises(ArgumentError, "customizations must be an array of customizations, or array of array of multiple customizations.") do
|
84
|
-
|
89
|
+
@klass.new(:box_url => BOX_URL, :customizations => 1)
|
85
90
|
end
|
86
91
|
|
87
92
|
assert(
|
88
|
-
|
93
|
+
@klass.new(
|
89
94
|
:box_url => BOX_URL,
|
90
95
|
:customizations => %w[one two three]
|
91
96
|
)
|
92
97
|
)
|
93
98
|
|
94
99
|
assert(
|
95
|
-
|
100
|
+
@klass.new(
|
96
101
|
:box_url => BOX_URL,
|
97
102
|
:customizations => [%w[one two three], %w[four five six]]
|
98
103
|
)
|
99
104
|
)
|
100
105
|
end
|
101
106
|
|
107
|
+
def test_properties
|
108
|
+
assert_equal(
|
109
|
+
{
|
110
|
+
:box_url => {
|
111
|
+
:description => "Vagrant's box_url argument",
|
112
|
+
:type => String
|
113
|
+
},
|
114
|
+
|
115
|
+
:box => {
|
116
|
+
:description => "Vagrant's box argument. Will be extracted from box_url if unset.",
|
117
|
+
:type => String
|
118
|
+
},
|
119
|
+
|
120
|
+
:number_of_servers => {
|
121
|
+
:description => "The number of boxes to bring up for this provision",
|
122
|
+
:type => Integer
|
123
|
+
},
|
124
|
+
|
125
|
+
:db_name => {
|
126
|
+
:description => "'default' by default, a tag namespacing this set of provisions",
|
127
|
+
:type => String
|
128
|
+
},
|
129
|
+
|
130
|
+
:customizations => {
|
131
|
+
:description => "an array of arguments that would go to vm.customize. If an array of arrays are supplied, vm.customize is called for each inner array with it as the argument.",
|
132
|
+
:type => Array
|
133
|
+
}
|
134
|
+
},
|
135
|
+
@klass.furnish_properties
|
136
|
+
)
|
137
|
+
end
|
138
|
+
|
139
|
+
def test_protocol
|
140
|
+
assert_equal(
|
141
|
+
{
|
142
|
+
:ips => {
|
143
|
+
:description => "A set of IP addresses to use for the host-only networks.",
|
144
|
+
:type => Set
|
145
|
+
}
|
146
|
+
},
|
147
|
+
@klass.startup_protocol[:requires]
|
148
|
+
)
|
149
|
+
|
150
|
+
assert_empty(@klass.startup_protocol[:accepts])
|
151
|
+
assert_empty(@klass.startup_protocol[:yields])
|
152
|
+
assert_empty(@klass.shutdown_protocol[:accepts])
|
153
|
+
assert_empty(@klass.shutdown_protocol[:yields])
|
154
|
+
assert_empty(@klass.shutdown_protocol[:requires])
|
155
|
+
assert(@klass.shutdown_protocol[:accepts_from_any])
|
156
|
+
end
|
157
|
+
|
102
158
|
def test_basic_provision
|
103
159
|
sched.schedule_provision('test1', make_provisioner, [])
|
104
160
|
sched.run
|
@@ -118,22 +174,34 @@ class TestVagrant < Furnish::TestCase
|
|
118
174
|
assert_equal(3, @ip.group_ips('test2').count, '3 machines and IPs were allocated for test2 group')
|
119
175
|
|
120
176
|
assert_match(
|
121
|
-
/^1 servers
|
177
|
+
/^1 servers/,
|
122
178
|
sched.vm.groups['test1'].last.report.first,
|
123
179
|
"report reflects number of servers provisioned for group test1"
|
124
180
|
)
|
125
181
|
|
126
182
|
assert_match(
|
127
|
-
/^
|
183
|
+
/^prison dir:/,
|
184
|
+
sched.vm.groups['test1'].last.report.last,
|
185
|
+
"second report reflects prison dir for group test1"
|
186
|
+
)
|
187
|
+
|
188
|
+
assert_match(
|
189
|
+
/^3 servers/,
|
128
190
|
sched.vm.groups['test2'].last.report.first,
|
129
191
|
"report reflects number of servers provisioned for group test2"
|
130
192
|
)
|
193
|
+
|
194
|
+
assert_match(
|
195
|
+
/^prison dir:/,
|
196
|
+
sched.vm.groups['test2'].last.report.last,
|
197
|
+
"second report reflects prison dir for group test2"
|
198
|
+
)
|
131
199
|
end
|
132
200
|
|
133
201
|
def test_invalid_provision
|
134
202
|
mismatched_num = [
|
135
|
-
|
136
|
-
|
203
|
+
make_auto_ip(1),
|
204
|
+
@klass.new(
|
137
205
|
:box_url => BOX_URL,
|
138
206
|
:number_of_servers => 3
|
139
207
|
)
|
@@ -149,8 +217,8 @@ class TestVagrant < Furnish::TestCase
|
|
149
217
|
|
150
218
|
def test_customized_provision
|
151
219
|
customized = [
|
152
|
-
|
153
|
-
|
220
|
+
make_auto_ip(1),
|
221
|
+
@klass.new(
|
154
222
|
:box_url => BOX_URL,
|
155
223
|
:number_of_servers => 1,
|
156
224
|
:customizations => [["modifyvm", :id, "--memory", 1024]]
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: furnish-vagrant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Erik Hollensbe
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-04-10 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: vagrant-prison
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,39 +27,34 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: furnish
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: 0.0
|
33
|
+
version: 0.1.0
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.0
|
40
|
+
version: 0.1.0
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: furnish-ip
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0.0
|
47
|
+
version: 0.1.0
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.0
|
54
|
+
version: 0.1.0
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: minitest
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: guard-minitest
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ! '>='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ! '>='
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,23 +97,20 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: guard-rake
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ~>
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
103
|
+
version: 0.0.8
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ~>
|
124
109
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
110
|
+
version: 0.0.8
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: rdoc
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - ~>
|
132
116
|
- !ruby/object:Gem::Version
|
@@ -134,7 +118,6 @@ dependencies:
|
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
122
|
- - ~>
|
140
123
|
- !ruby/object:Gem::Version
|
@@ -142,7 +125,6 @@ dependencies:
|
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: rb-fsevent
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
129
|
- - ! '>='
|
148
130
|
- !ruby/object:Gem::Version
|
@@ -150,7 +132,6 @@ dependencies:
|
|
150
132
|
type: :development
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
136
|
- - ! '>='
|
156
137
|
- !ruby/object:Gem::Version
|
@@ -158,7 +139,6 @@ dependencies:
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: simplecov
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
143
|
- - ! '>='
|
164
144
|
- !ruby/object:Gem::Version
|
@@ -166,7 +146,6 @@ dependencies:
|
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
150
|
- - ! '>='
|
172
151
|
- !ruby/object:Gem::Version
|
@@ -174,7 +153,6 @@ dependencies:
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: net-ssh
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
157
|
- - ! '>='
|
180
158
|
- !ruby/object:Gem::Version
|
@@ -182,7 +160,6 @@ dependencies:
|
|
182
160
|
type: :development
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
164
|
- - ! '>='
|
188
165
|
- !ruby/object:Gem::Version
|
@@ -209,33 +186,26 @@ files:
|
|
209
186
|
- test/test_vagrant.rb
|
210
187
|
homepage: https://github.com/chef-workflow/furnish-vagrant
|
211
188
|
licenses: []
|
189
|
+
metadata: {}
|
212
190
|
post_install_message:
|
213
191
|
rdoc_options: []
|
214
192
|
require_paths:
|
215
193
|
- lib
|
216
194
|
required_ruby_version: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
195
|
requirements:
|
219
196
|
- - ! '>='
|
220
197
|
- !ruby/object:Gem::Version
|
221
198
|
version: '0'
|
222
|
-
segments:
|
223
|
-
- 0
|
224
|
-
hash: 1570501891906116783
|
225
199
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
226
|
-
none: false
|
227
200
|
requirements:
|
228
201
|
- - ! '>='
|
229
202
|
- !ruby/object:Gem::Version
|
230
203
|
version: '0'
|
231
|
-
segments:
|
232
|
-
- 0
|
233
|
-
hash: 1570501891906116783
|
234
204
|
requirements: []
|
235
205
|
rubyforge_project:
|
236
|
-
rubygems_version:
|
206
|
+
rubygems_version: 2.0.3
|
237
207
|
signing_key:
|
238
|
-
specification_version:
|
208
|
+
specification_version: 4
|
239
209
|
summary: Furnish -> Vagrant 1.0.x bridge
|
240
210
|
test_files:
|
241
211
|
- test/helper.rb
|