vagrant-unbundled 2.3.3.0 → 2.3.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/CHANGELOG.md +42 -0
  4. data/Gemfile.lock +32 -32
  5. data/Makefile +53 -9
  6. data/contrib/bash/completion.sh +15 -0
  7. data/go.mod +1 -1
  8. data/go.sum +2 -10
  9. data/lib/vagrant/action/builtin/box_add.rb +16 -6
  10. data/lib/vagrant/environment.rb +1 -1
  11. data/lib/vagrant/errors.rb +8 -0
  12. data/lib/vagrant/plugin/v2/config.rb +0 -5
  13. data/lib/vagrant/shared_helpers.rb +21 -0
  14. data/lib/vagrant/util/file_mutex.rb +47 -0
  15. data/lib/vagrant/util/platform.rb +8 -2
  16. data/lib/vagrant/util.rb +1 -0
  17. data/lib/vagrant.rb +1 -0
  18. data/pkg/vagrant-unbundled-2.3.3.0.gem +0 -0
  19. data/plugins/commands/box/command/outdated.rb +1 -1
  20. data/plugins/commands/serve/command.rb +22 -24
  21. data/plugins/commands/serve/constants.rb +8 -0
  22. data/plugins/communicators/ssh/communicator.rb +11 -20
  23. data/plugins/hosts/arch/host.rb +1 -1
  24. data/plugins/kernel_v2/config/vm.rb +0 -9
  25. data/plugins/providers/docker/action.rb +1 -2
  26. data/plugins/providers/docker/driver.rb +17 -1
  27. data/plugins/providers/hyperv/driver.rb +6 -1
  28. data/plugins/providers/hyperv/scripts/set_enhanced_session_transport_type.ps1 +11 -2
  29. data/plugins/providers/hyperv/scripts/utils/VagrantVM/VagrantVM.psm1 +15 -0
  30. data/plugins/providers/virtualbox/action/check_virtualbox.rb +0 -6
  31. data/plugins/providers/virtualbox/action/network.rb +15 -0
  32. data/plugins/providers/virtualbox/driver/base.rb +47 -1
  33. data/plugins/providers/virtualbox/driver/version_7_0.rb +24 -7
  34. data/plugins/provisioners/ansible/cap/guest/debian/ansible_install.rb +5 -1
  35. data/plugins/provisioners/ansible/cap/guest/posix/ansible_installed.rb +2 -2
  36. data/plugins/provisioners/ansible/provisioner/guest.rb +1 -1
  37. data/plugins/provisioners/ansible/provisioner/host.rb +3 -2
  38. data/plugins/synced_folders/rsync/helper.rb +3 -6
  39. data/templates/commands/init/Vagrantfile.erb +7 -0
  40. data/templates/locales/en.yml +12 -0
  41. data/tools.go +10 -0
  42. data/vagrant.gemspec +9 -9
  43. data/version.txt +1 -1
  44. metadata +24 -20
@@ -0,0 +1,8 @@
1
+ module VagrantPlugins
2
+ module CommandServe
3
+ # Simple constant aliases to reduce namespace typing
4
+ SDK = Hashicorp::Vagrant::Sdk
5
+ SRV = Hashicorp::Vagrant
6
+ Empty = ::Google::Protobuf::Empty
7
+ end
8
+ end
@@ -404,7 +404,7 @@ module VagrantPlugins
404
404
 
405
405
  # Set some valid auth methods. We disable the auth methods that
406
406
  # we're not using if we don't have the right auth info.
407
- auth_methods = ["none", "hostbased"]
407
+ auth_methods = ["none", "hostbased", "keyboard-interactive"]
408
408
  auth_methods << "publickey" if ssh_info[:private_key_path]
409
409
  auth_methods << "password" if ssh_info[:password]
410
410
 
@@ -456,6 +456,15 @@ module VagrantPlugins
456
456
  connect_opts[:remote_user] = ssh_info[:remote_user]
457
457
  end
458
458
 
