kitchen-vagrant 1.14.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/kitchen/driver/vagrant.rb +13 -58
- data/lib/kitchen/driver/vagrant_version.rb +1 -1
- data/templates/Vagrantfile.erb +4 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3f214228bf52efa9cb0d163b283d714f61426e13d6ca0b37d0632201f48bd94
|
4
|
+
data.tar.gz: 8ae44fd2027215c4c5e507a1f744cacd91ced18e82072717857b29e659a4f880
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 630ab055d4e77582c79661484a731a772e9b18a1afa73ba52c7eddbb80744a0df6905dc2aaa2746fda9c3bae666a29dbc9c172502f70f27946c038a3822a21bb
|
7
|
+
data.tar.gz: d3c5734ad3be9c51a811d753edc99daca20ce8af8d60884f4cb24c7b463b7083246a0b3c640fc6de52dbc339ec49952de500a426d285ec559996f64ee88a69d3
|
@@ -56,6 +56,8 @@ module Kitchen
|
|
56
56
|
|
57
57
|
default_config :box_version, nil
|
58
58
|
|
59
|
+
default_config :box_arch, nil
|
60
|
+
|
59
61
|
default_config :boot_timeout, nil
|
60
62
|
|
61
63
|
default_config :customize, {}
|
@@ -125,7 +127,7 @@ module Kitchen
|
|
125
127
|
# @return [String,nil] the Vagrant box for this Instance
|
126
128
|
def default_box
|
127
129
|
if bento_box?(instance.platform.name)
|
128
|
-
"bento/#{instance.platform.name}
|
130
|
+
"bento/#{instance.platform.name}"
|
129
131
|
else
|
130
132
|
instance.platform.name
|
131
133
|
end
|
@@ -224,16 +226,10 @@ module Kitchen
|
|
224
226
|
|
225
227
|
protected
|
226
228
|
|
227
|
-
WEBSITE = "https://
|
228
|
-
MIN_VER = "
|
229
|
+
WEBSITE = "https://developer.hashicorp.com/vagrant/install".freeze
|
230
|
+
MIN_VER = "2.4.0".freeze
|
229
231
|
|
230
232
|
class << self
|
231
|
-
|
232
|
-
# @return [true,false] whether or not the vagrant-winrm plugin is
|
233
|
-
# installed
|
234
|
-
# @api private
|
235
|
-
attr_accessor :winrm_plugin_passed
|
236
|
-
|
237
233
|
# @return [String] the version of Vagrant installed on the workstation
|
238
234
|
# @api private
|
239
235
|
attr_accessor :vagrant_version
|
@@ -313,14 +309,20 @@ module Kitchen
|
|
313
309
|
def finalize_box_auto_update!
|
314
310
|
return if config[:box_auto_update].nil?
|
315
311
|
|
316
|
-
|
312
|
+
cmd = "#{config[:vagrant_binary]} box update --box #{config[:box]}"
|
313
|
+
cmd += " --architecture #{config[:box_arch]}" if config[:box_arch]
|
314
|
+
cmd += " --provider #{config[:provider]}" if config[:provider]
|
315
|
+
cmd += " --insecure" if config[:box_download_insecure]
|
316
|
+
config[:box_auto_update] = cmd
|
317
317
|
end
|
318
318
|
|
319
319
|
# Create vagrant command to remove older versions of the box
|
320
320
|
def finalize_box_auto_prune!
|
321
321
|
return if config[:box_auto_prune].nil?
|
322
322
|
|
323
|
-
config[:
|
323
|
+
cmd = "#{config[:vagrant_binary]} box prune --force --keep-active-boxes --name #{config[:box]}"
|
324
|
+
cmd += " --provider #{config[:provider]}" if config[:provider]
|
325
|
+
config[:box_auto_prune] = cmd
|
324
326
|
end
|
325
327
|
|
326
328
|
# Replaces any `{{vagrant_root}}` tokens in the pre create command.
|
@@ -390,19 +392,6 @@ module Kitchen
|
|
390
392
|
end
|
391
393
|
end
|
392
394
|
|
393
|
-
# Loads any required third party Ruby libraries or runs any shell out
|
394
|
-
# commands to prepare the plugin. This method will be called in the
|
395
|
-
# context of the main thread of execution and so does not necessarily
|
396
|
-
# have to be thread safe.
|
397
|
-
#
|
398
|
-
# @raise [ClientError] if any library loading fails or any of the
|
399
|
-
# dependency requirements cannot be satisfied
|
400
|
-
# @api private
|
401
|
-
def load_needed_dependencies!
|
402
|
-
super
|
403
|
-
verify_winrm_plugin if winrm_transport?
|
404
|
-
end
|
405
|
-
|
406
395
|
# Renders the Vagrantfile ERb template.
|
407
396
|
#
|
408
397
|
# @return [String] the contents for a Vagrantfile
|
@@ -597,46 +586,12 @@ module Kitchen
|
|
597
586
|
" Please download a package from #{WEBSITE}."
|
598
587
|
end
|
599
588
|
|
600
|
-
# Verify that the vagrant-winrm plugin is installed and a suitable
|
601
|
-
# version of Vagrant is installed
|
602
|
-
#
|
603
|
-
# @api private
|
604
|
-
def verify_winrm_plugin
|
605
|
-
if Gem::Version.new(vagrant_version) < Gem::Version.new("1.6")
|
606
|
-
raise UserError, "Detected an old version of Vagrant " \
|
607
|
-
"(#{vagrant_version}) that cannot support the vagrant-winrm " \
|
608
|
-
"Vagrant plugin." \
|
609
|
-
" Please upgrade to version 1.6 or higher from #{WEBSITE}."
|
610
|
-
end
|
611
|
-
|
612
|
-
if Gem::Version.new(vagrant_version) < Gem::Version.new("2.2.0") && !winrm_plugin_installed?
|
613
|
-
raise UserError, "Vagrant version #{vagrant_version} requires the " \
|
614
|
-
"vagrant-winrm plugin to properly communicate with this Vagrant VM " \
|
615
|
-
"over WinRM Transport. Please install this plugin with: " \
|
616
|
-
"`vagrant plugin install vagrant-winrm' and try again." \
|
617
|
-
"Alternatively upgrade to Vagrant >= 2.2.0 which does not " \
|
618
|
-
"require the vagrant-winrm plugin."
|
619
|
-
end
|
620
|
-
end
|
621
|
-
|
622
589
|
# @return [true,false] whether or not the host is windows
|
623
590
|
#
|
624
591
|
# @api private
|
625
592
|
def windows_host?
|
626
593
|
RbConfig::CONFIG["host_os"] =~ /mswin|mingw/
|
627
594
|
end
|
628
|
-
|
629
|
-
# @return [true,false] whether or not the vagrant-winrm plugin is
|
630
|
-
# installed
|
631
|
-
# @api private
|
632
|
-
def winrm_plugin_installed?
|
633
|
-
return true if self.class.winrm_plugin_passed
|
634
|
-
|
635
|
-
self.class.winrm_plugin_passed = run_silently(
|
636
|
-
"#{config[:vagrant_binary]} plugin list", cwd: Dir.pwd
|
637
|
-
)
|
638
|
-
.split("\n").find { |line| line =~ /vagrant-winrm\s+/ }
|
639
|
-
end
|
640
595
|
end
|
641
596
|
end
|
642
597
|
end
|
data/templates/Vagrantfile.erb
CHANGED
@@ -20,6 +20,10 @@ Vagrant.configure("2") do |c|
|
|
20
20
|
c.vm.box_version = "<%= config[:box_version] %>"
|
21
21
|
<% end %>
|
22
22
|
|
23
|
+
<% if config[:box_arch] %>
|
24
|
+
c.vm.box_architecture = "<%= config[:box_arch] %>"
|
25
|
+
<% end %>
|
26
|
+
|
23
27
|
<% if !config[:box_check_update].nil? %>
|
24
28
|
c.vm.box_check_update = <%= config[:box_check_update] %>
|
25
29
|
<% end %>
|
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:
|
4
|
+
version: 2.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: 2024-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: test-kitchen
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '4'
|
33
|
-
description: Kitchen::Driver::Vagrant - A Vagrant Driver for Test Kitchen.
|
33
|
+
description: Kitchen::Driver::Vagrant - A HashiCorp Vagrant Driver for Test Kitchen.
|
34
34
|
email:
|
35
35
|
- fnichol@nichol.ca
|
36
36
|
executables: []
|
@@ -55,15 +55,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
55
55
|
requirements:
|
56
56
|
- - ">="
|
57
57
|
- !ruby/object:Gem::Version
|
58
|
-
version: '
|
58
|
+
version: '3.0'
|
59
59
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '0'
|
64
64
|
requirements: []
|
65
|
-
rubygems_version: 3.4
|
65
|
+
rubygems_version: 3.5.4
|
66
66
|
signing_key:
|
67
67
|
specification_version: 4
|
68
|
-
summary: Kitchen::Driver::Vagrant - A Vagrant Driver for Test Kitchen.
|
68
|
+
summary: Kitchen::Driver::Vagrant - A HashiCorp Vagrant Driver for Test Kitchen.
|
69
69
|
test_files: []
|