furnish-vagrant 0.0.3 → 0.1.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/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
|