459
+ if @machine.config.ssh.keep_alive
460
+ connect_opts[:keepalive] = true
461
+ connect_opts[:keepalive_interval] = 5
462
+ end
463
+
464
+ if ssh_info[:password]
465
+ connect_opts[:non_interactive] = true
466
+ end
467
+
459
468
  @logger.info("Attempting to connect to SSH...")
460
469
  @logger.info(" - Host: #{ssh_info[:host]}")
461
470
  @logger.info(" - Port: #{ssh_info[:port]}")
@@ -464,7 +473,7 @@ module VagrantPlugins
464
473
  @logger.info(" - Key Path: #{ssh_info[:private_key_path]}")
465
474
  @logger.debug(" - connect_opts: #{connect_opts}")
466
475
 
467
- Net::SSH.start(ssh_info[:host], ssh_info[:username], connect_opts)
476
+ Net::SSH.start(ssh_info[:host], ssh_info[:username], **connect_opts)
468
477
  ensure
469
478
  # Make sure we output the connection log
470
479
  @logger.debug("== Net-SSH connection debug-level log START ==")
@@ -683,21 +692,6 @@ module VagrantPlugins
683
692
  end
684
693
 
685
694
  begin
686
- keep_alive = nil
687
-
688
- if machine_config_ssh.keep_alive
689
- # Begin sending keep-alive packets while we wait for the script
690
- # to complete. This avoids connections closing on long-running
691
- # scripts.
692
- keep_alive = Thread.new do
693
- loop do
694
- sleep 5
695
- @logger.debug("Sending SSH keep-alive...")
696
- connection.send_global_request("keep-alive@openssh.com")
697
- end
698
- end
699
- end
700
-
701
695
  # Wait for the channel to complete
702
696
  begin
703
697
  channel.wait
@@ -711,9 +705,6 @@ module VagrantPlugins
711
705
  rescue Net::SSH::Disconnect
712
706
  raise Vagrant::Errors::SSHDisconnected
713
707
  end
714
- ensure
715
- # Kill the keep-alive thread
716
- keep_alive.kill if keep_alive
717
708
  end
718
709
 
719
710
  # If we're in a PTY, we now finally parse the output
@@ -4,7 +4,7 @@ module VagrantPlugins
4
4
  module HostArch
5
5
  class Host < Vagrant.plugin("2", :host)
6
6
  def detect?(env)
7
- File.exist?("/etc/arch-release")
7
+ File.exist?("/etc/arch-release") && !File.exist?("/etc/artix-release")
8
8
  end
9
9
  end
10
10
  end
@@ -10,15 +10,6 @@ require "vagrant/util/presence"
10
10
  require "vagrant/util/experimental"
11
11
  require "vagrant/util/map_command_options"
12
12
 
13
- $LOAD_PATH << Vagrant.source_root.join("lib/vagrant/protobufs/proto").to_s
14
-
15
- require "vagrant/protobufs/proto/protostructure_pb"
16
- require "vagrant/protobufs/proto/vagrant_plugin_sdk/plugin_pb"
17
- require "vagrant/protobufs/proto/vagrant_plugin_sdk/plugin_services_pb"
18
-
19
- # Include mappers
20
- require Vagrant.source_root.join("plugins/commands/serve/command").to_s
21
-
22
13
  require File.expand_path("../vm_provisioner", __FILE__)
23
14
  require File.expand_path("../vm_subvm", __FILE__)
24
15
  require File.expand_path("../disk", __FILE__)
@@ -231,6 +231,7 @@ module VagrantPlugins
231
231
  b2.use HostMachineSyncFolders
232
232
  b2.use PrepareNFSValidIds
233
233
  b2.use SyncedFolderCleanup
234
+ b2.use SyncedFolders
234
235
  b2.use PrepareNFSSettings
235
236
  b2.use PrepareNetworks
236
237
  b2.use Login
@@ -248,7 +249,6 @@ module VagrantPlugins
248
249
  b3.use ForwardedPorts # This action converts the `ports` param into proper network configs
249
250
  b3.use PrepareForwardedPortCollisionParams
250
251
  b3.use HandleForwardedPortCollisions
251
- b3.use SyncedFolders
252
252
  b3.use Pull
253
253
  b3.use Create
254
254
  b3.use WaitForRunning
