kitchen-vagrant 0.21.1 → 1.0.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/CHANGELOG.md +19 -0
- data/README.md +107 -42
- data/Rakefile +2 -2
- data/kitchen-vagrant.gemspec +3 -6
- data/lib/kitchen/driver/vagrant.rb +22 -8
- data/lib/kitchen/driver/vagrant_version.rb +1 -1
- data/spec/kitchen/driver/vagrant_spec.rb +183 -82
- data/templates/Vagrantfile.erb +50 -7
- metadata +10 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cdcd8378297c5463119b1d3854aa9e12669b753a
|
|
4
|
+
data.tar.gz: 4775d654b86cb58cf290dbb16dda7cde86522572
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5f2ebcd04539cb4c8df89a484699271e26baf56d5e86a438f89523f73181cd659ab5593dc1b038d5ed913c3287c60f8b7be8b275b4b601eb6312c27f56a0479a
|
|
7
|
+
data.tar.gz: a21647a79c02ec663b974c5be64968ed4d65524fc0d73e6ca6057b71d20d275e21a325bdef4af4d1f0ec72ae79954ef96913653a72287ec6cf8ba72c073a97eb
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
## [1.0.0](https://github.com/test-kitchen/kitchen-vagrant/tree/1.0.0) (2017-01-10)
|
|
2
|
+
[Full Changelog](https://github.com/test-kitchen/kitchen-vagrant/compare/v0.21.1...v1.0.0)
|
|
3
|
+
|
|
4
|
+
**Implemented enhancements:**
|
|
5
|
+
|
|
6
|
+
- Add vagrant-cachier support to default Vagrantfile.erb [\#186](https://github.com/test-kitchen/kitchen-vagrant/issues/186)
|
|
7
|
+
- Allow customization of cpuidset for VirtualBox VMs [\#175](https://github.com/test-kitchen/kitchen-vagrant/issues/175)
|
|
8
|
+
- Add KVM/libvirt storage support to Vagrantfile.erb [\#271](https://github.com/test-kitchen/kitchen-vagrant/pull/271) ([dprts](https://github.com/dprts))
|
|
9
|
+
- Move to chefstyle [\#264](https://github.com/test-kitchen/kitchen-vagrant/pull/264) ([shortdudey123](https://github.com/shortdudey123))
|
|
10
|
+
- Allow multiple "include" statements in LXC configuration [\#230](https://github.com/test-kitchen/kitchen-vagrant/pull/230) ([alexmv](https://github.com/alexmv))
|
|
11
|
+
- Set FQDN to include vagrantup.com again for non-windows operating sys… [\#168](https://github.com/test-kitchen/kitchen-vagrant/pull/168) ([spion06](https://github.com/spion06))
|
|
12
|
+
- Virtualbox storage via createhd and storageattach [\#246](https://github.com/test-kitchen/kitchen-vagrant/pull/246) ([shortdudey123](https://github.com/shortdudey123))
|
|
13
|
+
- Add support for box\_download\_ca\_cert [\#274](https://github.com/test-kitchen/kitchen-vagrant/pull/274) ([cheeseplus](https://github.com/cheeseplus))
|
|
14
|
+
|
|
15
|
+
**Fixed bugs:**
|
|
16
|
+
|
|
17
|
+
- Bug in box\_check\_update code [\#237](https://github.com/test-kitchen/kitchen-vagrant/issues/237)
|
|
18
|
+
- Fix quoting for cloud providers \(redux \#179\) [\#268](https://github.com/test-kitchen/kitchen-vagrant/pull/268) ([cheeseplus](https://github.com/cheeseplus))
|
|
19
|
+
|
|
1
20
|
## [0.21.1](https://github.com/test-kitchen/kitchen-vagrant/tree/0.21.1) (2016-12-05)
|
|
2
21
|
[Full Changelog](https://github.com/test-kitchen/kitchen-vagrant/compare/v0.21.0...v0.21.1)
|
|
3
22
|
|
data/README.md
CHANGED
|
@@ -33,10 +33,10 @@ 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>
|
|
36
|
+
### <a name="dependencies-virtualization"></a> Virtualization Hypervisor(s)
|
|
37
37
|
|
|
38
|
-
Currently this driver supports VirtualBox and VMware Fusion/Workstation
|
|
39
|
-
|
|
38
|
+
Currently this driver supports Parallels, VirtualBox, and VMware Fusion/Workstation
|
|
39
|
+
hypervisors. VirtualBox is free and is the default provider for Vagrant.
|
|
40
40
|
|
|
41
41
|
[VirtualBox package][virtualbox_dl]
|
|
42
42
|
|
|
@@ -70,17 +70,9 @@ on [Atlas][atlas] such as:
|
|
|
70
70
|
```yaml
|
|
71
71
|
---
|
|
72
72
|
platforms:
|
|
73
|
-
- name: ubuntu-
|
|
74
|
-
- name:
|
|
75
|
-
- 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
|
|
73
|
+
- name: ubuntu-16.04
|
|
74
|
+
- name: centos-7.3
|
|
75
|
+
- name: freebsd-11
|
|
84
76
|
```
|
|
85
77
|
|
|
86
78
|
This will effectively generate a configuration similar to:
|
|
@@ -88,21 +80,15 @@ This will effectively generate a configuration similar to:
|
|
|
88
80
|
```yaml
|
|
89
81
|
---
|
|
90
82
|
platforms:
|
|
91
|
-
- name: ubuntu-
|
|
83
|
+
- name: ubuntu-16.04
|
|
92
84
|
driver:
|
|
93
|
-
box: bento/ubuntu-
|
|
94
|
-
- name:
|
|
85
|
+
box: bento/ubuntu-16.04
|
|
86
|
+
- name: centos-7.3
|
|
95
87
|
driver:
|
|
96
|
-
box: bento/
|
|
97
|
-
- name:
|
|
88
|
+
box: bento/centos-7.3
|
|
89
|
+
- name: freebsd-11.0
|
|
98
90
|
driver:
|
|
99
|
-
box: bento/
|
|
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
|
|
91
|
+
box: bento/freebsd-11.0
|
|
106
92
|
# ...
|
|
107
93
|
```
|
|
108
94
|
|
|
@@ -136,17 +122,41 @@ Many host wide defaults for Vagrant can be set using `$HOME/.vagrant.d/Vagrantfi
|
|
|
136
122
|
|
|
137
123
|
## <a name="config"></a> Configuration
|
|
138
124
|
|
|
125
|
+
### <a name="config-cachier"></a> cachier
|
|
126
|
+
|
|
127
|
+
Enable and configure scope for [vagrant-cachier][vagrant_cachier] plugin.
|
|
128
|
+
Valid options are `:box` or `:machine`, setting to a truthy value yields `:box`
|
|
129
|
+
|
|
130
|
+
For example:
|
|
131
|
+
|
|
132
|
+
```yaml
|
|
133
|
+
---
|
|
134
|
+
driver:
|
|
135
|
+
cachier: true
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
will generate a Vagrantfile configuration similar to:
|
|
139
|
+
|
|
140
|
+
```ruby
|
|
141
|
+
config.cache.scope = :box
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
The default is `nil`, indicating unset.
|
|
145
|
+
|
|
146
|
+
|
|
139
147
|
### <a name="config-box"></a> box
|
|
140
148
|
|
|
141
149
|
**Required** This determines which Vagrant box will be used. For more
|
|
142
150
|
details, please read the Vagrant [machine settings][vagrant_machine_settings]
|
|
143
151
|
page.
|
|
144
152
|
|
|
145
|
-
The default will be computed from the platform name of the instance. However,
|
|
153
|
+
The default will be computed from the platform name of the instance. However,
|
|
154
|
+
for a number of common platforms in the [Bento][bento] project, the default will
|
|
155
|
+
prefix the name with `bento/` in accordance with Atlas naming standards.
|
|
146
156
|
|
|
147
|
-
For example, a platform with
|
|
148
|
-
default `box` value of `
|
|
149
|
-
`
|
|
157
|
+
For example, a platform with name `ubuntu-16.04` will produce a
|
|
158
|
+
default `box` value of `bento/ubuntu-16.04`. Alternatively, a box called
|
|
159
|
+
`slackware-14.1` will produce a default `box` value of `slackware-14.1`.
|
|
150
160
|
|
|
151
161
|
### <a name="config-box-check-update"></a> box\_check\_update
|
|
152
162
|
|
|
@@ -154,17 +164,35 @@ Whether to check for box updates (enabled by default).
|
|
|
154
164
|
|
|
155
165
|
### <a name="config-box-url"></a> box\_url
|
|
156
166
|
|
|
157
|
-
A
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
167
|
+
A box_url is not required when using the Atlas format of
|
|
168
|
+
`bento/ubuntu-16.04` assuming the organization and box referenced
|
|
169
|
+
exist. If using a custom box this can be an `https://` or `file://`
|
|
170
|
+
URL.
|
|
171
|
+
|
|
172
|
+
### <a name="config-box-download-ca-cert"></a> box\_download\_ca\_cert
|
|
173
|
+
|
|
174
|
+
Path relative to the `.kitchen.yml` file for locating the trusted CA bundle.
|
|
175
|
+
Useful when combined with `box_url`.
|
|
176
|
+
|
|
177
|
+
The default is `nil`, indicating to use the default Mozilla CA cert bundle.
|
|
178
|
+
See also `box_download_insecure`.
|
|
179
|
+
|
|
180
|
+
### <a name="config-box-download-insecure"></a> box\_download\_insecure
|
|
181
|
+
|
|
182
|
+
If true, then SSL certificates from the server will
|
|
183
|
+
not be verified.
|
|
184
|
+
|
|
185
|
+
The default is `false`, meaning if the URL is an HTTPS URL,
|
|
186
|
+
then SSL certs will be verified.
|
|
161
187
|
|
|
162
188
|
### <a name="config-box-version"></a> box\_version
|
|
163
189
|
|
|
164
|
-
The [version][vagrant_versioning] of the configured box.
|
|
190
|
+
The [version][vagrant_versioning] of the configured box.
|
|
165
191
|
|
|
166
192
|
The default is `nil`, indicating unset.
|
|
167
193
|
|
|
194
|
+
This option is only relevant when used with Atlas boxes which support versioning.
|
|
195
|
+
|
|
168
196
|
### <a name="config-communicator"></a> communicator
|
|
169
197
|
|
|
170
198
|
**Note:** It should largely be the responsibility of the underlying Vagrant
|
|
@@ -223,6 +251,42 @@ end
|
|
|
223
251
|
Please read the "Customizations" sections for [VirtualBox][vagrant_config_vbox]
|
|
224
252
|
and [VMware][vagrant_config_vmware] for more details.
|
|
225
253
|
|
|
254
|
+
#### <a name="config-customize-virtualbox-disk"></a> VirtualBox additional disk
|
|
255
|
+
|
|
256
|
+
Adding the `createhd` and `storageattach` keys in `customize` allows for creation
|
|
257
|
+
of an additional disk in VirtualBox.
|
|
258
|
+
|
|
259
|
+
```yaml
|
|
260
|
+
driver:
|
|
261
|
+
customize:
|
|
262
|
+
createhd:
|
|
263
|
+
filename: ./tmp/disk1.vmdk
|
|
264
|
+
size: 1024
|
|
265
|
+
storageattach:
|
|
266
|
+
storagectl: IDE Controller
|
|
267
|
+
port: 1
|
|
268
|
+
device: 0
|
|
269
|
+
type: hdd
|
|
270
|
+
medium: ./tmp/disk1.vmdk
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
will generate a Vagrantfile configuration similar to:
|
|
274
|
+
|
|
275
|
+
```ruby
|
|
276
|
+
Vagrant.configure("2") do |config|
|
|
277
|
+
# ...
|
|
278
|
+
|
|
279
|
+
config.vm.provider :virtualbox do |virtualbox|
|
|
280
|
+
virtualbox.customize ["createhd", "--filename", "./tmp/disk1.vmdk", "--size", 1024]
|
|
281
|
+
virtualbox.customize ["storageattach", :id, "--storagectl", "IDE Controller", "--port", "1", "device", 0, "--type", "hdd", "--medium", "./tmp/disk1.vmdk"]
|
|
282
|
+
end
|
|
283
|
+
end
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Please read [createhd](https://www.virtualbox.org/manual/ch08.html#vboxmanage-createvdi)
|
|
287
|
+
and [storageattach](https://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach)
|
|
288
|
+
for additional information on these options.
|
|
289
|
+
|
|
226
290
|
### <a name="config-guest"></a> guest
|
|
227
291
|
|
|
228
292
|
**Note:** It should largely be the responsibility of the underlying Vagrant
|
|
@@ -245,7 +309,7 @@ providers.
|
|
|
245
309
|
```yaml
|
|
246
310
|
---
|
|
247
311
|
platforms:
|
|
248
|
-
- name: ubuntu-
|
|
312
|
+
- name: ubuntu-16.04
|
|
249
313
|
driver:
|
|
250
314
|
gui: true
|
|
251
315
|
```
|
|
@@ -271,7 +335,7 @@ Allows to use linked clones to import boxes for VirtualBox, VMware and Parallels
|
|
|
271
335
|
```yaml
|
|
272
336
|
---
|
|
273
337
|
platforms:
|
|
274
|
-
- name: ubuntu-
|
|
338
|
+
- name: ubuntu-16.04
|
|
275
339
|
driver:
|
|
276
340
|
linked_clone: true
|
|
277
341
|
```
|
|
@@ -476,17 +540,17 @@ example:
|
|
|
476
540
|
|
|
477
541
|
## <a name="authors"></a> Authors
|
|
478
542
|
|
|
479
|
-
Created
|
|
543
|
+
Created by [Fletcher Nichol][author] (<fnichol@nichol.ca>)
|
|
480
544
|
|
|
481
545
|
## <a name="license"></a> License
|
|
482
546
|
|
|
483
547
|
Apache 2.0 (see [LICENSE][license])
|
|
484
548
|
|
|
485
549
|
|
|
486
|
-
[author]: https://github.com/
|
|
487
|
-
[issues]: https://github.com/
|
|
488
|
-
[license]: https://github.com/
|
|
489
|
-
[repo]: https://github.com/
|
|
550
|
+
[author]: https://github.com/test-kitchen
|
|
551
|
+
[issues]: https://github.com/test-kitchen/kitchen-vagrant/issues
|
|
552
|
+
[license]: https://github.com/test-kitchen/kitchen-vagrant/blob/master/LICENSE
|
|
553
|
+
[repo]: https://github.com/test-kitchen/kitchen-vagrant
|
|
490
554
|
[driver_usage]: http://kitchen.ci/docs/getting-started/adding-platform
|
|
491
555
|
|
|
492
556
|
[bento]: https://github.com/chef/bento
|
|
@@ -510,3 +574,4 @@ Apache 2.0 (see [LICENSE][license])
|
|
|
510
574
|
[atlas]: https://atlas.hashicorp.com/
|
|
511
575
|
[parallels_dl]: http://www.parallels.com/products/desktop/download/
|
|
512
576
|
[vagrant_parallels]: https://github.com/Parallels/vagrant-parallels
|
|
577
|
+
[vagrant_cachier]: https://github.com/fgrehm/vagrant-cachier
|
data/Rakefile
CHANGED
|
@@ -17,7 +17,7 @@ Cane::RakeTask.new do |cane|
|
|
|
17
17
|
cane.canefile = "./.cane"
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
require "
|
|
20
|
+
require "chefstyle"
|
|
21
21
|
require "rubocop/rake_task"
|
|
22
22
|
RuboCop::RakeTask.new(:style) do |task|
|
|
23
23
|
task.options << "--display-cop-names"
|
|
@@ -42,5 +42,5 @@ GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
|
|
42
42
|
config.future_release = Kitchen::Driver::VAGRANT_VERSION
|
|
43
43
|
config.enhancement_labels = "enhancement,Enhancement,New Feature,Feature,Improvement".split(",")
|
|
44
44
|
config.bug_labels = "bug,Bug".split(",")
|
|
45
|
-
config.exclude_labels = %w
|
|
45
|
+
config.exclude_labels = %w{Duplicate Question Discussion No_Changelog}
|
|
46
46
|
end
|
data/kitchen-vagrant.gemspec
CHANGED
|
@@ -21,15 +21,12 @@ Gem::Specification.new do |gem|
|
|
|
21
21
|
|
|
22
22
|
gem.add_dependency "test-kitchen", "~> 1.4"
|
|
23
23
|
|
|
24
|
-
gem.add_development_dependency "countloc",
|
|
24
|
+
gem.add_development_dependency "countloc", "~> 0.4"
|
|
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
28
|
gem.add_development_dependency "github_changelog_generator", "1.11.3"
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
# enforced in CI
|
|
33
|
-
gem.add_development_dependency "finstyle", "1.5.0"
|
|
34
|
-
gem.add_development_dependency "cane", "2.6.2"
|
|
30
|
+
gem.add_development_dependency "chefstyle"
|
|
31
|
+
gem.add_development_dependency "cane", "3.0.0"
|
|
35
32
|
end
|
|
@@ -45,6 +45,8 @@ module Kitchen
|
|
|
45
45
|
|
|
46
46
|
default_config :box_download_insecure, nil
|
|
47
47
|
|
|
48
|
+
default_config :box_download_ca_cert, nil
|
|
49
|
+
|
|
48
50
|
default_config(:box_url) { |driver| driver.default_box_url }
|
|
49
51
|
|
|
50
52
|
default_config :box_version, nil
|
|
@@ -81,13 +83,15 @@ module Kitchen
|
|
|
81
83
|
expand_path_for :vagrantfiles
|
|
82
84
|
|
|
83
85
|
default_config(:vm_hostname) do |driver|
|
|
84
|
-
driver.windows_os? ? nil : driver.instance.name
|
|
86
|
+
driver.windows_os? ? nil : "#{driver.instance.name}.vagrantup.com"
|
|
85
87
|
end
|
|
86
88
|
|
|
87
89
|
default_config(:cache_directory) do |driver|
|
|
88
90
|
driver.windows_os? ? "/omnibus/cache" : "/tmp/omnibus/cache"
|
|
89
91
|
end
|
|
90
92
|
|
|
93
|
+
default_config :cachier, nil
|
|
94
|
+
|
|
91
95
|
no_parallel_for :create, :destroy
|
|
92
96
|
|
|
93
97
|
# Creates a Vagrant VM instance.
|
|
@@ -147,6 +151,7 @@ module Kitchen
|
|
|
147
151
|
finalize_vm_hostname!
|
|
148
152
|
finalize_pre_create_command!
|
|
149
153
|
finalize_synced_folders!
|
|
154
|
+
finalize_ca_cert!
|
|
150
155
|
self
|
|
151
156
|
end
|
|
152
157
|
|
|
@@ -251,6 +256,15 @@ module Kitchen
|
|
|
251
256
|
debug("------------")
|
|
252
257
|
end
|
|
253
258
|
|
|
259
|
+
# Setup path for CA cert
|
|
260
|
+
#
|
|
261
|
+
# @api private
|
|
262
|
+
def finalize_ca_cert!
|
|
263
|
+
config[:box_download_ca_cert] = File.expand_path(
|
|
264
|
+
config[:box_download_ca_cert], config[:kitchen_root]) unless
|
|
265
|
+
config[:box_download_ca_cert].nil?
|
|
266
|
+
end
|
|
267
|
+
|
|
254
268
|
# Replaces any `{{vagrant_root}}` tokens in the pre create command.
|
|
255
269
|
#
|
|
256
270
|
# @api private
|
|
@@ -273,7 +287,7 @@ module Kitchen
|
|
|
273
287
|
config[:kitchen_root]
|
|
274
288
|
),
|
|
275
289
|
destination.gsub("%{instance_name}", instance.name),
|
|
276
|
-
options || "nil"
|
|
290
|
+
options || "nil",
|
|
277
291
|
]
|
|
278
292
|
end
|
|
279
293
|
add_extra_synced_folders!
|
|
@@ -288,7 +302,7 @@ module Kitchen
|
|
|
288
302
|
config[:synced_folders].push([
|
|
289
303
|
local_kitchen_cache,
|
|
290
304
|
cache_directory,
|
|
291
|
-
"create: true"
|
|
305
|
+
"create: true",
|
|
292
306
|
])
|
|
293
307
|
end
|
|
294
308
|
end
|
|
@@ -363,7 +377,7 @@ module Kitchen
|
|
|
363
377
|
merged = {
|
|
364
378
|
:use_sudo => config[:use_sudo],
|
|
365
379
|
:log_subject => name,
|
|
366
|
-
:environment => {}
|
|
380
|
+
:environment => {},
|
|
367
381
|
}.merge(options)
|
|
368
382
|
|
|
369
383
|
# Attempt to extract bundler and associated GEM related values.
|
|
@@ -373,8 +387,8 @@ module Kitchen
|
|
|
373
387
|
# "A Hard Problem"(TM), we simply blow away all known bundler
|
|
374
388
|
# related changes.
|
|
375
389
|
env = merged[:environment]
|
|
376
|
-
%w
|
|
377
|
-
RUBYOPT _ORIGINAL_GEM_PATH
|
|
390
|
+
%w{BUNDLE_BIN_PATH BUNDLE_GEMFILE GEM_HOME GEM_PATH GEM_ROOT RUBYLIB
|
|
391
|
+
RUBYOPT _ORIGINAL_GEM_PATH}.each do |var|
|
|
378
392
|
env[var] = nil
|
|
379
393
|
end
|
|
380
394
|
|
|
@@ -456,7 +470,7 @@ module Kitchen
|
|
|
456
470
|
# @api private
|
|
457
471
|
def vagrant_root
|
|
458
472
|
@vagrant_root ||= instance.nil? ? nil : File.join(
|
|
459
|
-
config[:kitchen_root], %w
|
|
473
|
+
config[:kitchen_root], %w{.kitchen kitchen-vagrant},
|
|
460
474
|
"kitchen-#{File.basename(config[:kitchen_root])}-#{instance.name}"
|
|
461
475
|
)
|
|
462
476
|
end
|
|
@@ -470,7 +484,7 @@ module Kitchen
|
|
|
470
484
|
lines = run_silently("#{config[:vagrant_binary]} #{type}-config").
|
|
471
485
|
split("\n").map do |line|
|
|
472
486
|
tokens = line.strip.partition(" ")
|
|
473
|
-
[tokens.first, tokens.last.
|
|
487
|
+
[tokens.first, tokens.last.delete('"')]
|
|
474
488
|
end
|
|
475
489
|
Hash[lines]
|
|
476
490
|
end
|
|
@@ -122,7 +122,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
122
122
|
"GEM_ROOT" => "gem_root",
|
|
123
123
|
"RUBYLIB" => "ruby_lib",
|
|
124
124
|
"RUBYOPT" => "ruby_opt",
|
|
125
|
-
"_ORIGINAL_GEM_PATH" => "original_gem_path"
|
|
125
|
+
"_ORIGINAL_GEM_PATH" => "original_gem_path",
|
|
126
126
|
}
|
|
127
127
|
end
|
|
128
128
|
|
|
@@ -153,11 +153,11 @@ describe Kitchen::Driver::Vagrant do
|
|
|
153
153
|
[
|
|
154
154
|
File.expand_path("~/.kitchen/cache"),
|
|
155
155
|
"/tmp/omnibus/cache",
|
|
156
|
-
"create: true"
|
|
156
|
+
"create: true",
|
|
157
157
|
]
|
|
158
158
|
end
|
|
159
159
|
|
|
160
|
-
%
|
|
160
|
+
%w{centos debian fedora opensuse ubuntu oracle freebsd}.each do |name|
|
|
161
161
|
|
|
162
162
|
context "for known bento platform names starting with #{name}" do
|
|
163
163
|
|
|
@@ -210,6 +210,16 @@ describe Kitchen::Driver::Vagrant do
|
|
|
210
210
|
expect(driver[:box_check_update]).to eq(true)
|
|
211
211
|
end
|
|
212
212
|
|
|
213
|
+
it "sets :box_download_ca_cert to nil by default" do
|
|
214
|
+
expect(driver[:box_download_ca_cert]).to eq(nil)
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
it "sets :box_download_ca_cert to a custom value" do
|
|
218
|
+
config[:box_download_ca_cert] = "cacert.pem"
|
|
219
|
+
|
|
220
|
+
expect(driver[:box_download_ca_cert]).to eq("/kroot/cacert.pem")
|
|
221
|
+
end
|
|
222
|
+
|
|
213
223
|
it "sets :box_download_insecure to nil by default" do
|
|
214
224
|
expect(driver[:box_download_insecure]).to eq(nil)
|
|
215
225
|
end
|
|
@@ -264,11 +274,11 @@ describe Kitchen::Driver::Vagrant do
|
|
|
264
274
|
|
|
265
275
|
it "sets :network to a custom value" do
|
|
266
276
|
config[:network] = [
|
|
267
|
-
["forwarded_port", :guest => 80, :host => 8080]
|
|
277
|
+
["forwarded_port", :guest => 80, :host => 8080],
|
|
268
278
|
]
|
|
269
279
|
|
|
270
280
|
expect(driver[:network]).to eq([
|
|
271
|
-
["forwarded_port", :guest => 80, :host => 8080]
|
|
281
|
+
["forwarded_port", :guest => 80, :host => 8080],
|
|
272
282
|
])
|
|
273
283
|
end
|
|
274
284
|
|
|
@@ -344,7 +354,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
344
354
|
|
|
345
355
|
it "sets :synced_folders to a custom value" do
|
|
346
356
|
config[:synced_folders] = [
|
|
347
|
-
["/host_path", "/vm_path", "create: true, type: :nfs"]
|
|
357
|
+
["/host_path", "/vm_path", "create: true, type: :nfs"],
|
|
348
358
|
]
|
|
349
359
|
|
|
350
360
|
expect(driver[:synced_folders]).to eq([
|
|
@@ -352,40 +362,40 @@ describe Kitchen::Driver::Vagrant do
|
|
|
352
362
|
File.expand_path("/host_path"),
|
|
353
363
|
"/vm_path", "create: true, type: :nfs"
|
|
354
364
|
],
|
|
355
|
-
cache_directory_array
|
|
365
|
+
cache_directory_array,
|
|
356
366
|
])
|
|
357
367
|
end
|
|
358
368
|
|
|
359
369
|
it "replaces %{instance_name} with instance name in :synced_folders" do
|
|
360
370
|
config[:synced_folders] = [
|
|
361
|
-
["/root/%{instance_name}", "/vm_path", "stuff"]
|
|
371
|
+
["/root/%{instance_name}", "/vm_path", "stuff"],
|
|
362
372
|
]
|
|
363
373
|
|
|
364
374
|
expect(driver[:synced_folders]).to eq([
|
|
365
375
|
[File.expand_path("/root/suitey-fooos-99"), "/vm_path", "stuff"],
|
|
366
|
-
cache_directory_array
|
|
376
|
+
cache_directory_array,
|
|
367
377
|
])
|
|
368
378
|
end
|
|
369
379
|
|
|
370
380
|
it "expands source paths relative to :kitchen_root in :synced_folders" do
|
|
371
381
|
config[:synced_folders] = [
|
|
372
|
-
["./a", "/vm_path", "stuff"]
|
|
382
|
+
["./a", "/vm_path", "stuff"],
|
|
373
383
|
]
|
|
374
384
|
|
|
375
385
|
expect(driver[:synced_folders]).to eq([
|
|
376
386
|
[File.expand_path("/kroot/a"), "/vm_path", "stuff"],
|
|
377
|
-
cache_directory_array
|
|
387
|
+
cache_directory_array,
|
|
378
388
|
])
|
|
379
389
|
end
|
|
380
390
|
|
|
381
391
|
it "sets options to 'nil' if not set in :synced_folders entry" do
|
|
382
392
|
config[:synced_folders] = [
|
|
383
|
-
["/host_path", "/vm_path", nil]
|
|
393
|
+
["/host_path", "/vm_path", nil],
|
|
384
394
|
]
|
|
385
395
|
|
|
386
396
|
expect(driver[:synced_folders]).to eq([
|
|
387
397
|
[File.expand_path("/host_path"), "/vm_path", "nil"],
|
|
388
|
-
cache_directory_array
|
|
398
|
+
cache_directory_array,
|
|
389
399
|
])
|
|
390
400
|
end
|
|
391
401
|
|
|
@@ -423,10 +433,10 @@ describe Kitchen::Driver::Vagrant do
|
|
|
423
433
|
end
|
|
424
434
|
|
|
425
435
|
it "sets and expands paths in :vagrantfiles" do
|
|
426
|
-
config[:vagrantfiles] = %
|
|
436
|
+
config[:vagrantfiles] = %w{one two three}
|
|
427
437
|
|
|
428
438
|
expect(driver[:vagrantfiles]).to eq(
|
|
429
|
-
%
|
|
439
|
+
%w{/kroot/one /kroot/two /kroot/three}.map { |f| File.expand_path(f) }
|
|
430
440
|
)
|
|
431
441
|
end
|
|
432
442
|
|
|
@@ -435,7 +445,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
435
445
|
before { allow(platform).to receive(:os_type).and_return("unix") }
|
|
436
446
|
|
|
437
447
|
it "sets :vm_hostname to the instance name by default" do
|
|
438
|
-
expect(driver[:vm_hostname]).to eq("suitey-fooos-99")
|
|
448
|
+
expect(driver[:vm_hostname]).to eq("suitey-fooos-99.vagrantup.com")
|
|
439
449
|
end
|
|
440
450
|
|
|
441
451
|
it "sets :vm_hostname to a custom value" do
|
|
@@ -451,7 +461,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
451
461
|
[
|
|
452
462
|
File.expand_path("~/.kitchen/cache"),
|
|
453
463
|
"/omnibus/cache",
|
|
454
|
-
"create: true"
|
|
464
|
+
"create: true",
|
|
455
465
|
]
|
|
456
466
|
end
|
|
457
467
|
|
|
@@ -473,12 +483,12 @@ describe Kitchen::Driver::Vagrant do
|
|
|
473
483
|
|
|
474
484
|
it "replaces %{instance_name} with instance name in :synced_folders" do
|
|
475
485
|
config[:synced_folders] = [
|
|
476
|
-
["/root/%{instance_name}", "/vm_path", "stuff"]
|
|
486
|
+
["/root/%{instance_name}", "/vm_path", "stuff"],
|
|
477
487
|
]
|
|
478
488
|
|
|
479
489
|
expect(driver[:synced_folders]).to eq([
|
|
480
490
|
[File.expand_path("/root/suitey-fooos-99"), "/vm_path", "stuff"],
|
|
481
|
-
win_cache_directory_array
|
|
491
|
+
win_cache_directory_array,
|
|
482
492
|
])
|
|
483
493
|
end
|
|
484
494
|
end
|
|
@@ -489,7 +499,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
489
499
|
[
|
|
490
500
|
File.expand_path("~/.kitchen/cache"),
|
|
491
501
|
"Z:\\awesome\\cache",
|
|
492
|
-
"create: true"
|
|
502
|
+
"create: true",
|
|
493
503
|
]
|
|
494
504
|
end
|
|
495
505
|
|
|
@@ -501,12 +511,12 @@ describe Kitchen::Driver::Vagrant do
|
|
|
501
511
|
|
|
502
512
|
it "replaces %{instance_name} with instance name in :synced_folders" do
|
|
503
513
|
config[:synced_folders] = [
|
|
504
|
-
["/root/%{instance_name}", "/vm_path", "stuff"]
|
|
514
|
+
["/root/%{instance_name}", "/vm_path", "stuff"],
|
|
505
515
|
]
|
|
506
516
|
|
|
507
517
|
expect(driver[:synced_folders]).to eq([
|
|
508
518
|
[File.expand_path("/root/suitey-fooos-99"), "/vm_path", "stuff"],
|
|
509
|
-
custom_cache_directory_array
|
|
519
|
+
custom_cache_directory_array,
|
|
510
520
|
])
|
|
511
521
|
end
|
|
512
522
|
end
|
|
@@ -606,10 +616,10 @@ describe Kitchen::Driver::Vagrant do
|
|
|
606
616
|
let(:cmd) { driver.create(state) }
|
|
607
617
|
|
|
608
618
|
let(:vagrant_root) do
|
|
609
|
-
File.join(%W
|
|
619
|
+
File.join(%W{
|
|
610
620
|
#{@dir} .kitchen kitchen-vagrant
|
|
611
621
|
kitchen-#{File.basename(@dir)}-suitey-fooos-99
|
|
612
|
-
|
|
622
|
+
})
|
|
613
623
|
end
|
|
614
624
|
|
|
615
625
|
before do
|
|
@@ -838,10 +848,10 @@ describe Kitchen::Driver::Vagrant do
|
|
|
838
848
|
let(:cmd) { driver.destroy(state) }
|
|
839
849
|
|
|
840
850
|
let(:vagrant_root) do
|
|
841
|
-
File.join(%W
|
|
851
|
+
File.join(%W{
|
|
842
852
|
#{@dir} .kitchen kitchen-vagrant
|
|
843
853
|
kitchen-#{File.basename(@dir)}-suitey-fooos-99
|
|
844
|
-
|
|
854
|
+
})
|
|
845
855
|
end
|
|
846
856
|
|
|
847
857
|
before do
|
|
@@ -928,10 +938,10 @@ describe Kitchen::Driver::Vagrant do
|
|
|
928
938
|
let(:cmd) { driver.create(state) }
|
|
929
939
|
|
|
930
940
|
let(:vagrant_root) do
|
|
931
|
-
File.join(%W
|
|
941
|
+
File.join(%W{
|
|
932
942
|
#{@dir} .kitchen kitchen-vagrant
|
|
933
943
|
kitchen-#{File.basename(@dir)}-suitey-fooos-99
|
|
934
|
-
|
|
944
|
+
})
|
|
935
945
|
end
|
|
936
946
|
|
|
937
947
|
before do
|
|
@@ -955,6 +965,27 @@ describe Kitchen::Driver::Vagrant do
|
|
|
955
965
|
))
|
|
956
966
|
end
|
|
957
967
|
|
|
968
|
+
it "sets no cache.scope if missing" do
|
|
969
|
+
config[:cachier] = nil
|
|
970
|
+
cmd
|
|
971
|
+
|
|
972
|
+
expect(vagrantfile).to_not match(regexify(%{c.cache.scope}, :partial))
|
|
973
|
+
end
|
|
974
|
+
|
|
975
|
+
it "sets cache.scope to :box if :cachier is set" do
|
|
976
|
+
config[:cachier] = true
|
|
977
|
+
cmd
|
|
978
|
+
|
|
979
|
+
expect(vagrantfile).to match(regexify(%{c.cache.scope = :box}))
|
|
980
|
+
end
|
|
981
|
+
|
|
982
|
+
it "sets cache.scope if :cachier is set to a custom value" do
|
|
983
|
+
config[:cachier] = ":machine"
|
|
984
|
+
cmd
|
|
985
|
+
|
|
986
|
+
expect(vagrantfile).to match(regexify(%{c.cache.scope = :machine}))
|
|
987
|
+
end
|
|
988
|
+
|
|
958
989
|
it "sets the vm.box" do
|
|
959
990
|
cmd
|
|
960
991
|
|
|
@@ -993,7 +1024,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
993
1024
|
end
|
|
994
1025
|
|
|
995
1026
|
it "requires each entry in :vagranfiles" do
|
|
996
|
-
config[:vagrantfiles] = %
|
|
1027
|
+
config[:vagrantfiles] = %w{/a /b /c}
|
|
997
1028
|
cmd
|
|
998
1029
|
|
|
999
1030
|
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
@@ -1060,14 +1091,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1060
1091
|
config[:box_check_update] = false
|
|
1061
1092
|
cmd
|
|
1062
1093
|
|
|
1063
|
-
expect(vagrantfile).to match(regexify(%{c.vm.box_check_update =
|
|
1064
|
-
end
|
|
1065
|
-
|
|
1066
|
-
it "sets vm.box_check_update if :box_check_update is set" do
|
|
1067
|
-
config[:box_check_update] = "um"
|
|
1068
|
-
cmd
|
|
1069
|
-
|
|
1070
|
-
expect(vagrantfile).to match(regexify(%{c.vm.box_check_update = "um"}))
|
|
1094
|
+
expect(vagrantfile).to match(regexify(%{c.vm.box_check_update = false}))
|
|
1071
1095
|
end
|
|
1072
1096
|
|
|
1073
1097
|
it "sets no vm.box_download_insecure if missing" do
|
|
@@ -1192,7 +1216,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1192
1216
|
:username => %{jdoe},
|
|
1193
1217
|
:password => %{secret},
|
|
1194
1218
|
:private_key_path => %{/key},
|
|
1195
|
-
:insert_key => false
|
|
1219
|
+
:insert_key => false,
|
|
1196
1220
|
}
|
|
1197
1221
|
cmd
|
|
1198
1222
|
|
|
@@ -1207,7 +1231,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1207
1231
|
it "adds a vm.network line for each element in :network" do
|
|
1208
1232
|
config[:network] = [
|
|
1209
1233
|
["forwarded_port", { :guest => 80, :host => 8080 }],
|
|
1210
|
-
["private_network", { :ip => "192.168.33.33" }]
|
|
1234
|
+
["private_network", { :ip => "192.168.33.33" }],
|
|
1211
1235
|
]
|
|
1212
1236
|
cmd
|
|
1213
1237
|
|
|
@@ -1220,7 +1244,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1220
1244
|
it "adds a vm.synced_folder line for each element in :synced_folders" do
|
|
1221
1245
|
config[:synced_folders] = [
|
|
1222
1246
|
["/a/b", "/opt/instance_data", "nil"],
|
|
1223
|
-
["/host_path", "/vm_path", "create: true, type: :nfs"]
|
|
1247
|
+
["/host_path", "/vm_path", "create: true, type: :nfs"],
|
|
1224
1248
|
]
|
|
1225
1249
|
cmd
|
|
1226
1250
|
|
|
@@ -1233,7 +1257,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1233
1257
|
it "vm.synced_folder scapes the back slashes for Windows paths" do
|
|
1234
1258
|
config[:synced_folders] = [
|
|
1235
1259
|
["/a/b", "C:\\opt\\instance_data", "nil"],
|
|
1236
|
-
["Z:\\host_path", "/vm_path", "create: true"]
|
|
1260
|
+
["Z:\\host_path", "/vm_path", "create: true"],
|
|
1237
1261
|
]
|
|
1238
1262
|
cmd
|
|
1239
1263
|
|
|
@@ -1250,7 +1274,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1250
1274
|
it "adds a line for each element in :customize" do
|
|
1251
1275
|
config[:customize] = {
|
|
1252
1276
|
:a_key => "some value",
|
|
1253
|
-
:something => "else"
|
|
1277
|
+
:something => "else",
|
|
1254
1278
|
}
|
|
1255
1279
|
cmd
|
|
1256
1280
|
|
|
@@ -1320,6 +1344,51 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1320
1344
|
end
|
|
1321
1345
|
RUBY
|
|
1322
1346
|
end
|
|
1347
|
+
|
|
1348
|
+
it "adds a lines for createhd in :customize" do
|
|
1349
|
+
config[:customize] = {
|
|
1350
|
+
:createhd => {
|
|
1351
|
+
:filename => "./d1.vmdk",
|
|
1352
|
+
:size => 10 * 1024,
|
|
1353
|
+
},
|
|
1354
|
+
}
|
|
1355
|
+
cmd
|
|
1356
|
+
|
|
1357
|
+
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1358
|
+
c.vm.provider :virtualbox do |p|
|
|
1359
|
+
p.customize ["createhd", "--filename", "./d1.vmdk", "--size", 10240]
|
|
1360
|
+
end
|
|
1361
|
+
RUBY
|
|
1362
|
+
end
|
|
1363
|
+
|
|
1364
|
+
it "adds a lines for storageattach in :customize" do
|
|
1365
|
+
config[:customize] = {
|
|
1366
|
+
:storageattach => {
|
|
1367
|
+
:type => "hdd",
|
|
1368
|
+
:port => 1,
|
|
1369
|
+
},
|
|
1370
|
+
}
|
|
1371
|
+
cmd
|
|
1372
|
+
|
|
1373
|
+
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1374
|
+
c.vm.provider :virtualbox do |p|
|
|
1375
|
+
p.customize ["storageattach", :id, "--type", "hdd", "--port", 1]
|
|
1376
|
+
end
|
|
1377
|
+
RUBY
|
|
1378
|
+
end
|
|
1379
|
+
|
|
1380
|
+
it "adds a line for cpuidset in :customize" do
|
|
1381
|
+
config[:customize] = {
|
|
1382
|
+
:cpuidset => %w{00000001 00000002},
|
|
1383
|
+
}
|
|
1384
|
+
cmd
|
|
1385
|
+
|
|
1386
|
+
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1387
|
+
c.vm.provider :virtualbox do |p|
|
|
1388
|
+
p.customize ["modifyvm", :id, "--cpuidset", "00000001", "00000002"]
|
|
1389
|
+
end
|
|
1390
|
+
RUBY
|
|
1391
|
+
end
|
|
1323
1392
|
end
|
|
1324
1393
|
|
|
1325
1394
|
context "for parallels provider" do
|
|
@@ -1329,7 +1398,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1329
1398
|
it "adds a line for each element in :customize" do
|
|
1330
1399
|
config[:customize] = {
|
|
1331
1400
|
:a_key => "some value",
|
|
1332
|
-
:something => "else"
|
|
1401
|
+
:something => "else",
|
|
1333
1402
|
}
|
|
1334
1403
|
cmd
|
|
1335
1404
|
|
|
@@ -1344,7 +1413,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1344
1413
|
it "adds a short form of :memory and :cpus elements in :customize" do
|
|
1345
1414
|
config[:customize] = {
|
|
1346
1415
|
:memory => 2048,
|
|
1347
|
-
:cpus => 4
|
|
1416
|
+
:cpus => 4,
|
|
1348
1417
|
}
|
|
1349
1418
|
cmd
|
|
1350
1419
|
|
|
@@ -1394,7 +1463,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1394
1463
|
it "adds a line for each element in :customize" do
|
|
1395
1464
|
config[:customize] = {
|
|
1396
1465
|
:a_key => "some value",
|
|
1397
|
-
:something => "else"
|
|
1466
|
+
:something => "else",
|
|
1398
1467
|
}
|
|
1399
1468
|
cmd
|
|
1400
1469
|
|
|
@@ -1415,8 +1484,8 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1415
1484
|
config[:customize] = {
|
|
1416
1485
|
:disk_capacity => {
|
|
1417
1486
|
:"0" => 25,
|
|
1418
|
-
:"2" => 100
|
|
1419
|
-
}
|
|
1487
|
+
:"2" => 100,
|
|
1488
|
+
},
|
|
1420
1489
|
}
|
|
1421
1490
|
cmd
|
|
1422
1491
|
|
|
@@ -1430,7 +1499,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1430
1499
|
it "adds a line for each element in :customize" do
|
|
1431
1500
|
config[:customize] = {
|
|
1432
1501
|
:a_key => "some value",
|
|
1433
|
-
:something => "else"
|
|
1502
|
+
:something => "else",
|
|
1434
1503
|
}
|
|
1435
1504
|
cmd
|
|
1436
1505
|
|
|
@@ -1451,7 +1520,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1451
1520
|
config[:customize] = {
|
|
1452
1521
|
:a_key => "some value",
|
|
1453
1522
|
:something => "else",
|
|
1454
|
-
:a_number_key => 1024
|
|
1523
|
+
:a_number_key => 1024,
|
|
1455
1524
|
}
|
|
1456
1525
|
cmd
|
|
1457
1526
|
|
|
@@ -1463,6 +1532,38 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1463
1532
|
end
|
|
1464
1533
|
RUBY
|
|
1465
1534
|
end
|
|
1535
|
+
|
|
1536
|
+
it "adds a single storage definition in :customize" do
|
|
1537
|
+
config[:customize] = {
|
|
1538
|
+
:storage => ":file, :size => '32G'",
|
|
1539
|
+
}
|
|
1540
|
+
cmd
|
|
1541
|
+
|
|
1542
|
+
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1543
|
+
c.vm.provider :libvirt do |p|
|
|
1544
|
+
p.storage :file, :size => '32G'
|
|
1545
|
+
end
|
|
1546
|
+
RUBY
|
|
1547
|
+
end
|
|
1548
|
+
|
|
1549
|
+
it "adds a line for each additional storage definition in :customize" do
|
|
1550
|
+
config[:customize] = {
|
|
1551
|
+
:storage => [
|
|
1552
|
+
":file, :size => '1G'",
|
|
1553
|
+
":file, :size => '128G', :bus => 'sata'",
|
|
1554
|
+
":file, :size => '64G', :bus => 'sata'",
|
|
1555
|
+
],
|
|
1556
|
+
}
|
|
1557
|
+
cmd
|
|
1558
|
+
|
|
1559
|
+
expect(vagrantfile).to match(regexify(<<-RUBY.gsub(/^ {8}/, "").chomp))
|
|
1560
|
+
c.vm.provider :libvirt do |p|
|
|
1561
|
+
p.storage :file, :size => '1G'
|
|
1562
|
+
p.storage :file, :size => '128G', :bus => 'sata'
|
|
1563
|
+
p.storage :file, :size => '64G', :bus => 'sata'
|
|
1564
|
+
end
|
|
1565
|
+
RUBY
|
|
1566
|
+
end
|
|
1466
1567
|
end
|
|
1467
1568
|
|
|
1468
1569
|
context "for lxc provider" do
|
|
@@ -1471,7 +1572,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1471
1572
|
|
|
1472
1573
|
it "sets container_name to :machine if set" do
|
|
1473
1574
|
config[:customize] = {
|
|
1474
|
-
:container_name => ":machine"
|
|
1575
|
+
:container_name => ":machine",
|
|
1475
1576
|
}
|
|
1476
1577
|
cmd
|
|
1477
1578
|
|
|
@@ -1484,7 +1585,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1484
1585
|
|
|
1485
1586
|
it "sets container_name to another value in quotes if set" do
|
|
1486
1587
|
config[:customize] = {
|
|
1487
|
-
:container_name => "beans"
|
|
1588
|
+
:container_name => "beans",
|
|
1488
1589
|
}
|
|
1489
1590
|
cmd
|
|
1490
1591
|
|
|
@@ -1497,7 +1598,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1497
1598
|
|
|
1498
1599
|
it "sets backingstore if set" do
|
|
1499
1600
|
config[:customize] = {
|
|
1500
|
-
:backingstore => "lvm"
|
|
1601
|
+
:backingstore => "lvm",
|
|
1501
1602
|
}
|
|
1502
1603
|
cmd
|
|
1503
1604
|
|
|
@@ -1512,8 +1613,8 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1512
1613
|
config[:customize] = {
|
|
1513
1614
|
:backingstore_options => {
|
|
1514
1615
|
:vgname => "schroots",
|
|
1515
|
-
:fstype => "xfs"
|
|
1516
|
-
}
|
|
1616
|
+
:fstype => "xfs",
|
|
1617
|
+
},
|
|
1517
1618
|
}
|
|
1518
1619
|
cmd
|
|
1519
1620
|
|
|
@@ -1528,7 +1629,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1528
1629
|
it "sets all other options to customize lines" do
|
|
1529
1630
|
config[:customize] = {
|
|
1530
1631
|
:cookies => "cream",
|
|
1531
|
-
:salt => "vinegar"
|
|
1632
|
+
:salt => "vinegar",
|
|
1532
1633
|
}
|
|
1533
1634
|
cmd
|
|
1534
1635
|
|
|
@@ -1577,7 +1678,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1577
1678
|
it "adds a line for each element in :customize" do
|
|
1578
1679
|
config[:customize] = {
|
|
1579
1680
|
:a_key => "some value",
|
|
1580
|
-
:something => "else"
|
|
1681
|
+
:something => "else",
|
|
1581
1682
|
}
|
|
1582
1683
|
cmd
|
|
1583
1684
|
|
|
@@ -1591,7 +1692,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1591
1692
|
|
|
1592
1693
|
it "converts :memory into :memsize" do
|
|
1593
1694
|
config[:customize] = {
|
|
1594
|
-
:memory => "222"
|
|
1695
|
+
:memory => "222",
|
|
1595
1696
|
}
|
|
1596
1697
|
cmd
|
|
1597
1698
|
|
|
@@ -1605,7 +1706,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1605
1706
|
it "skips :memory if key :memsize exists" do
|
|
1606
1707
|
config[:customize] = {
|
|
1607
1708
|
:memory => "222",
|
|
1608
|
-
:memsize => "444"
|
|
1709
|
+
:memsize => "444",
|
|
1609
1710
|
}
|
|
1610
1711
|
cmd
|
|
1611
1712
|
|
|
@@ -1618,7 +1719,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1618
1719
|
|
|
1619
1720
|
it "converts :cpus into :numvcpus" do
|
|
1620
1721
|
config[:customize] = {
|
|
1621
|
-
:cpus => "2"
|
|
1722
|
+
:cpus => "2",
|
|
1622
1723
|
}
|
|
1623
1724
|
cmd
|
|
1624
1725
|
|
|
@@ -1632,7 +1733,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1632
1733
|
it "skips :cpus if key :numvcpus exists" do
|
|
1633
1734
|
config[:customize] = {
|
|
1634
1735
|
:cpus => "2",
|
|
1635
|
-
:numvcpus => "4"
|
|
1736
|
+
:numvcpus => "4",
|
|
1636
1737
|
}
|
|
1637
1738
|
cmd
|
|
1638
1739
|
|
|
@@ -1650,7 +1751,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1650
1751
|
|
|
1651
1752
|
it "adds a line a server" do
|
|
1652
1753
|
config[:customize] = {
|
|
1653
|
-
:server => "my_server"
|
|
1754
|
+
:server => "my_server",
|
|
1654
1755
|
}
|
|
1655
1756
|
cmd
|
|
1656
1757
|
|
|
@@ -1664,7 +1765,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1664
1765
|
it "ignores all other key types than server" do
|
|
1665
1766
|
config[:customize] = {
|
|
1666
1767
|
:other => "stuff",
|
|
1667
|
-
:is => "ignored"
|
|
1768
|
+
:is => "ignored",
|
|
1668
1769
|
}
|
|
1669
1770
|
cmd
|
|
1670
1771
|
|
|
@@ -1683,7 +1784,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1683
1784
|
config[:customize] = {
|
|
1684
1785
|
:key1 => "some string value",
|
|
1685
1786
|
:key2 => 22,
|
|
1686
|
-
:key3 => false
|
|
1787
|
+
:key3 => false,
|
|
1687
1788
|
}
|
|
1688
1789
|
cmd
|
|
1689
1790
|
|
|
@@ -1704,7 +1805,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1704
1805
|
it "adds a line for each element in :customize" do
|
|
1705
1806
|
config[:customize] = {
|
|
1706
1807
|
:a_key => "some value",
|
|
1707
|
-
:something => "else"
|
|
1808
|
+
:something => "else",
|
|
1708
1809
|
}
|
|
1709
1810
|
cmd
|
|
1710
1811
|
|
|
@@ -1724,16 +1825,16 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1724
1825
|
:cidrlist => "B.B.B.B/24",
|
|
1725
1826
|
:protocol => "tcp",
|
|
1726
1827
|
:startport => 2222,
|
|
1727
|
-
:endport => 2222
|
|
1828
|
+
:endport => 2222,
|
|
1728
1829
|
},
|
|
1729
1830
|
{
|
|
1730
1831
|
:ipaddress => "C.C.C.C",
|
|
1731
1832
|
:cidrlist => "D.D.D.D/32",
|
|
1732
1833
|
:protocol => "tcp",
|
|
1733
1834
|
:startport => 80,
|
|
1734
|
-
:endport => 81
|
|
1735
|
-
}
|
|
1736
|
-
]
|
|
1835
|
+
:endport => 81,
|
|
1836
|
+
},
|
|
1837
|
+
],
|
|
1737
1838
|
}
|
|
1738
1839
|
cmd
|
|
1739
1840
|
|
|
@@ -1752,7 +1853,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1752
1853
|
it "builds an array for security group ids in :customize" do
|
|
1753
1854
|
config[:customize] = {
|
|
1754
1855
|
:security_group_ids => ["aaaa-bbbb-cccc-dddd",
|
|
1755
|
-
"1111-2222-3333-4444"]
|
|
1856
|
+
"1111-2222-3333-4444"],
|
|
1756
1857
|
}
|
|
1757
1858
|
cmd
|
|
1758
1859
|
|
|
@@ -1768,8 +1869,8 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1768
1869
|
|
|
1769
1870
|
it "builds an array for security group names in :customize" do
|
|
1770
1871
|
config[:customize] = {
|
|
1771
|
-
:security_group_names => %w
|
|
1772
|
-
another_security_group
|
|
1872
|
+
:security_group_names => %w{min_fantastiska_security_group
|
|
1873
|
+
another_security_group},
|
|
1773
1874
|
}
|
|
1774
1875
|
cmd
|
|
1775
1876
|
|
|
@@ -1795,18 +1896,18 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1795
1896
|
:protocol => "TCP",
|
|
1796
1897
|
:startport => 22,
|
|
1797
1898
|
:endport => 22,
|
|
1798
|
-
:cidrlist => "0.0.0.0/0"
|
|
1899
|
+
:cidrlist => "0.0.0.0/0",
|
|
1799
1900
|
},
|
|
1800
1901
|
{
|
|
1801
1902
|
:type => "egress",
|
|
1802
1903
|
:protocol => "TCP",
|
|
1803
1904
|
:startport => 81,
|
|
1804
1905
|
:endport => 82,
|
|
1805
|
-
:cidrlist => "1.2.3.4/24"
|
|
1806
|
-
}
|
|
1807
|
-
]
|
|
1808
|
-
}
|
|
1809
|
-
]
|
|
1906
|
+
:cidrlist => "1.2.3.4/24",
|
|
1907
|
+
},
|
|
1908
|
+
],
|
|
1909
|
+
},
|
|
1910
|
+
],
|
|
1810
1911
|
}
|
|
1811
1912
|
cmd
|
|
1812
1913
|
|
|
@@ -1826,7 +1927,7 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1826
1927
|
|
|
1827
1928
|
it "builds an array of hashes for static nat in :customize" do
|
|
1828
1929
|
config[:customize] = {
|
|
1829
|
-
:static_nat => [{ :idaddress => "A.A.A.A" }]
|
|
1930
|
+
:static_nat => [{ :idaddress => "A.A.A.A" }],
|
|
1830
1931
|
}
|
|
1831
1932
|
cmd
|
|
1832
1933
|
|
|
@@ -1845,16 +1946,16 @@ describe Kitchen::Driver::Vagrant do
|
|
|
1845
1946
|
:protocol => "tcp",
|
|
1846
1947
|
:publicport => 22,
|
|
1847
1948
|
:privateport => 22,
|
|
1848
|
-
:openfirewall => false
|
|
1949
|
+
:openfirewall => false,
|
|
1849
1950
|
},
|
|
1850
1951
|
{
|
|
1851
1952
|
:ipaddress => "X.X.X.X",
|
|
1852
1953
|
:protocol => "tcp",
|
|
1853
1954
|
:publicport => 80,
|
|
1854
1955
|
:privateport => 80,
|
|
1855
|
-
:openfirewall => false
|
|
1856
|
-
}
|
|
1857
|
-
]
|
|
1956
|
+
:openfirewall => false,
|
|
1957
|
+
},
|
|
1958
|
+
],
|
|
1858
1959
|
}
|
|
1859
1960
|
cmd
|
|
1860
1961
|
|
data/templates/Vagrantfile.erb
CHANGED
|
@@ -4,6 +4,12 @@ require "<%= vagrantfile %>"
|
|
|
4
4
|
|
|
5
5
|
Vagrant.configure("2") do |c|
|
|
6
6
|
c.berkshelf.enabled = false if Vagrant.has_plugin?("vagrant-berkshelf")
|
|
7
|
+
<% if config[:cachier] %>
|
|
8
|
+
if Vagrant.has_plugin?("vagrant-cachier")
|
|
9
|
+
c.cache.scope = <%= [':box', ':machine'].include?(config[:cachier]) ? config[:cachier] : ':box' %>
|
|
10
|
+
end
|
|
11
|
+
<% end %>
|
|
12
|
+
|
|
7
13
|
c.vm.box = "<%= config[:box] %>"
|
|
8
14
|
|
|
9
15
|
<% if config[:box_url] %>
|
|
@@ -15,7 +21,11 @@ Vagrant.configure("2") do |c|
|
|
|
15
21
|
<% end %>
|
|
16
22
|
|
|
17
23
|
<% if !config[:box_check_update].nil? %>
|
|
18
|
-
c.vm.box_check_update =
|
|
24
|
+
c.vm.box_check_update = <%= config[:box_check_update] %>
|
|
25
|
+
<% end %>
|
|
26
|
+
|
|
27
|
+
<% if !config[:box_download_ca_cert].nil? %>
|
|
28
|
+
c.vm.box_download_ca_cert = "<%= config[:box_download_ca_cert] %>"
|
|
19
29
|
<% end %>
|
|
20
30
|
|
|
21
31
|
<% if !config[:box_download_insecure].nil? %>
|
|
@@ -93,11 +103,21 @@ Vagrant.configure("2") do |c|
|
|
|
93
103
|
<% config[:customize].each do |key, value| %>
|
|
94
104
|
<% case config[:provider]
|
|
95
105
|
when "libvirt" %>
|
|
96
|
-
|
|
106
|
+
<% if key == :storage %>
|
|
107
|
+
<% if value.is_a? String %>
|
|
108
|
+
p.storage <%= value %>
|
|
109
|
+
<% elsif value.is_a? Array %>
|
|
110
|
+
<% value.each do |v| %>
|
|
111
|
+
p.storage <%= v %>
|
|
112
|
+
<% end %>
|
|
113
|
+
<% end %>
|
|
114
|
+
<% else %>
|
|
115
|
+
<% if value.is_a? String %>
|
|
97
116
|
p.<%= key %> = "<%= value%>"
|
|
98
|
-
|
|
117
|
+
<% else %>
|
|
99
118
|
p.<%= key %> = <%= value%>
|
|
100
|
-
|
|
119
|
+
<% end %>
|
|
120
|
+
<% end %>
|
|
101
121
|
<% when "lxc" %>
|
|
102
122
|
<% if key == :container_name %>
|
|
103
123
|
p.container_name = <%= value == ":machine" ? value : "\"#{value}\"" %>
|
|
@@ -107,6 +127,10 @@ Vagrant.configure("2") do |c|
|
|
|
107
127
|
<% config[:customize][:backingstore_options].each do |opt, opt_val| %>
|
|
108
128
|
p.backingstore_option "--<%= opt %>", "<%= opt_val %>"
|
|
109
129
|
<% end %>
|
|
130
|
+
<% elsif key == :include %>
|
|
131
|
+
<% Array(value).each do |include| %>
|
|
132
|
+
p.customize "<%= key %>", "<%= include %>"
|
|
133
|
+
<% end %>
|
|
110
134
|
<% else %>
|
|
111
135
|
p.customize "<%= key %>", "<%= value %>"
|
|
112
136
|
<% end %>
|
|
@@ -120,8 +144,6 @@ Vagrant.configure("2") do |c|
|
|
|
120
144
|
<% else %>
|
|
121
145
|
p.customize ["set", :id, "--<%= key.to_s.gsub('_', '-') %>", "<%= value %>"]
|
|
122
146
|
<% end %>
|
|
123
|
-
<% when "rackspace" %>
|
|
124
|
-
p.<%= key %> = "<%= value%>"
|
|
125
147
|
<% when "softlayer" %>
|
|
126
148
|
<% if key == :disk_capacity %>
|
|
127
149
|
p.<%= key %> = <%= value %>
|
|
@@ -129,7 +151,28 @@ Vagrant.configure("2") do |c|
|
|
|
129
151
|
p.<%= key %> = "<%= value %>"
|
|
130
152
|
<% end %>
|
|
131
153
|
<% when "virtualbox" %>
|
|
154
|
+
<% if key == :createhd %>
|
|
155
|
+
p.customize ["createhd", "--filename", "<%= value[:filename] %>", "--size", <%= value[:size] %>]
|
|
156
|
+
<% elsif key == :storageattach %>
|
|
157
|
+
<% options = [] %>
|
|
158
|
+
<% value.each do |storageattach_option_key, storageattach_option_value|
|
|
159
|
+
options << "\"--#{storageattach_option_key}\""
|
|
160
|
+
if storageattach_option_value.instance_of? Fixnum
|
|
161
|
+
options << storageattach_option_value
|
|
162
|
+
else
|
|
163
|
+
options << "\"#{storageattach_option_value}\""
|
|
164
|
+
end
|
|
165
|
+
end %>
|
|
166
|
+
p.customize ["storageattach", :id, <%= options.join(', ') %>]
|
|
167
|
+
<% elsif key == :cpuidset %>
|
|
168
|
+
<% ids = [] %>
|
|
169
|
+
<% value.each do | id |
|
|
170
|
+
ids << "\"#{id}\""
|
|
171
|
+
end %>
|
|
172
|
+
p.customize ["modifyvm", :id, "--cpuidset", <%= ids.join(', ') %>]
|
|
173
|
+
<% else %>
|
|
132
174
|
p.customize ["modifyvm", :id, "--<%= key %>", "<%= value %>"]
|
|
175
|
+
<% end %>
|
|
133
176
|
<% when /^vmware_/ %>
|
|
134
177
|
<% if key == :memory %>
|
|
135
178
|
<% unless config[:customize].include?(:memsize) %>
|
|
@@ -142,7 +185,7 @@ Vagrant.configure("2") do |c|
|
|
|
142
185
|
<% else %>
|
|
143
186
|
p.vmx["<%= key %>"] = "<%= value %>"
|
|
144
187
|
<% end %>
|
|
145
|
-
<% when "openstack", "cloudstack", "hyperv", "ovirt3" %>
|
|
188
|
+
<% when "openstack", "cloudstack", "hyperv", "ovirt3", "rackspace", "aws" %>
|
|
146
189
|
<% if value.is_a? String %>
|
|
147
190
|
p.<%= key %> = "<%= value%>"
|
|
148
191
|
<% 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: 1.0.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: 2017-01-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: test-kitchen
|
|
@@ -95,33 +95,33 @@ dependencies:
|
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: 1.11.3
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
98
|
+
name: chefstyle
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
|
-
- -
|
|
101
|
+
- - ">="
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version:
|
|
103
|
+
version: '0'
|
|
104
104
|
type: :development
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
|
-
- -
|
|
108
|
+
- - ">="
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
110
|
+
version: '0'
|
|
111
111
|
- !ruby/object:Gem::Dependency
|
|
112
112
|
name: cane
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
115
|
- - '='
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version:
|
|
117
|
+
version: 3.0.0
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
122
|
- - '='
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version:
|
|
124
|
+
version: 3.0.0
|
|
125
125
|
description: Kitchen::Driver::Vagrant - A Vagrant Driver for Test Kitchen.
|
|
126
126
|
email:
|
|
127
127
|
- fnichol@nichol.ca
|
|
@@ -164,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
164
164
|
version: '0'
|
|
165
165
|
requirements: []
|
|
166
166
|
rubyforge_project:
|
|
167
|
-
rubygems_version: 2.
|
|
167
|
+
rubygems_version: 2.5.1
|
|
168
168
|
signing_key:
|
|
169
169
|
specification_version: 4
|
|
170
170
|
summary: Kitchen::Driver::Vagrant - A Vagrant Driver for Test Kitchen.
|