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.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/CHANGELOG.md +42 -0
- data/Gemfile.lock +32 -32
- data/Makefile +53 -9
- data/contrib/bash/completion.sh +15 -0
- data/go.mod +1 -1
- data/go.sum +2 -10
- data/lib/vagrant/action/builtin/box_add.rb +16 -6
- data/lib/vagrant/environment.rb +1 -1
- data/lib/vagrant/errors.rb +8 -0
- data/lib/vagrant/plugin/v2/config.rb +0 -5
- data/lib/vagrant/shared_helpers.rb +21 -0
- data/lib/vagrant/util/file_mutex.rb +47 -0
- data/lib/vagrant/util/platform.rb +8 -2
- data/lib/vagrant/util.rb +1 -0
- data/lib/vagrant.rb +1 -0
- data/pkg/vagrant-unbundled-2.3.3.0.gem +0 -0
- data/plugins/commands/box/command/outdated.rb +1 -1
- data/plugins/commands/serve/command.rb +22 -24
- data/plugins/commands/serve/constants.rb +8 -0
- data/plugins/communicators/ssh/communicator.rb +11 -20
- data/plugins/hosts/arch/host.rb +1 -1
- data/plugins/kernel_v2/config/vm.rb +0 -9
- data/plugins/providers/docker/action.rb +1 -2
- data/plugins/providers/docker/driver.rb +17 -1
- data/plugins/providers/hyperv/driver.rb +6 -1
- data/plugins/providers/hyperv/scripts/set_enhanced_session_transport_type.ps1 +11 -2
- data/plugins/providers/hyperv/scripts/utils/VagrantVM/VagrantVM.psm1 +15 -0
- data/plugins/providers/virtualbox/action/check_virtualbox.rb +0 -6
- data/plugins/providers/virtualbox/action/network.rb +15 -0
- data/plugins/providers/virtualbox/driver/base.rb +47 -1
- data/plugins/providers/virtualbox/driver/version_7_0.rb +24 -7
- data/plugins/provisioners/ansible/cap/guest/debian/ansible_install.rb +5 -1
- data/plugins/provisioners/ansible/cap/guest/posix/ansible_installed.rb +2 -2
- data/plugins/provisioners/ansible/provisioner/guest.rb +1 -1
- data/plugins/provisioners/ansible/provisioner/host.rb +3 -2
- data/plugins/synced_folders/rsync/helper.rb +3 -6
- data/templates/commands/init/Vagrantfile.erb +7 -0
- data/templates/locales/en.yml +12 -0
- data/tools.go +10 -0
- data/vagrant.gemspec +9 -9
- data/version.txt +1 -1
- metadata +24 -20
@@ -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
|
data/plugins/hosts/arch/host.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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}
|
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:
|
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 =
|
34
|
-
|
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 =
|
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.
|
177
|
+
net[:ip] = addr.to_s
|
161
178
|
net[:ipv6] = ""
|
162
179
|
else
|
163
180
|
net[:ip] = ""
|
164
|
-
net[:ipv6] = addr.
|
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, "
|
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
|
-
|
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
|
-
|
14
|
-
command << "&&
|
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
|
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 =
|
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:
|
data/templates/locales/en.yml
CHANGED
@@ -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
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.
|
25
|
-
s.add_dependency "listen", "~> 3.
|
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.
|
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.
|
35
|
-
s.add_dependency "rubyzip", "~> 2.
|
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.
|
38
|
-
s.add_dependency "winrm", ">= 2.3.
|
39
|
-
s.add_dependency "winrm-elevated", ">= 1.2.
|
40
|
-
s.add_dependency "winrm-fs", ">= 1.3.
|
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.
|
1
|
+
2.3.6.0
|