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.
- 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
|