@@ -268,7 +268,6 @@ module VagrantPlugins
268
268
  end
269
269
  else
270
270
  # We're in a run command, so we do things a bit differently.
271
- b2.use SyncedFolders
272
271
  b2.use Create
273
272
  end
274
273
  end
@@ -140,6 +140,9 @@ module VagrantPlugins
140
140
  all_containers.each do |c|
141
141
  container_info = inspect_container(c)
142
142
 
143
+ active = container_info["State"]["Running"]
144
+ next unless active # Ignore used ports on inactive containers
145
+
143
146
  if container_info["HostConfig"]["PortBindings"]
144
147
  port_bindings = container_info["HostConfig"]["PortBindings"]
145
148
  next if port_bindings.empty? # Nothing defined, but not nil either
@@ -233,9 +236,22 @@ module VagrantPlugins
233
236
  execute('docker', 'ps', '-a', '-q', '--no-trunc').to_s.split
234
237
  end
235
238
 
239
+ # Attempts to first use the docker-cli tool to inspect the default bridge subnet
240
+ # Falls back to using /sbin/ip if that fails
241
+ #
236
242
  # @return [String] IP address of the docker bridge
237
243
  def docker_bridge_ip
238
- output = execute('/sbin/ip', '-4', 'addr', 'show', 'scope', 'global', 'docker0')
244
+ bridge = inspect_network("bridge")&.first
245
+ if bridge
246
+ bridge_ip = bridge.dig("IPAM", "Config", 0, "Gateway")
247
+ end
248
+ return bridge_ip if bridge_ip
249
+ @logger.debug("Failed to get bridge ip from docker, falling back to `ip`")
250
+ docker_bridge_ip_fallback
251
+ end
252
+
253
+ def docker_bridge_ip_fallback
254
+ output = execute('ip', '-4', 'addr', 'show', 'scope', 'global', 'docker0')
239
255
  if output =~ /^\s+inet ([0-9.]+)\/[0-9]+\s+/
240
256
  return $1.to_s
241
257
  else
@@ -1,4 +1,5 @@
1
1
  require "json"
2
+ require "log4r"
2
3
 
3
4
  require "vagrant/util/powershell"
4
5
 
@@ -26,6 +27,7 @@ module VagrantPlugins
26
27
 
27
28
  def initialize(id)
28
29
  @vm_id = id
30
+ @logger = Log4r::Logger.new("vagrant::hyperv::driver")
29
31
  end
30
32
 
31
33
  # @return [Boolean] Supports VMCX
@@ -294,7 +296,10 @@ module VagrantPlugins
294
296
  # @param [String] enhanced session transport type of the VM
295
297
  # @return [nil]
296
298
  def set_enhanced_session_transport_type(transport_type)
297
- execute(:set_enhanced_session_transport_type, VmID: vm_id, type: transport_type)
299
+ result = execute(:set_enhanced_session_transport_type, VmID: vm_id, type: transport_type)
300
+ if !result.nil?
301
+ @logger.debug("EnhancedSessionTransportType is not supported by this version of hyperv, ignoring")
302
+ end
298
303
  end
299
304
 
300
305
  protected
@@ -17,8 +17,17 @@ try {
17
17
  }
18
18
 
19
19
  try {
20
- Hyper-V\Set-VM -VM $VM -EnhancedSessionTransportType $Type
20
+ # HyperV 1.1 (Windows Server 2012R2) crashes on this call. Vagrantfiles before 2.2.10 do break without skipping this.
21
+ $present = Get-Command Hyper-V\Set-VM -ParameterName EnhancedSessionTransportType -ErrorAction SilentlyContinue
22
+ if($present) {
23
+ Hyper-V\Set-VM -VM $VM -EnhancedSessionTransportType $Type
24
+ }else{
25
+ $message = @{
26
+ "EnhancedSessionTransportTypeSupportPresent"=$false;
27
+ } | ConvertTo-Json
28
+ Write-OutputMessage $message
29
+ }
21
30
  } catch {
22
- Write-ErrorMessage "Failed to assign EnhancedSessionTransportType to ${Type}: ${PSItem}"
31
+ Write-ErrorMessage "Failed to assign EnhancedSessionTransportType to ${Type}:${PSItem}"
23
32
  exit 1
24
33
  }
