vagrant-unbundled 2.3.3.0 → 2.3.6.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.
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