kitchen-vagrant 0.19.0 → 0.20.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 +4 -4
- data/.travis.yml +0 -1
- data/CHANGELOG.md +34 -0
- data/README.md +59 -18
- data/Rakefile +9 -0
- data/kitchen-vagrant.gemspec +2 -1
- data/lib/kitchen/driver/vagrant.rb +17 -15
- data/lib/kitchen/driver/vagrant_version.rb +1 -1
- data/spec/kitchen/driver/vagrant_spec.rb +341 -23
- data/templates/Vagrantfile.erb +26 -2
- metadata +20 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f0dc4619e60934c3bee08b3a56a3f443d1507e81
|
|
4
|
+
data.tar.gz: 1b12e75c49a66943965fbfcffef1dd57f91d84fd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4bfd34c4956cda9d30fa4537e63b21a0b42e2133cae2e8bae9abe43da8627df4c0144a37734dd8b38daeed871c1ecb2115d0bb49a3aa91ad2dc72ac948c1e6f1
|
|
7
|
+
data.tar.gz: c306ce6aafdcfd0f303d0a681da0857c07f6e847b09ba0df643faee89763098cc97ad386117c7df1bc760154a92dbbe9880511eb1678cbd0023a81ddc3c817cc
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,37 @@
|
|
|
1
|
+
## [0.20.0](https://github.com/test-kitchen/kitchen-vagrant/tree/v0.20.0) (2016-04-07)
|
|
2
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-vagrant/compare/v0.19.0...v0.20.0)
|
|
3
|
+
|
|
4
|
+
**Implemented enhancements:**
|
|
5
|
+
|
|
6
|
+
- Make Vagrant binary a parameter [\#218](https://github.com/test-kitchen/kitchen-vagrant/issues/218)
|
|
7
|
+
- WARN: Child with name 'dna.json' found in multiple directories: /tmp/kitchen/dna.json and /tmp/kitchen/dna.json [\#198](https://github.com/test-kitchen/kitchen-vagrant/issues/198)
|
|
8
|
+
- Default bento boxes should be pulled from Atlas [\#193](https://github.com/test-kitchen/kitchen-vagrant/issues/193)
|
|
9
|
+
- Easily override instance name [\#169](https://github.com/test-kitchen/kitchen-vagrant/issues/169)
|
|
10
|
+
- Easily override instance name [\#169](https://github.com/test-kitchen/kitchen-vagrant/issues/169)
|
|
11
|
+
- Make vagrant binary a parameter [\#219](https://github.com/test-kitchen/kitchen-vagrant/pull/219) ([bheuvel](https://github.com/bheuvel))
|
|
12
|
+
- HyperV acts as OpenStack, CloudStack [\#217](https://github.com/test-kitchen/kitchen-vagrant/pull/217) ([bheuvel](https://github.com/bheuvel))
|
|
13
|
+
- Add support for hyperv customize [\#212](https://github.com/test-kitchen/kitchen-vagrant/pull/212) ([giseongeom](https://github.com/giseongeom))
|
|
14
|
+
- Add option for box\_download\_insecure to be passed to Vagrantfile [\#208](https://github.com/test-kitchen/kitchen-vagrant/pull/208) ([drrk](https://github.com/drrk))
|
|
15
|
+
- fix libvirt customize [\#204](https://github.com/test-kitchen/kitchen-vagrant/pull/204) ([akissa](https://github.com/akissa))
|
|
16
|
+
- Add linked\_clone config option [\#203](https://github.com/test-kitchen/kitchen-vagrant/pull/203) ([bborysenko](https://github.com/bborysenko))
|
|
17
|
+
- Use Bento's Atlas boxes by default if detected [\#195](https://github.com/test-kitchen/kitchen-vagrant/pull/195) ([andytson](https://github.com/andytson))
|
|
18
|
+
- Parallels: Use "memory" and "cpus" customization shortcuts [\#194](https://github.com/test-kitchen/kitchen-vagrant/pull/194) ([legal90](https://github.com/legal90))
|
|
19
|
+
- Add support for boot\_timeout driver setting [\#184](https://github.com/test-kitchen/kitchen-vagrant/pull/184) ([gh2k](https://github.com/gh2k))
|
|
20
|
+
- Fixes box check update bug [\#182](https://github.com/test-kitchen/kitchen-vagrant/pull/182) ([roderickrandolph](https://github.com/roderickrandolph))
|
|
21
|
+
- Add cloudstack support [\#167](https://github.com/test-kitchen/kitchen-vagrant/pull/167) ([miguelaferreira](https://github.com/miguelaferreira))
|
|
22
|
+
|
|
23
|
+
**Fixed bugs:**
|
|
24
|
+
|
|
25
|
+
- setting box\_check\_update to false does not disable box update checking [\#181](https://github.com/test-kitchen/kitchen-vagrant/issues/181)
|
|
26
|
+
|
|
27
|
+
**Merged pull requests:**
|
|
28
|
+
|
|
29
|
+
- Updating readme for Parallels [\#221](https://github.com/test-kitchen/kitchen-vagrant/pull/221) ([cheeseplus](https://github.com/cheeseplus))
|
|
30
|
+
- Adding changelog generator [\#220](https://github.com/test-kitchen/kitchen-vagrant/pull/220) ([cheeseplus](https://github.com/cheeseplus))
|
|
31
|
+
- Updating Readme to reflect changes to default boxes [\#215](https://github.com/test-kitchen/kitchen-vagrant/pull/215) ([cheeseplus](https://github.com/cheeseplus))
|
|
32
|
+
- Ruby 1.9.3 is no longer supported [\#209](https://github.com/test-kitchen/kitchen-vagrant/pull/209) ([drrk](https://github.com/drrk))
|
|
33
|
+
|
|
34
|
+
|
|
1
35
|
## 0.19.0 / 2015-09-18
|
|
2
36
|
|
|
3
37
|
### Bug fixes
|
data/README.md
CHANGED
|
@@ -33,7 +33,7 @@ If you are creating Windows VMs over a WinRM Transport, then the
|
|
|
33
33
|
[vagrant-winrm][vagrant_winrm] Vagrant plugin must be installed. As a
|
|
34
34
|
consequence, the minimum version of Vagrant required is 1.6 or higher.
|
|
35
35
|
|
|
36
|
-
### <a name="dependencies-virtualization"></a> Virtualbox
|
|
36
|
+
### <a name="dependencies-virtualization"></a> Virtualbox, VMware Fusion/Workstation, and/or Parallels
|
|
37
37
|
|
|
38
38
|
Currently this driver supports VirtualBox and VMware Fusion/Workstation.
|
|
39
39
|
Virtualbox is free and is the default provider for Vagrant.
|
|
@@ -49,6 +49,13 @@ software from VMware and then must also purchase the Vagrant VMware plugin.
|
|
|
49
49
|
|
|
50
50
|
[VMware Workstation][workstation_dl]
|
|
51
51
|
|
|
52
|
+
If you would like to use Parallels you must also purchase the software but the
|
|
53
|
+
`vagrant-parallels` plugin is freely available.
|
|
54
|
+
|
|
55
|
+
[Parllels][parallels_dl]
|
|
56
|
+
|
|
57
|
+
[Vagrant Parallels Provider][vagrant_parallels]
|
|
58
|
+
|
|
52
59
|
|
|
53
60
|
## <a name="installation"></a> Installation and Setup
|
|
54
61
|
|
|
@@ -56,21 +63,24 @@ Please read the [Driver usage][driver_usage] page for more details.
|
|
|
56
63
|
|
|
57
64
|
## <a name="default-config"></a> Default Configuration
|
|
58
65
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
66
|
+
For a select number of platforms and a select number of hypervisors (VirtualBox, VMware,
|
|
67
|
+
and Parallels) default boxes are published under the [Bento organization][bento_org]
|
|
68
|
+
on [Atlas][atlas] such as:
|
|
62
69
|
|
|
63
70
|
```yaml
|
|
64
71
|
---
|
|
65
72
|
platforms:
|
|
66
|
-
- name: ubuntu-10.04
|
|
67
73
|
- name: ubuntu-12.04
|
|
68
74
|
- name: ubuntu-14.04
|
|
69
|
-
- name: ubuntu-13.04
|
|
70
75
|
- name: centos-5.11
|
|
71
|
-
- name: centos-6.
|
|
72
|
-
- name:
|
|
73
|
-
- name:
|
|
76
|
+
- name: centos-6.7
|
|
77
|
+
- name: centos-7.2
|
|
78
|
+
- name: debian-7.9
|
|
79
|
+
- name: debian-8.3
|
|
80
|
+
- name: fedora-22
|
|
81
|
+
- name: fedora-23
|
|
82
|
+
- name: freebsd-9.3
|
|
83
|
+
- name: freebsd-10.2
|
|
74
84
|
```
|
|
75
85
|
|
|
76
86
|
This will effectively generate a configuration similar to:
|
|
@@ -78,18 +88,21 @@ This will effectively generate a configuration similar to:
|
|
|
78
88
|
```yaml
|
|
79
89
|
---
|
|
80
90
|
platforms:
|
|
81
|
-
- name: ubuntu-10.04
|
|
82
|
-
driver:
|
|
83
|
-
box: opscode-ubuntu-10.04
|
|
84
|
-
box_url: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-10.04_chef-provisionerless.box
|
|
85
91
|
- name: ubuntu-12.04
|
|
86
92
|
driver:
|
|
87
|
-
box:
|
|
88
|
-
box_url: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-12.04_chef-provisionerless.box
|
|
93
|
+
box: bento/ubuntu-12.04
|
|
89
94
|
- name: ubuntu-14.04
|
|
90
95
|
driver:
|
|
91
|
-
box:
|
|
92
|
-
|
|
96
|
+
box: bento/ubuntu-14.04
|
|
97
|
+
- name: centos-5.11
|
|
98
|
+
driver:
|
|
99
|
+
box: bento/centos-5.11
|
|
100
|
+
- name: centos-6.7
|
|
101
|
+
driver:
|
|
102
|
+
box: bento/centos-6.7
|
|
103
|
+
- name: centos-7.2
|
|
104
|
+
driver:
|
|
105
|
+
box: bento/centos-7.2
|
|
93
106
|
# ...
|
|
94
107
|
```
|
|
95
108
|
|
|
@@ -137,7 +150,7 @@ default `box` value of `"opscode-ubuntu-14.04"`. Alternatively, a box called
|
|
|
137
150
|
|
|
138
151
|
### <a name="config-box-check-update"></a> box\_check\_update
|
|
139
152
|
|
|
140
|
-
Whether to check for box updates (
|
|
153
|
+
Whether to check for box updates (enabled by default).
|
|
141
154
|
|
|
142
155
|
### <a name="config-box-url"></a> box\_url
|
|
143
156
|
|
|
@@ -251,6 +264,30 @@ end
|
|
|
251
264
|
|
|
252
265
|
For more info about GUI vs. Headless mode please see [vagrant configuration docs][vagrant_config_vbox]
|
|
253
266
|
|
|
267
|
+
### <a name="config-linked_clone"></a> linked_clone
|
|
268
|
+
|
|
269
|
+
Allows to use linked clones to import boxes for VirtualBox, VMware and Parallels Desktop. Default is **nil**.
|
|
270
|
+
|
|
271
|
+
```yaml
|
|
272
|
+
---
|
|
273
|
+
platforms:
|
|
274
|
+
- name: ubuntu-14.04
|
|
275
|
+
driver:
|
|
276
|
+
linked_clone: true
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
will generate a Vagrantfile configuration similar to:
|
|
280
|
+
|
|
281
|
+
```ruby
|
|
282
|
+
Vagrant.configure("2") do |config|
|
|
283
|
+
# ...
|
|
284
|
+
|
|
285
|
+
c.vm.provider :virtualbox do |p|
|
|
286
|
+
p.linked_clone = true
|
|
287
|
+
end
|
|
288
|
+
end
|
|
289
|
+
```
|
|
290
|
+
|
|
254
291
|
### <a name="config-network"></a> network
|
|
255
292
|
|
|
256
293
|
An **Array** of network customizations for the virtual machine. Each Array
|
|
@@ -452,3 +489,7 @@ Apache 2.0 (see [LICENSE][license])
|
|
|
452
489
|
[vmware_plugin]: http://www.vagrantup.com/vmware
|
|
453
490
|
[fusion_dl]: http://www.vmware.com/products/fusion/overview.html
|
|
454
491
|
[workstation_dl]: http://www.vmware.com/products/workstation/
|
|
492
|
+
[bento_org]: https://atlas.hashicorp.com/bento
|
|
493
|
+
[atlas]: https://atlas.hashicorp.com/
|
|
494
|
+
[parallels_dl]: http://www.parallels.com/products/desktop/download/
|
|
495
|
+
[vagrant_parallels]: https://github.com/Parallels/vagrant-parallels
|
data/Rakefile
CHANGED
|
@@ -35,3 +35,12 @@ desc "Run all quality tasks"
|
|
|
35
35
|
task :quality => [:cane, :style, :stats]
|
|
36
36
|
|
|
37
37
|
task :default => [:test, :quality]
|
|
38
|
+
|
|
39
|
+
require "github_changelog_generator/task"
|
|
40
|
+
|
|
41
|
+
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
|
42
|
+
config.future_release = Kitchen::Driver::VAGRANT_VERSION
|
|
43
|
+
config.enhancement_labels = "enhancement,Enhancement,New Feature,Feature,Improvement".split(",")
|
|
44
|
+
config.bug_labels = "bug,Bug".split(",")
|
|
45
|
+
config.exclude_labels = %w[Duplicate Question Discussion No_Changelog]
|
|
46
|
+
end
|
data/kitchen-vagrant.gemspec
CHANGED
|
@@ -25,10 +25,11 @@ Gem::Specification.new do |gem|
|
|
|
25
25
|
gem.add_development_dependency "rake"
|
|
26
26
|
gem.add_development_dependency "rspec", "~> 3.2"
|
|
27
27
|
gem.add_development_dependency "simplecov", "~> 0.9"
|
|
28
|
+
gem.add_development_dependency "github_changelog_generator", "1.11.3"
|
|
28
29
|
|
|
29
30
|
# style and complexity libraries are tightly version pinned as newer releases
|
|
30
31
|
# may introduce new and undesireable style choices which would be immediately
|
|
31
32
|
# enforced in CI
|
|
32
|
-
gem.add_development_dependency "finstyle", "1.
|
|
33
|
+
gem.add_development_dependency "finstyle", "1.5.0"
|
|
33
34
|
gem.add_development_dependency "cane", "2.6.2"
|
|
34
35
|
end
|
|
@@ -43,14 +43,20 @@ module Kitchen
|
|
|
43
43
|
|
|
44
44
|
default_config :box_check_update, nil
|
|
45
45
|
|
|
46
|
+
default_config :box_download_insecure, nil
|
|
47
|
+
|
|
46
48
|
default_config(:box_url) { |driver| driver.default_box_url }
|
|
47
49
|
|
|
48
50
|
default_config :box_version, nil
|
|
49
51
|
|
|
52
|
+
default_config :boot_timeout, nil
|
|
53
|
+
|
|
50
54
|
default_config :customize, {}
|
|
51
55
|
|
|
52
56
|
default_config :gui, nil
|
|
53
57
|
|
|
58
|
+
default_config :linked_clone, nil
|
|
59
|
+
|
|
54
60
|
default_config :network, []
|
|
55
61
|
|
|
56
62
|
default_config :pre_create_command, nil
|
|
@@ -65,6 +71,8 @@ module Kitchen
|
|
|
65
71
|
|
|
66
72
|
default_config :synced_folders, []
|
|
67
73
|
|
|
74
|
+
default_config :vagrant_binary, "vagrant"
|
|
75
|
+
|
|
68
76
|
default_config :vagrantfile_erb,
|
|
69
77
|
File.join(File.dirname(__FILE__), "../../../templates/Vagrantfile.erb")
|
|
70
78
|
expand_path_for :vagrantfile_erb
|
|
@@ -94,7 +102,7 @@ module Kitchen
|
|
|
94
102
|
# @return [String,nil] the Vagrant box for this Instance
|
|
95
103
|
def default_box
|
|
96
104
|
if bento_box?(instance.platform.name)
|
|
97
|
-
"
|
|
105
|
+
"bento/#{instance.platform.name}"
|
|
98
106
|
else
|
|
99
107
|
instance.platform.name
|
|
100
108
|
end
|
|
@@ -102,15 +110,7 @@ module Kitchen
|
|
|
102
110
|
|
|
103
111
|
# @return [String,nil] the Vagrant box URL for this Instance
|
|
104
112
|
def default_box_url
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
provider = config[:provider]
|
|
108
|
-
provider = "vmware" if config[:provider] =~ /^vmware_(.+)$/
|
|
109
|
-
|
|
110
|
-
if %w[virtualbox vmware].include?(provider)
|
|
111
|
-
"https://opscode-vm-bento.s3.amazonaws.com/vagrant/#{provider}/" \
|
|
112
|
-
"opscode_#{instance.platform.name}_chef-provisionerless.box"
|
|
113
|
-
end
|
|
113
|
+
nil
|
|
114
114
|
end
|
|
115
115
|
|
|
116
116
|
# Destroys an instance.
|
|
@@ -123,7 +123,7 @@ module Kitchen
|
|
|
123
123
|
create_vagrantfile
|
|
124
124
|
@vagrantfile_created = false
|
|
125
125
|
instance.transport.connection(state).close
|
|
126
|
-
run("
|
|
126
|
+
run("#{config[:vagrant_binary]} destroy -f")
|
|
127
127
|
FileUtils.rm_rf(vagrant_root)
|
|
128
128
|
info("Vagrant instance #{instance.to_str} destroyed.")
|
|
129
129
|
state.delete(:hostname)
|
|
@@ -367,7 +367,7 @@ module Kitchen
|
|
|
367
367
|
#
|
|
368
368
|
# @api private
|
|
369
369
|
def run_vagrant_up
|
|
370
|
-
cmd = "
|
|
370
|
+
cmd = "#{config[:vagrant_binary]} up"
|
|
371
371
|
cmd += " --no-provision" unless config[:provision]
|
|
372
372
|
cmd += " --provider #{config[:provider]}" if config[:provider]
|
|
373
373
|
run(cmd)
|
|
@@ -405,7 +405,8 @@ module Kitchen
|
|
|
405
405
|
# invocation
|
|
406
406
|
# @api private
|
|
407
407
|
def vagrant_config(type)
|
|
408
|
-
lines = run_silently("
|
|
408
|
+
lines = run_silently("#{config[:vagrant_binary]} #{type}-config").
|
|
409
|
+
split("\n").map do |line|
|
|
409
410
|
tokens = line.strip.partition(" ")
|
|
410
411
|
[tokens.first, tokens.last.gsub(/"/, "")]
|
|
411
412
|
end
|
|
@@ -417,7 +418,8 @@ module Kitchen
|
|
|
417
418
|
# @api private
|
|
418
419
|
def vagrant_version
|
|
419
420
|
self.class.vagrant_version ||= run_silently(
|
|
420
|
-
"
|
|
421
|
+
"#{config[:vagrant_binary]} --version", :cwd => Dir.pwd).
|
|
422
|
+
chomp.split(" ").last
|
|
421
423
|
rescue Errno::ENOENT
|
|
422
424
|
raise UserError, "Vagrant #{MIN_VER} or higher is not installed." \
|
|
423
425
|
" Please download a package from #{WEBSITE}."
|
|
@@ -450,7 +452,7 @@ module Kitchen
|
|
|
450
452
|
return true if self.class.winrm_plugin_passed
|
|
451
453
|
|
|
452
454
|
self.class.winrm_plugin_passed = run_silently(
|
|
453
|
-
"
|
|
455
|
+
"#{config[:vagrant_binary]} plugin list", :cwd => Dir.pwd).
|
|
454
456
|
split("\n").find { |line| line =~ /^vagrant-winrm\s+/ }
|
|
455
457
|
end
|
|
456
458
|
end
|
|
@@ -154,7 +154,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
154
154
|
before { allow(platform).to receive(:name) { "#{name}-99.04" } }
|
|
155
155
|
|
|
156
156
|
it "sets :box based on the platform name by default" do
|
|
157
|
-
expect(driver[:box]).to eq("
|
|
157
|
+
expect(driver[:box]).to eq("bento/#{name}-99.04")
|
|
158
158
|
end
|
|
159
159
|
|
|
160
160
|
it "sets :box to a custom value" do
|
|
@@ -163,25 +163,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
163
163
|
expect(driver[:box]).to eq("booya")
|
|
164
164
|
end
|
|
165
165
|
|
|
166
|
-
it "sets :box_url to
|
|
167
|
-
config[:provider] = "virtualbox"
|
|
168
|
-
|
|
169
|
-
expect(driver[:box_url]).to eq(
|
|
170
|
-
"https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/" \
|
|
171
|
-
"opscode_#{name}-99.04_chef-provisionerless.box"
|
|
172
|
-
)
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
it "sets :box_url to a bento box URL for a vmware-based provider" do
|
|
176
|
-
config[:provider] = "vmware_awesometown"
|
|
177
|
-
|
|
178
|
-
expect(driver[:box_url]).to eq(
|
|
179
|
-
"https://opscode-vm-bento.s3.amazonaws.com/vagrant/vmware/" \
|
|
180
|
-
"opscode_#{name}-99.04_chef-provisionerless.box"
|
|
181
|
-
)
|
|
182
|
-
end
|
|
183
|
-
|
|
184
|
-
it "sets :box_url to nil for any other provider" do
|
|
166
|
+
it "sets :box_url to nil" do
|
|
185
167
|
config[:provider] = "the-next-coolness"
|
|
186
168
|
|
|
187
169
|
expect(driver[:box_url]).to eq(nil)
|
|
@@ -218,6 +200,16 @@ describe Kitchen::Driver::Vagrant do
|
|
|
218
200
|
expect(driver[:box_check_update]).to eq(true)
|
|
219
201
|
end
|
|
220
202
|
|
|
203
|
+
it "sets :box_download_insecure to nil by default" do
|
|
204
|
+
expect(driver[:box_download_insecure]).to eq(nil)
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
it "sets :box_download_insecure to a custom value" do
|
|
208
|
+
config[:box_download_insecure] = true
|
|
209
|
+
|
|
210
|
+
expect(driver[:box_download_insecure]).to eq(true)
|
|
211
|
+
end
|
|
212
|
+
|
|
221
213
|
it "sets :box_version to nil by default" do
|
|
222
214
|
expect(driver[:box_version]).to eq(nil)
|
|
223
215
|
end
|
|
@@ -228,6 +220,16 @@ describe Kitchen::Driver::Vagrant do
|
|
|
228
220
|
expect(driver[:box_version]).to eq("1.2.3")
|
|
229
221
|
end
|
|
230
222
|
|
|
223
|
+
it "sets :boot_timeout to nil by default" do
|
|
224
|
+
expect(driver[:boot_timeout]).to eq(nil)
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
it "sets :boot_timeout to a custom value" do
|
|
228
|
+
config[:boot_timeout] = 600
|
|
229
|
+
|
|
230
|
+
expect(driver[:boot_timeout]).to eq(600)
|
|
231
|
+
end
|
|
232
|
+
|
|
231
233
|
it "sets :customize to an empty hash by default" do
|
|
232
234
|
expect(driver[:customize]).to eq({})
|
|
233
235
|
end
|
|
@@ -242,6 +244,10 @@ describe Kitchen::Driver::Vagrant do
|
|
|
242
244
|
expect(driver[:gui]).to eq(nil)
|
|
243
245
|
end
|
|
244
246
|
|
|
247
|
+
it "sets :linked_clone to nil by default" do
|
|
248
|
+
expect(driver[:linked_clone]).to eq(nil)
|
|
249
|
+
end
|
|
250
|
+
|
|
245
251
|
it "sets :network to an empty array by default" do
|
|
246
252
|
expect(driver[:network]).to eq([])
|
|
247
253
|
end
|
|
@@ -354,6 +360,15 @@ describe Kitchen::Driver::Vagrant do
|
|
|
354
360
|
])
|
|
355
361
|
end
|
|
356
362
|
|
|
363
|
+
it "sets :vagrant_binary to 'vagrant' by default" do
|
|
364
|
+
expect(driver[:vagrant_binary]).to eq("vagrant")
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
it "sets :vagrant_binary to a custom value" do
|
|
368
|
+
config[:vagrant_binary] = "vagrant.cmd"
|
|
369
|
+
expect(driver[:vagrant_binary]).to eq("vagrant.cmd")
|
|
370
|
+
end
|
|
371
|
+
|
|
357
372
|
it "sets :vagrantfile_erb to a default" do
|
|
358
373
|
expect(driver[:vagrantfile_erb]).to match(
|
|
359
374
|
%r{/kitchen-vagrant/templates/Vagrantfile\.erb$}
|
|
@@ -936,6 +951,22 @@ describe Kitchen::Driver::Vagrant do
|
|
|
936
951
|
expect(vagrantfile).to match(regexify(%{c.vm.box_version = "a.b.c"}))
|
|
937
952
|
end
|
|
938
953
|
|
|
954
|
+
it "sets no vm.boot_timeout if missing" do
|
|
955
|
+
config[:boot_timeout] = nil
|
|
956
|
+
cmd
|
|
957
|
+
|
|
958
|
+
expect(vagrantfile).to_not match(regexify(%{c.vm.boot_timeout}, :partial))
|
|
959
|
+
end
|
|
960
|
+
|
|
961
|
+
it "sets no vm.boot_timeout if :boot_timeout is set" do
|
|
962
|
+
config[:boot_timeout] = 600
|
|
963
|
+
cmd
|
|
964
|
+
|
|
965
|
+
expect(vagrantfile).to match(
|
|
966
|
+
regexify(%{c.vm.boot_timeout = 600}, :partial)
|
|
967
|
+
)
|
|
968
|
+
end
|
|
969
|
+
|
|
939
970
|
it "sets no vm.box_check_update if missing" do
|
|
940
971
|
config[:box_check_update] = nil
|
|
941
972
|
cmd
|
|
@@ -945,6 +976,13 @@ describe Kitchen::Driver::Vagrant do
|
|
|
945
976
|
)
|
|
946
977
|
end
|
|
947
978
|
|
|
979
|
+
it "sets vm.box_check_update to false if :box_check_update is false" do
|
|
980
|
+
config[:box_check_update] = false
|
|
981
|
+
cmd
|
|
982
|
+
|
|
983
|
+
expect(vagrantfile).to match(regexify(%{c.vm.box_check_update = "false"}))
|
|
984
|
+
end
|
|
985
|
+
|
|
948
986
|
it "sets vm.box_check_update if :box_check_update is set" do
|
|
949
987
|
config[:box_check_update] = "um"
|
|
950
988
|
cmd
|
|
@@ -952,6 +990,35 @@ describe Kitchen::Driver::Vagrant do
|
|
|
952
990
|
expect(vagrantfile).to match(regexify(%{c.vm.box_check_update = "um"}))
|
|
953
991
|
end
|
|
954
992
|
|
|
993
|
+
it "sets no vm.box_download_insecure if missing" do
|
|
994
|
+
config[:box_download_insecure] = nil
|
|
995
|
+
cmd
|
|
996
|
+
|
|
997
|
+
expect(vagrantfile).to_not match(
|
|
998
|
+
regexify(%{c.vm.box_download_insecure}, :partial)
|
|
999
|
+
)
|
|
1000
|
+
end
|
|
1001
|
+
|
|
1002
|
+
it "sets vm.box_download_insecure to false
|
|
1003
|
+
if :box_download_insecure is false" do
|
|
1004
|
+
|
|
1005
|
+
config[:box_download_insecure] = false
|
|
1006
|
+
cmd
|
|
1007
|
+
|
|
1008
|
+
expect(
|
|
1009
|
+
vagrantfile).to match(regexify(%{c.vm.box_download_insecure = "false"})
|
|
1010
|
+
)
|
|
1011
|
+
end
|
|
1012
|
+
|
|
1013
|
+
it "sets vm.box_download_insecure if :box_download_insecure is set" do
|
|
1014
|
+
config[:box_download_insecure] = "um"
|
|
1015
|
+
cmd
|
|
1016
|
+
|
|
1017
|
+
expect(
|
|
1018
|
+
vagrantfile).to match(regexify(%{c.vm.box_download_insecure = "um"})
|
|
1019
|
+
)
|
|
1020
|
+
end
|
|
1021
|
+
|
|
955
1022
|
it "sets no vm.communicator if missing" do
|
|
956
1023
|
config[:communicator] = nil
|
|
957
1024
|
cmd
|
|
@@ -1128,6 +1195,36 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1128
1195
|
end
|
|
1129
1196
|
RUBY
|
|
1130
1197
|
end
|
|
1198
|
+
|
|
1199
|
+
it "does not set :linked_clone to nil" do
|
|
1200
|
+
config[:linked_clone] = nil
|
|
1201
|
+
cmd
|
|
1202
|
+
|
|
1203
|
+
expect(vagrantfile).to_not match(
|
|
1204
|
+
regexify(%{p.linked_clone = }, :partial))
|
|
1205
|
+
end
|
|
1206
|
+
|
|
1207
|
+
it "sets :linked_clone to false if set" do
|
|
1208
|
+
config[:linked_clone] = false
|
|
1209
|
+
cmd
|
|
1210
|
+
|
|
1211
|
+
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1212
|
+
c.vm.provider :virtualbox do |p|
|
|
1213
|
+
p.linked_clone = false
|
|
1214
|
+
end
|
|
1215
|
+
RUBY
|
|
1216
|
+
end
|
|
1217
|
+
|
|
1218
|
+
it "sets :linked_clone to true if set" do
|
|
1219
|
+
config[:linked_clone] = true
|
|
1220
|
+
cmd
|
|
1221
|
+
|
|
1222
|
+
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1223
|
+
c.vm.provider :virtualbox do |p|
|
|
1224
|
+
p.linked_clone = true
|
|
1225
|
+
end
|
|
1226
|
+
RUBY
|
|
1227
|
+
end
|
|
1131
1228
|
end
|
|
1132
1229
|
|
|
1133
1230
|
context "for parallels provider" do
|
|
@@ -1148,6 +1245,51 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1148
1245
|
end
|
|
1149
1246
|
RUBY
|
|
1150
1247
|
end
|
|
1248
|
+
|
|
1249
|
+
it "adds a short form of :memory and :cpus elements in :customize" do
|
|
1250
|
+
config[:customize] = {
|
|
1251
|
+
:memory => 2048,
|
|
1252
|
+
:cpus => 4
|
|
1253
|
+
}
|
|
1254
|
+
cmd
|
|
1255
|
+
|
|
1256
|
+
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1257
|
+
c.vm.provider :parallels do |p|
|
|
1258
|
+
p.memory = 2048
|
|
1259
|
+
p.cpus = 4
|
|
1260
|
+
end
|
|
1261
|
+
RUBY
|
|
1262
|
+
end
|
|
1263
|
+
|
|
1264
|
+
it "does not set :linked_clone to nil" do
|
|
1265
|
+
config[:linked_clone] = nil
|
|
1266
|
+
cmd
|
|
1267
|
+
|
|
1268
|
+
expect(vagrantfile).to_not match(
|
|
1269
|
+
regexify(%{p.linked_clone = }, :partial))
|
|
1270
|
+
end
|
|
1271
|
+
|
|
1272
|
+
it "sets :linked_clone to false if set" do
|
|
1273
|
+
config[:linked_clone] = false
|
|
1274
|
+
cmd
|
|
1275
|
+
|
|
1276
|
+
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1277
|
+
c.vm.provider :parallels do |p|
|
|
1278
|
+
p.linked_clone = false
|
|
1279
|
+
end
|
|
1280
|
+
RUBY
|
|
1281
|
+
end
|
|
1282
|
+
|
|
1283
|
+
it "sets :linked_clone to true if set" do
|
|
1284
|
+
config[:linked_clone] = true
|
|
1285
|
+
cmd
|
|
1286
|
+
|
|
1287
|
+
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1288
|
+
c.vm.provider :parallels do |p|
|
|
1289
|
+
p.linked_clone = true
|
|
1290
|
+
end
|
|
1291
|
+
RUBY
|
|
1292
|
+
end
|
|
1151
1293
|
end
|
|
1152
1294
|
|
|
1153
1295
|
context "for rackspace provider" do
|
|
@@ -1213,14 +1355,16 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1213
1355
|
it "adds a line for each element in :customize" do
|
|
1214
1356
|
config[:customize] = {
|
|
1215
1357
|
:a_key => "some value",
|
|
1216
|
-
:something => "else"
|
|
1358
|
+
:something => "else",
|
|
1359
|
+
:a_number_key => 1024
|
|
1217
1360
|
}
|
|
1218
1361
|
cmd
|
|
1219
1362
|
|
|
1220
1363
|
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1221
1364
|
c.vm.provider :libvirt do |p|
|
|
1222
|
-
p.a_key = some value
|
|
1223
|
-
p.something = else
|
|
1365
|
+
p.a_key = "some value"
|
|
1366
|
+
p.something = "else"
|
|
1367
|
+
p.a_number_key = 1024
|
|
1224
1368
|
end
|
|
1225
1369
|
RUBY
|
|
1226
1370
|
end
|
|
@@ -1457,6 +1601,180 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1457
1601
|
RUBY
|
|
1458
1602
|
end
|
|
1459
1603
|
end
|
|
1604
|
+
|
|
1605
|
+
context "for cloudstack provider" do
|
|
1606
|
+
|
|
1607
|
+
before { config[:provider] = "cloudstack" }
|
|
1608
|
+
|
|
1609
|
+
it "adds a line for each element in :customize" do
|
|
1610
|
+
config[:customize] = {
|
|
1611
|
+
:a_key => "some value",
|
|
1612
|
+
:something => "else"
|
|
1613
|
+
}
|
|
1614
|
+
cmd
|
|
1615
|
+
|
|
1616
|
+
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1617
|
+
c.vm.provider :cloudstack do |p|
|
|
1618
|
+
p.a_key = "some value"
|
|
1619
|
+
p.something = "else"
|
|
1620
|
+
end
|
|
1621
|
+
RUBY
|
|
1622
|
+
end
|
|
1623
|
+
|
|
1624
|
+
it "builds an array of hashes for firewall rules in :customize" do
|
|
1625
|
+
config[:customize] = {
|
|
1626
|
+
:firewall_rules => [
|
|
1627
|
+
{
|
|
1628
|
+
:ipaddress => "A.A.A.A",
|
|
1629
|
+
:cidrlist => "B.B.B.B/24",
|
|
1630
|
+
:protocol => "tcp",
|
|
1631
|
+
:startport => 2222,
|
|
1632
|
+
:endport => 2222
|
|
1633
|
+
},
|
|
1634
|
+
{
|
|
1635
|
+
:ipaddress => "C.C.C.C",
|
|
1636
|
+
:cidrlist => "D.D.D.D/32",
|
|
1637
|
+
:protocol => "tcp",
|
|
1638
|
+
:startport => 80,
|
|
1639
|
+
:endport => 81
|
|
1640
|
+
}
|
|
1641
|
+
]
|
|
1642
|
+
}
|
|
1643
|
+
cmd
|
|
1644
|
+
|
|
1645
|
+
expectation = <<-RUBY.gsub(/^ {8}/, "").gsub(/,\n /, ",").chomp
|
|
1646
|
+
c.vm.provider :cloudstack do |p|
|
|
1647
|
+
p.firewall_rules = [{:ipaddress=>"A.A.A.A", :cidrlist=>"B.B.B.B/24",
|
|
1648
|
+
:protocol=>"tcp", :startport=>2222,
|
|
1649
|
+
:endport=>2222}, {:ipaddress=>"C.C.C.C", :cidrlist=>"D.D.D.D/32",
|
|
1650
|
+
:protocol=>"tcp", :startport=>80, :endport=>81}]
|
|
1651
|
+
end
|
|
1652
|
+
RUBY
|
|
1653
|
+
|
|
1654
|
+
expect(vagrantfile).to match(regexify(expectation))
|
|
1655
|
+
end
|
|
1656
|
+
|
|
1657
|
+
it "builds an array for security group ids in :customize" do
|
|
1658
|
+
config[:customize] = {
|
|
1659
|
+
:security_group_ids => ["aaaa-bbbb-cccc-dddd",
|
|
1660
|
+
"1111-2222-3333-4444"]
|
|
1661
|
+
}
|
|
1662
|
+
cmd
|
|
1663
|
+
|
|
1664
|
+
expectation = <<-RUBY.gsub(/^ {8}/, "").gsub(/,\n /, ",").chomp
|
|
1665
|
+
c.vm.provider :cloudstack do |p|
|
|
1666
|
+
p.security_group_ids = ["aaaa-bbbb-cccc-dddd",
|
|
1667
|
+
"1111-2222-3333-4444"]
|
|
1668
|
+
end
|
|
1669
|
+
RUBY
|
|
1670
|
+
|
|
1671
|
+
expect(vagrantfile).to match(regexify(expectation))
|
|
1672
|
+
end
|
|
1673
|
+
|
|
1674
|
+
it "builds an array for security group names in :customize" do
|
|
1675
|
+
config[:customize] = {
|
|
1676
|
+
:security_group_names => %w[min_fantastiska_security_group
|
|
1677
|
+
another_security_group]
|
|
1678
|
+
}
|
|
1679
|
+
cmd
|
|
1680
|
+
|
|
1681
|
+
expectation = <<-RUBY.gsub(/^ {8}/, "").gsub(/,\n /, ",").chomp
|
|
1682
|
+
c.vm.provider :cloudstack do |p|
|
|
1683
|
+
p.security_group_names = ["min_fantastiska_security_group",
|
|
1684
|
+
"another_security_group"]
|
|
1685
|
+
end
|
|
1686
|
+
RUBY
|
|
1687
|
+
|
|
1688
|
+
expect(vagrantfile).to match(regexify(expectation))
|
|
1689
|
+
end
|
|
1690
|
+
|
|
1691
|
+
it "builds an array of hashes for security groups in :customize" do
|
|
1692
|
+
config[:customize] = {
|
|
1693
|
+
:security_groups => [
|
|
1694
|
+
{
|
|
1695
|
+
:name => "Awesome_security_group",
|
|
1696
|
+
:description => "Created from the Vagrantfile",
|
|
1697
|
+
:rules => [
|
|
1698
|
+
{
|
|
1699
|
+
:type => "ingress",
|
|
1700
|
+
:protocol => "TCP",
|
|
1701
|
+
:startport => 22,
|
|
1702
|
+
:endport => 22,
|
|
1703
|
+
:cidrlist => "0.0.0.0/0"
|
|
1704
|
+
},
|
|
1705
|
+
{
|
|
1706
|
+
:type => "egress",
|
|
1707
|
+
:protocol => "TCP",
|
|
1708
|
+
:startport => 81,
|
|
1709
|
+
:endport => 82,
|
|
1710
|
+
:cidrlist => "1.2.3.4/24"
|
|
1711
|
+
}
|
|
1712
|
+
]
|
|
1713
|
+
}
|
|
1714
|
+
]
|
|
1715
|
+
}
|
|
1716
|
+
cmd
|
|
1717
|
+
|
|
1718
|
+
expectation = <<-RUBY.gsub(/^ {8}/, "").gsub(/,\n /, ",").chomp
|
|
1719
|
+
c.vm.provider :cloudstack do |p|
|
|
1720
|
+
p.security_groups = [{:name=>"Awesome_security_group",
|
|
1721
|
+
:description=>"Created from the Vagrantfile",
|
|
1722
|
+
:rules=>[{:type=>"ingress", :protocol=>"TCP", :startport=>22,
|
|
1723
|
+
:endport=>22, :cidrlist=>"0.0.0.0/0"}, {:type=>"egress",
|
|
1724
|
+
:protocol=>"TCP", :startport=>81, :endport=>82,
|
|
1725
|
+
:cidrlist=>"1.2.3.4/24"}]}]
|
|
1726
|
+
end
|
|
1727
|
+
RUBY
|
|
1728
|
+
|
|
1729
|
+
expect(vagrantfile).to match(regexify(expectation))
|
|
1730
|
+
end
|
|
1731
|
+
|
|
1732
|
+
it "builds an array of hashes for static nat in :customize" do
|
|
1733
|
+
config[:customize] = {
|
|
1734
|
+
:static_nat => [{ :idaddress => "A.A.A.A" }]
|
|
1735
|
+
}
|
|
1736
|
+
cmd
|
|
1737
|
+
|
|
1738
|
+
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1739
|
+
c.vm.provider :cloudstack do |p|
|
|
1740
|
+
p.static_nat = [{:idaddress=>"A.A.A.A"}]
|
|
1741
|
+
end
|
|
1742
|
+
RUBY
|
|
1743
|
+
end
|
|
1744
|
+
|
|
1745
|
+
it "builds an array of hashes for port forwarding rules in :customize" do
|
|
1746
|
+
config[:customize] = {
|
|
1747
|
+
:port_forwarding_rules => [
|
|
1748
|
+
{
|
|
1749
|
+
:ipaddress => "X.X.X.X",
|
|
1750
|
+
:protocol => "tcp",
|
|
1751
|
+
:publicport => 22,
|
|
1752
|
+
:privateport => 22,
|
|
1753
|
+
:openfirewall => false
|
|
1754
|
+
},
|
|
1755
|
+
{
|
|
1756
|
+
:ipaddress => "X.X.X.X",
|
|
1757
|
+
:protocol => "tcp",
|
|
1758
|
+
:publicport => 80,
|
|
1759
|
+
:privateport => 80,
|
|
1760
|
+
:openfirewall => false
|
|
1761
|
+
}
|
|
1762
|
+
]
|
|
1763
|
+
}
|
|
1764
|
+
cmd
|
|
1765
|
+
|
|
1766
|
+
expectation = <<-RUBY.gsub(/^ {8}/, "").gsub(/,\n /, ",").chomp
|
|
1767
|
+
c.vm.provider :cloudstack do |p|
|
|
1768
|
+
p.port_forwarding_rules = [{:ipaddress=>"X.X.X.X",
|
|
1769
|
+
:protocol=>"tcp", :publicport=>22, :privateport=>22,
|
|
1770
|
+
:openfirewall=>false}, {:ipaddress=>"X.X.X.X", :protocol=>"tcp",
|
|
1771
|
+
:publicport=>80, :privateport=>80, :openfirewall=>false}]
|
|
1772
|
+
end
|
|
1773
|
+
RUBY
|
|
1774
|
+
|
|
1775
|
+
expect(vagrantfile).to match(regexify(expectation))
|
|
1776
|
+
end
|
|
1777
|
+
end
|
|
1460
1778
|
end
|
|
1461
1779
|
|
|
1462
1780
|
def debug_lines
|
data/templates/Vagrantfile.erb
CHANGED
|
@@ -14,10 +14,14 @@ Vagrant.configure("2") do |c|
|
|
|
14
14
|
c.vm.box_version = "<%= config[:box_version] %>"
|
|
15
15
|
<% end %>
|
|
16
16
|
|
|
17
|
-
<% if config[:box_check_update] %>
|
|
17
|
+
<% if !config[:box_check_update].nil? %>
|
|
18
18
|
c.vm.box_check_update = "<%= config[:box_check_update] %>"
|
|
19
19
|
<% end %>
|
|
20
20
|
|
|
21
|
+
<% if !config[:box_download_insecure].nil? %>
|
|
22
|
+
c.vm.box_download_insecure = "<%= config[:box_download_insecure] %>"
|
|
23
|
+
<% end %>
|
|
24
|
+
|
|
21
25
|
<% if config[:vm_hostname] %>
|
|
22
26
|
c.vm.hostname = "<%= config[:vm_hostname] %>"
|
|
23
27
|
<% end %>
|
|
@@ -58,6 +62,10 @@ Vagrant.configure("2") do |c|
|
|
|
58
62
|
<% end %>
|
|
59
63
|
<% end %>
|
|
60
64
|
|
|
65
|
+
<% if config[:boot_timeout] %>
|
|
66
|
+
c.vm.boot_timeout = <%= config[:boot_timeout] %>
|
|
67
|
+
<% end %>
|
|
68
|
+
|
|
61
69
|
<% Array(config[:network]).each do |opts| %>
|
|
62
70
|
c.vm.network(:<%= opts[0] %>, <%= opts[1..-1].join(", ") %>)
|
|
63
71
|
<% end %>
|
|
@@ -72,12 +80,24 @@ Vagrant.configure("2") do |c|
|
|
|
72
80
|
when "virtualbox", /^vmware_/
|
|
73
81
|
if config[:gui] == true || config[:gui] == false %>
|
|
74
82
|
p.gui = <%= config[:gui] %>
|
|
83
|
+
<% end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
case config[:provider]
|
|
87
|
+
when "virtualbox", /^vmware_/, "parallels"
|
|
88
|
+
if config[:linked_clone] == true || config[:linked_clone] == false %>
|
|
89
|
+
p.linked_clone = <%= config[:linked_clone] %>
|
|
75
90
|
<% end
|
|
76
91
|
end %>
|
|
92
|
+
|
|
77
93
|
<% config[:customize].each do |key, value| %>
|
|
78
94
|
<% case config[:provider]
|
|
79
95
|
when "libvirt" %>
|
|
96
|
+
<% if value.is_a? String %>
|
|
97
|
+
p.<%= key %> = "<%= value%>"
|
|
98
|
+
<% else %>
|
|
80
99
|
p.<%= key %> = <%= value%>
|
|
100
|
+
<% end %>
|
|
81
101
|
<% when "lxc" %>
|
|
82
102
|
<% if key == :container_name %>
|
|
83
103
|
p.container_name = <%= value == ":machine" ? value : "\"#{value}\"" %>
|
|
@@ -95,7 +115,11 @@ Vagrant.configure("2") do |c|
|
|
|
95
115
|
p.server = "<%= value %>"
|
|
96
116
|
<% end %>
|
|
97
117
|
<% when "parallels" %>
|
|
118
|
+
<% if key == :memory || key == :cpus %>
|
|
119
|
+
p.<%= key %> = <%= value %>
|
|
120
|
+
<% else %>
|
|
98
121
|
p.customize ["set", :id, "--<%= key.to_s.gsub('_', '-') %>", "<%= value %>"]
|
|
122
|
+
<% end %>
|
|
99
123
|
<% when "rackspace" %>
|
|
100
124
|
p.<%= key %> = "<%= value%>"
|
|
101
125
|
<% when "softlayer" %>
|
|
@@ -118,7 +142,7 @@ Vagrant.configure("2") do |c|
|
|
|
118
142
|
<% else %>
|
|
119
143
|
p.vmx["<%= key %>"] = "<%= value %>"
|
|
120
144
|
<% end %>
|
|
121
|
-
<% when "openstack" %>
|
|
145
|
+
<% when "openstack", "cloudstack", "hyperv" %>
|
|
122
146
|
<% if value.is_a? String %>
|
|
123
147
|
p.<%= key %> = "<%= value%>"
|
|
124
148
|
<% else %>
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kitchen-vagrant
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.20.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Fletcher Nichol
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2016-04-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: test-kitchen
|
|
@@ -80,20 +80,34 @@ dependencies:
|
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0.9'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: github_changelog_generator
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - '='
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: 1.11.3
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - '='
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: 1.11.3
|
|
83
97
|
- !ruby/object:Gem::Dependency
|
|
84
98
|
name: finstyle
|
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
|
86
100
|
requirements:
|
|
87
101
|
- - '='
|
|
88
102
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 1.
|
|
103
|
+
version: 1.5.0
|
|
90
104
|
type: :development
|
|
91
105
|
prerelease: false
|
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
107
|
requirements:
|
|
94
108
|
- - '='
|
|
95
109
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 1.
|
|
110
|
+
version: 1.5.0
|
|
97
111
|
- !ruby/object:Gem::Dependency
|
|
98
112
|
name: cane
|
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -150,10 +164,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
150
164
|
version: '0'
|
|
151
165
|
requirements: []
|
|
152
166
|
rubyforge_project:
|
|
153
|
-
rubygems_version: 2.
|
|
167
|
+
rubygems_version: 2.5.2
|
|
154
168
|
signing_key:
|
|
155
169
|
specification_version: 4
|
|
156
170
|
summary: Kitchen::Driver::Vagrant - A Vagrant Driver for Test Kitchen.
|
|
157
171
|
test_files:
|
|
158
172
|
- spec/kitchen/driver/vagrant_spec.rb
|
|
159
173
|
- spec/spec_helper.rb
|
|
174
|
+
has_rdoc:
|