@@ -1,6 +1,21 @@
1
1
  # Always stop when errors are encountered unless instructed not to
2
2
  $ErrorActionPreference = "Stop"
3
3
 
4
+ # Check the version of Powershell currently in use. If it's
5
+ # under 7.3.0 we need to restrict the maximum version of the
6
+ # security module to prevent errors.
7
+ # Source: https://github.com/PowerShell/PowerShell/issues/18530
8
+ $checkVersion = $PSVersionTable.PSVersion
9
+ if($checkVersion -eq "") {
10
+ $checkVersion = $(Get-Host).Version
11
+ }
12
+
13
+ if([System.Version]$checkVersion -lt [System.Version]"7.3.0") {
14
+ Import-Module Microsoft.Powershell.Security -MaximumVersion 3.0.0.0
15
+ } else {
16
+ Import-Module Microsoft.Powershell.Security
17
+ }
18
+
4
19
  # Vagrant VM creation functions
5
20
 
6
21
  function New-VagrantVM {
@@ -16,12 +16,6 @@ module VagrantPlugins
16
16
  # which will break us out of execution of the middleware sequence.
17
17
  Driver::Meta.new.verify!
18
18
 
19
- if Vagrant::Util::Platform.windows? && Vagrant::Util::Platform.windows_hyperv_enabled?
20
- @logger.error("Virtualbox and Hyper-V cannot be used together at the same time on Windows and will result in a system crash.")
21
-
22
- raise Vagrant::Errors::HypervVirtualBoxError
23
- end
24
-
25
19
  # Carry on.
26
20
  @app.call(env)
27
21
  end
@@ -71,6 +71,21 @@ module VagrantPlugins
71
71
  type = :internal_network
72
72
  end
73
73
 
74
+ if !options.key?(:type) && options.key?(:ip)
75
+ begin
76
+ addr = IPAddr.new(options[:ip])
77
+ options[:type] = if addr.ipv4?
78
+ :static
79
+ else
80
+ :static6
81
+ end
82
+ rescue IPAddr::Error => err
83
+ raise Vagrant::Errors::NetworkAddressInvalid,
84
+ address: options[:ip], mask: options[:netmask],
85
+ error: err.message
86
+ end
87
+ end
88
+
74
89
  # Configure it
75
90
  data = nil
76
91
  if type == :private_network
@@ -462,7 +462,7 @@ module VagrantPlugins
462
462
  # Append in the options for subprocess
463
463
  # NOTE: We include the LANG env var set to C to prevent command output
464
464
  # from being localized
465
- command << { notify: [:stdout, :stderr], env: {LANG: "C"}}
465
+ command << { notify: [:stdout, :stderr], env: env_lang}
466
466
 
467
467
  Vagrant::Util::Busy.busy(int_callback) do
468
468
  Vagrant::Util::Subprocess.execute(@vboxmanage_path, *command, &block)
@@ -471,6 +471,52 @@ module VagrantPlugins
471
471
  raise Vagrant::Errors::VBoxManageLaunchError,
472
472
  message: e.to_s
473
473
  end
474
+
475
+ private
476
+
477
+ # List of LANG values to attempt to use
478
+ LANG_VARIATIONS = %w(C.UTF-8 C.utf8 en_US.UTF-8 en_US.utf8 C POSIX).map(&:freeze).freeze
479
+
480
+ # By default set the LANG to C. If the host has the locale command
481
+ # available, check installed locales and verify C is included (or
482
+ # use C variant if available).
483
+ def env_lang
484
+ # If already set, just return immediately
485
+ return @env_lang if @env_lang
486
+
487
+ # Default the LANG to C
488
+ @env_lang = {LANG: "C"}
489
+
490
+ # If the locale command is not available, return default
491
+ return @env_lang if !Vagrant::Util::Which.which("locale")
492
+
493
+ @logger.debug("validating LANG value for virtualbox cli commands")
494
+ # Get list of available locales on the system
495
+ result = Vagrant::Util::Subprocess.execute("locale", "-a")
496
+
497
+ # If the command results in an error, just log the error
498
+ # and return the default value
499
+ if result.exit_code != 0
500
+ @logger.warn("locale command failed (exit code: #{result.exit_code}): #{result.stderr}")
501
+ return @env_lang
502
+ end
503
+ available = result.stdout.lines.map(&:chomp).find_all { |l|
504
+ l == "C" || l == "POSIX" || l.start_with?("C.") || l.start_with?("en_US.")
505
+ }
506
+ @logger.debug("list of available C locales: #{available.inspect}")
507
+
508
+ # Attempt to find a valid LANG from locale list
509
+ lang = LANG_VARIATIONS.detect { |l| available.include?(l) }
510
+
511
+ if lang
512
+ @logger.debug("valid variation found for LANG value: #{lang}")
513
+ @env_lang[:LANG] = lang
514
+ end
515
+
516
+ @logger.debug("LANG value set: #{@env_lang[:LANG].inspect}")
517
+
518
+ @env_lang
519
+ end
474
520
  end
475
521
  end
476
522
  end
@@ -30,8 +30,14 @@ module VagrantPlugins
30
30
 
31
31
  # Prune any hostonly interfaces in the list
32
32
  ifaces.delete_if { |i|
33
- addr = IPAddr.new(i[:ip]).mask(i[:netmask])
34
- hostonly_ifaces.include?(addr)
33
+ addr = begin
34
+ IPAddr.new(i[:ip]).mask(i[:netmask])
35
+ rescue IPAddr::Error => err
36
+ @logger.warn("skipping bridged interface due to parse error #{err} (#{i}) ")
37
+ nil
38
+ end
39
+ addr.nil? ||
40
+ hostonly_ifaces.include?(addr)
35
41
  }
36
42
 
37
43
  ifaces
@@ -154,21 +160,32 @@ module VagrantPlugins
154
160
  # reformat the information to line up with how
155
161
  # the interfaces is structured
156
162
  read_host_only_networks.map do |net|
157
- addr = IPAddr.new(net[:lowerip])
163
+ addr = begin
164
+ IPAddr.new(net[:lowerip])
165
+ rescue IPAddr::Error => err
166
+ @logger.warn("invalid host only network lower IP encountered: #{err} (#{net})")
167
+ next
168
+ end
169
+ # Address of the interface will be the lower bound of the range or
170
+ # the first available address in the subnet
171
+ if addr == addr.mask(net[:networkmask])
172
+ addr = addr.succ
173
+ end
174
+
158
175
  net[:netmask] = net[:networkmask]
159
176
  if addr.ipv4?
160
- net[:ip] = addr.mask(net[:netmask]).succ.to_s
177
+ net[:ip] = addr.to_s
161
178
  net[:ipv6] = ""
162
179
  else
163
180
  net[:ip] = ""
164
- net[:ipv6] = addr.mask(net[:netmwask]).succ.to_s
181
+ net[:ipv6] = addr.to_s
165
182
  net[:ipv6_prefix] = net[:netmask]
166
183
  end
167
184
 
168
185
  net[:status] = net[:state] == "Enabled" ? "Up" : "Down"
169
186
 
170
187
  net
171
- end
188
+ end.compact
172
189
  end
173
190
 
174
191
  def read_network_interfaces
@@ -240,7 +257,7 @@ module VagrantPlugins
240
257
 
241
258
  File.open(result[:path], "r") do |f|
242
259
  doc = REXML::Document.new(f)
243
- networks = REXML::XPath.each(doc.root, "//Adapter")
260
+ networks = REXML::XPath.each(doc.root, "Machine/Hardware/Network/Adapter")
244
261
  networks.each do |net|
245
262
  REXML::XPath.each(doc.root, net.xpath + "/NAT/Forwarding") do |fwd|
246
263
  # Result Array values:
@@ -37,7 +37,11 @@ INLINE_CRIPT
37
37
 
38
38
  def self.pip_setup(machine, pip_install_cmd = "")
39
39
  machine.communicate.sudo "apt-get update -y -qq"
40
- machine.communicate.sudo "DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --option \"Dpkg::Options::=--force-confold\" build-essential curl git libssl-dev libffi-dev python-dev-is-python3"
40
+ python_dev_pkg = "python-dev"
41
+ if machine.communicate.test "apt-cache show python-dev-is-python3"
42
+ python_dev_pkg = "python-dev-is-python3"
43
+ end
44
+ machine.communicate.sudo "DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --option \"Dpkg::Options::=--force-confold\" build-essential curl git libssl-dev libffi-dev #{python_dev_pkg}"
41
45
  Pip::get_pip machine, pip_install_cmd
42
46
  end
43
47
 
@@ -10,8 +10,8 @@ module VagrantPlugins
10
10
  def self.ansible_installed(machine, version)
11
11
  command = 'test -x "$(command -v ansible)"'
12
12
 
13
- if !version.empty?
14
- command << "&& ansible --version | grep 'ansible #{version}'"
13
+ unless version.empty?
14
+ command << "&& [[ $(python3 -c \"import importlib.metadata; print(importlib.metadata.version('ansible'))\") == \"#{version}\" ]]"
15
15
  end
16
16
 
17
17
  machine.communicate.test command, sudo: false
@@ -75,7 +75,7 @@ module VagrantPlugins
75
75
  raw_output = ""
76
76
 
77
77
  result = @machine.communicate.execute(
78
- "ansible --version",
78
+ "python3 -c \"import importlib.metadata; print('ansible ' + importlib.metadata.version('ansible'))\"",
79
79
  error_class: Ansible::Errors::AnsibleNotFoundOnGuest,
80
80
  error_key: :ansible_not_found_on_guest) do |type, output|
81
81
  if type == :stdout && output.lines[0]
@@ -108,8 +108,9 @@ module VagrantPlugins
108
108
  end
109
109
 
110
110
  def gather_ansible_version
111
- raw_output = ""
112
- command = %w(ansible --version)
111
+ raw_output = ''
112
+ command = ['python3', '-c',
113
+ "\"import importlib.metadata; print('ansible ' + importlib.metadata.version('ansible'))\""]
113
114
 
114
115
  command << {
115
116
  notify: [:stdout, :stderr]
@@ -27,18 +27,15 @@ module VagrantPlugins
27
27
 
28
28
  if exclude.start_with?("/")
29
29
  start_anchor = true
30
- exclude = exclude[1..-1]
31
30
  end
32
31
 
33
- exclude = "#{exclude}/" if !exclude.end_with?("/")
34
- exclude = "^#{exclude}"
35
- exclude += ".*" if !start_anchor
32
+ exclude = "#{exclude}/" if !exclude.end_with?("/") if start_anchor
33
+ exclude = "^#{exclude}" if start_anchor
34
+ exclude += ".*" if (!start_anchor && !exclude.end_with?("*"))
36
35
 
37
36
  # This is not an ideal solution, but it's a start. We can improve and
38
37
  # keep unit tests passing in the future.
39
38
  exclude = exclude.gsub("**", "|||GLOBAL|||")
40
- exclude = exclude.gsub("*", "|||PATH|||")
41
- exclude = exclude.gsub("|||PATH|||", "[^/]*")
42
39
  exclude = exclude.gsub("|||GLOBAL|||", ".*")
43
40
 
44
41
  Regexp.new(exclude)
@@ -54,6 +54,13 @@ Vagrant.configure("2") do |config|
54
54
  # argument is a set of non-required options.
55
55
  # config.vm.synced_folder "../data", "/vagrant_data"
56
56
 
57
+ # Disable the default share of the current code directory. Doing this
58
+ # provides improved isolation between the vagrant box and your host
59
+ # by making sure your Vagrantfile isn't accessable to the vagrant box.
60
+ # If you use this you may want to enable additional shared subfolders as
61
+ # shown above.
62
+ # config.vm.synced_folder ".", "/vagrant", disabled: true
63
+
57
64
  # Provider-specific configuration so you can fine-tune various
58
65
  # backing providers for Vagrant. These expose provider-specific options.
59
66
  # Example for VirtualBox:
@@ -895,6 +895,13 @@ en:
895
895
  support.
896
896
 
897
897
  State file path: %{state_file}
898
+ download_already_in_progress_error: |-
899
+ Download to global Vagrant location already in progress. This
900
+ may be caused by other Vagrant processes attempting to download
901
+ a file to the same location.
902
+
903
+ Download path: %{dest_path}
904
+ Lock file path: %{lock_file_path}
898
905
  downloader_error: |-
899
906
  An error occurred while downloading the remote file. The error
900
907
  message, if any, is reproduced below. Please fix this error and try
@@ -1668,6 +1675,11 @@ en:
1668
1675
  uploader_interrupted: |-
1669
1676
  The upload was interrupted by an external signal. It did not
1670
1677
  complete.
1678
+ vagrant_locked: |-
1679
+ The requested Vagrant action is locked. This may be caused
1680
+ by other Vagrant processes attempting to do a similar action.
1681
+
1682
+ Lock file path: %{lock_file_path}
1671
1683
  vagrantfile_exists: |-
1672
1684
  `Vagrantfile` already exists in this directory. Remove it before
1673
1685
  running `vagrant init`.
data/tools.go ADDED
@@ -0,0 +1,10 @@
1
+ // Copyright (c) HashiCorp, Inc.
2
+ // SPDX-License-Identifier: MPL-2.0
3
+
4
+ //go:build tools
5
+
6
+ package tools
7
+
8
+ import (
9
+ _ "github.com/randall77/makefat"
10
+ )
data/vagrant.gemspec CHANGED
@@ -21,23 +21,23 @@ Gem::Specification.new do |s|
21
21
  s.add_dependency 'googleapis-common-protos-types', '~> 1.3'
22
22
  s.add_dependency "grpc"
23
23
  s.add_dependency "hashicorp-checkpoint", "~> 0.1.5"
24
- s.add_dependency "i18n", "~> 1.8"
25
- s.add_dependency "listen", "~> 3.6"
24
+ s.add_dependency "i18n", "~> 1.12"
25
+ s.add_dependency "listen", "~> 3.7"
26
26
  s.add_dependency "log4r", "~> 1.1.9", "< 1.1.11"
27
27
  s.add_dependency "mime-types", "~> 3.3"
28
- s.add_dependency "net-ftp", "~> 0.1"
28
+ s.add_dependency "net-ftp", "~> 0.2"
29
29
  s.add_dependency "net-ssh", "~> 7.0"
30
30
  s.add_dependency "net-sftp", "~> 4.0"
31
31
  s.add_dependency "net-scp", "~> 4.0"
32
32
  s.add_dependency "rb-kqueue", "~> 0.2.0"
33
33
  s.add_dependency "rexml", "~> 3.2"
34
- s.add_dependency "rgl", "~> 0.5.7"
35
- s.add_dependency "rubyzip", "~> 2.0"
34
+ s.add_dependency "rgl", "~> 0.5.10"
35
+ s.add_dependency "rubyzip", "~> 2.3.2"
36
36
  s.add_dependency "vagrant_cloud", "~> 3.0.5"
37
- s.add_dependency "wdm", "~> 0.1.0"
38
- s.add_dependency "winrm", ">= 2.3.4", "< 3.0"
39
- s.add_dependency "winrm-elevated", ">= 1.2.1", "< 2.0"
40
- s.add_dependency "winrm-fs", ">= 1.3.4", "< 2.0"
37
+ s.add_dependency "wdm", "~> 0.1.1"
38
+ s.add_dependency "winrm", ">= 2.3.6", "< 3.0"
39
+ s.add_dependency "winrm-elevated", ">= 1.2.3", "< 2.0"
40
+ s.add_dependency "winrm-fs", ">= 1.3.5", "< 2.0"
41
41
 
42
42
  # Needed for go generate to use grpc_tools_ruby_protoc
43
43
  s.add_development_dependency "grpc-tools", "~> 1.41"
data/version.txt CHANGED
@@ -1 +1 @@
1
- 2.3.3.0
1
+ 2.3.6.0