vagrant 2.4.4 → 2.4.6
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/CHANGELOG.md +27 -1
- data/lib/vagrant/action/builtin/box_add.rb +51 -7
- data/lib/vagrant/action/builtin/cloud_init_setup.rb +56 -15
- data/lib/vagrant/action/builtin/cloud_init_wait.rb +28 -10
- data/lib/vagrant/action/builtin/disk.rb +4 -1
- data/lib/vagrant/box_metadata.rb +8 -2
- data/lib/vagrant/bundler.rb +8 -6
- data/lib/vagrant/errors.rb +16 -0
- data/lib/vagrant/util/file_checksum.rb +59 -50
- data/lib/vagrant/util/mime.rb +1 -1
- data/plugins/commands/autocomplete/command/root.rb +8 -10
- data/plugins/commands/box/command/root.rb +10 -12
- data/plugins/commands/cloud/auth/root.rb +10 -12
- data/plugins/commands/cloud/box/root.rb +10 -12
- data/plugins/commands/cloud/provider/root.rb +10 -12
- data/plugins/commands/cloud/root.rb +10 -12
- data/plugins/commands/cloud/version/root.rb +10 -12
- data/plugins/commands/plugin/command/root.rb +10 -12
- data/plugins/communicators/none/communicator.rb +46 -0
- data/plugins/communicators/none/plugin.rb +26 -0
- data/plugins/hosts/windows/cap/fs_iso.rb +25 -3
- data/plugins/kernel_v2/config/vm.rb +3 -0
- data/plugins/providers/hyperv/action/import.rb +16 -2
- data/plugins/providers/hyperv/action.rb +2 -0
- data/plugins/providers/hyperv/scripts/import_vm.ps1 +8 -1
- data/plugins/providers/hyperv/scripts/utils/VagrantVM/VagrantVM.psm1 +22 -0
- data/plugins/providers/virtualbox/action/network.rb +6 -3
- data/plugins/providers/virtualbox/action.rb +2 -11
- data/plugins/providers/virtualbox/driver/base.rb +5 -4
- data/plugins/providers/virtualbox/driver/meta.rb +1 -0
- data/plugins/providers/virtualbox/driver/version_4_0.rb +2 -0
- data/plugins/providers/virtualbox/driver/version_4_1.rb +2 -0
- data/plugins/providers/virtualbox/driver/version_4_2.rb +2 -0
- data/plugins/providers/virtualbox/driver/version_4_3.rb +2 -0
- data/plugins/providers/virtualbox/driver/version_5_0.rb +2 -0
- data/plugins/providers/virtualbox/driver/version_7_0.rb +23 -20
- data/templates/locales/en.yml +43 -0
- data/vagrant.gemspec +0 -3
- data/version.txt +1 -1
- metadata +4 -44
@@ -55,18 +55,16 @@ module VagrantPlugins
|
|
55
55
|
opts.banner = "Usage: vagrant cloud provider <subcommand> [<args>]"
|
56
56
|
opts.separator ""
|
57
57
|
opts.separator "For various provider actions with Vagrant Cloud"
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
opts.separator " #{key}"
|
69
|
-
end
|
58
|
+
opts.separator ""
|
59
|
+
opts.separator "Available subcommands:"
|
60
|
+
|
61
|
+
# Add the available subcommands as separators in order to print them
|
62
|
+
# out as well.
|
63
|
+
keys = []
|
64
|
+
@subcommands.each { |key, value| keys << key.to_s }
|
65
|
+
|
66
|
+
keys.sort.each do |key|
|
67
|
+
opts.separator " #{key}"
|
70
68
|
end
|
71
69
|
opts.separator ""
|
72
70
|
opts.separator "For help on any individual subcommand run `vagrant cloud provider <subcommand> -h`"
|
@@ -83,18 +83,16 @@ module VagrantPlugins
|
|
83
83
|
opts.separator ""
|
84
84
|
opts.separator "The cloud command can be used for taking actions against"
|
85
85
|
opts.separator "Vagrant Cloud like searching or uploading a Vagrant Box"
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
opts.separator " #{key.ljust(15)} #{@subcommand_helptext[key.to_sym]}"
|
97
|
-
end
|
86
|
+
opts.separator ""
|
87
|
+
opts.separator "Available subcommands:"
|
88
|
+
|
89
|
+
# Add the available subcommands as separators in order to print them
|
90
|
+
# out as well.
|
91
|
+
keys = []
|
92
|
+
@subcommands.each { |key, value| keys << key.to_s }
|
93
|
+
|
94
|
+
keys.sort.each do |key|
|
95
|
+
opts.separator " #{key.ljust(15)} #{@subcommand_helptext[key.to_sym]}"
|
98
96
|
end
|
99
97
|
opts.separator ""
|
100
98
|
opts.separator "For help on any individual subcommand run `vagrant cloud <subcommand> -h`"
|
@@ -59,18 +59,16 @@ module VagrantPlugins
|
|
59
59
|
opts.banner = "Usage: vagrant cloud version <subcommand> [<args>]"
|
60
60
|
opts.separator ""
|
61
61
|
opts.separator "For taking various actions against a Vagrant box's version attribute on Vagrant Cloud"
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
opts.separator " #{key}"
|
73
|
-
end
|
62
|
+
opts.separator ""
|
63
|
+
opts.separator "Available subcommands:"
|
64
|
+
|
65
|
+
# Add the available subcommands as separators in order to print them
|
66
|
+
# out as well.
|
67
|
+
keys = []
|
68
|
+
@subcommands.each { |key, value| keys << key.to_s }
|
69
|
+
|
70
|
+
keys.sort.each do |key|
|
71
|
+
opts.separator " #{key}"
|
74
72
|
end
|
75
73
|
opts.separator ""
|
76
74
|
opts.separator "For help on any individual subcommand run `vagrant cloud version <subcommand> -h`"
|
@@ -73,18 +73,16 @@ module VagrantPlugins
|
|
73
73
|
def help
|
74
74
|
opts = OptionParser.new do |o|
|
75
75
|
o.banner = "Usage: vagrant plugin <command> [<args>]"
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
o.separator " #{key}"
|
87
|
-
end
|
76
|
+
o.separator ""
|
77
|
+
o.separator "Available subcommands:"
|
78
|
+
|
79
|
+
# Add the available subcommands as separators in order to print them
|
80
|
+
# out as well.
|
81
|
+
keys = []
|
82
|
+
@subcommands.each { |key, value| keys << key.to_s }
|
83
|
+
|
84
|
+
keys.sort.each do |key|
|
85
|
+
o.separator " #{key}"
|
88
86
|
end
|
89
87
|
o.separator ""
|
90
88
|
o.separator "For help on any individual command run `vagrant plugin COMMAND -h`"
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Copyright (c) HashiCorp, Inc.
|
2
|
+
# SPDX-License-Identifier: BUSL-1.1
|
3
|
+
|
4
|
+
require "log4r"
|
5
|
+
require "vagrant"
|
6
|
+
|
7
|
+
module VagrantPlugins
|
8
|
+
module CommunicatorNone
|
9
|
+
# This class provides no communication with the VM.
|
10
|
+
# It allows Vagrant to manage a machine lifecycle
|
11
|
+
# while not actually connecting to it. The communicator
|
12
|
+
# stubs out all methods to be successful allowing
|
13
|
+
# Vagrant to proceed "as normal" without actually
|
14
|
+
# doing anything.
|
15
|
+
class Communicator < Vagrant.plugin("2", :communicator)
|
16
|
+
def self.match?(_)
|
17
|
+
# Any machine can be not communicated with
|
18
|
+
true
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize(_)
|
22
|
+
@logger = Log4r::Logger.new(self.class.name.downcase)
|
23
|
+
end
|
24
|
+
|
25
|
+
def ready?
|
26
|
+
@logger.debug("#ready? stub called on none")
|
27
|
+
true
|
28
|
+
end
|
29
|
+
|
30
|
+
def execute(*_)
|
31
|
+
@logger.debug("#execute stub called on none")
|
32
|
+
0
|
33
|
+
end
|
34
|
+
|
35
|
+
def sudo(*_)
|
36
|
+
@logger.debug("#sudo stub called on none")
|
37
|
+
0
|
38
|
+
end
|
39
|
+
|
40
|
+
def test(*_)
|
41
|
+
@logger.debug("#test stub called on none")
|
42
|
+
true
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Copyright (c) HashiCorp, Inc.
|
2
|
+
# SPDX-License-Identifier: BUSL-1.1
|
3
|
+
|
4
|
+
require "vagrant"
|
5
|
+
|
6
|
+
module VagrantPlugins
|
7
|
+
Vagrant::Util::Experimental.guard_with(:none_communicator) do
|
8
|
+
module CommunicatorNone
|
9
|
+
class Plugin < Vagrant.plugin("2")
|
10
|
+
name "none communicator"
|
11
|
+
description <<-DESC
|
12
|
+
This plugin provides no communication to remote machines.
|
13
|
+
It allows Vagrant to manage remote machines without the
|
14
|
+
ability to connect to them for configuration/provisioning.
|
15
|
+
Any calls to methods provided by this communicator will
|
16
|
+
always be successful.
|
17
|
+
DESC
|
18
|
+
|
19
|
+
communicator("none") do
|
20
|
+
require File.expand_path("../communicator", __FILE__)
|
21
|
+
Communicator
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -12,14 +12,22 @@ module VagrantPlugins
|
|
12
12
|
|
13
13
|
@@logger = Log4r::Logger.new("vagrant::host::windows::fs_iso")
|
14
14
|
|
15
|
-
BUILD_ISO_CMD = "oscdimg".freeze
|
15
|
+
BUILD_ISO_CMD = "oscdimg.exe".freeze
|
16
|
+
DEPLOYMENT_KIT_PATHS = [
|
17
|
+
"C:/Program Files (x86)/Windows Kits/10/Assessment and Deployment Kit/Deployment Tools".freeze,
|
18
|
+
].freeze
|
16
19
|
|
17
20
|
# Check that the host has the ability to generate ISOs
|
18
21
|
#
|
19
22
|
# @param [Vagrant::Environment] env
|
20
23
|
# @return [Boolean]
|
21
24
|
def self.isofs_available(env)
|
22
|
-
|
25
|
+
begin
|
26
|
+
oscdimg_path
|
27
|
+
true
|
28
|
+
rescue Vagrant::Errors::OscdimgCommandMissingError
|
29
|
+
false
|
30
|
+
end
|
23
31
|
end
|
24
32
|
|
25
33
|
# Generate an ISO file of the given source directory
|
@@ -36,7 +44,7 @@ module VagrantPlugins
|
|
36
44
|
source_directory = Pathname.new(source_directory)
|
37
45
|
file_destination = self.ensure_output_iso(extra_opts[:file_destination])
|
38
46
|
|
39
|
-
iso_command = [
|
47
|
+
iso_command = [oscdimg_path, "-j1", "-o", "-m"]
|
40
48
|
iso_command << "-l#{extra_opts[:volume_id]}" if extra_opts[:volume_id]
|
41
49
|
iso_command << source_directory.to_s
|
42
50
|
iso_command << file_destination.to_s
|
@@ -45,6 +53,20 @@ module VagrantPlugins
|
|
45
53
|
@@logger.info("ISO available at #{file_destination}")
|
46
54
|
file_destination
|
47
55
|
end
|
56
|
+
|
57
|
+
# @return [String] oscdimg executable
|
58
|
+
def self.oscdimg_path
|
59
|
+
return BUILD_ISO_CMD if Vagrant::Util::Which.which(BUILD_ISO_CMD)
|
60
|
+
@@logger.debug("#{BUILD_ISO_CMD} not found on PATH")
|
61
|
+
DEPLOYMENT_KIT_PATHS.each do |base|
|
62
|
+
path = File.join(base, Vagrant::Util::Platform.architecture,
|
63
|
+
"Oscdimg", BUILD_ISO_CMD)
|
64
|
+
@@logger.debug("#{BUILD_ISO_CMD} check at #{path}")
|
65
|
+
return path if File.executable?(path)
|
66
|
+
end
|
67
|
+
|
68
|
+
raise Vagrant::Errors::OscdimgCommandMissingError
|
69
|
+
end
|
48
70
|
end
|
49
71
|
end
|
50
72
|
end
|
@@ -47,6 +47,7 @@ module VagrantPlugins
|
|
47
47
|
attr_accessor :box_download_insecure
|
48
48
|
attr_accessor :box_download_location_trusted
|
49
49
|
attr_accessor :box_download_options
|
50
|
+
attr_accessor :cloud_init_first_boot_only
|
50
51
|
attr_accessor :communicator
|
51
52
|
attr_accessor :graceful_halt_timeout
|
52
53
|
attr_accessor :guest
|
@@ -87,6 +88,7 @@ module VagrantPlugins
|
|
87
88
|
@box_version = UNSET_VALUE
|
88
89
|
@allow_hosts_modification = UNSET_VALUE
|
89
90
|
@clone = UNSET_VALUE
|
91
|
+
@cloud_init_first_boot_only = UNSET_VALUE
|
90
92
|
@communicator = UNSET_VALUE
|
91
93
|
@graceful_halt_timeout = UNSET_VALUE
|
92
94
|
@guest = UNSET_VALUE
|
@@ -536,6 +538,7 @@ module VagrantPlugins
|
|
536
538
|
@box_extra_download_options = Vagrant::Util::MapCommandOptions.map_to_command_options(@box_download_options)
|
537
539
|
@allow_hosts_modification = true if @allow_hosts_modification == UNSET_VALUE
|
538
540
|
@clone = nil if @clone == UNSET_VALUE
|
541
|
+
@cloud_init_first_boot_only = @cloud_init_first_boot_only == UNSET_VALUE ? true : !!@cloud_init_first_boot_only
|
539
542
|
@communicator = nil if @communicator == UNSET_VALUE
|
540
543
|
@graceful_halt_timeout = 60 if @graceful_halt_timeout == UNSET_VALUE
|
541
544
|
@guest = nil if @guest == UNSET_VALUE
|
@@ -70,14 +70,28 @@ module VagrantPlugins
|
|
70
70
|
"LinkedClone" => !!env[:machine].provider_config.linked_clone,
|
71
71
|
"SourcePath" => Vagrant::Util::Platform.wsl_to_windows_path(image_path).gsub("/", "\\"),
|
72
72
|
"VMName" => env[:machine].provider_config.vmname,
|
73
|
+
"Memory" => env[:machine].provider_config.memory,
|
74
|
+
"MaxMemory" => env[:machine].provider_config.maxmemory,
|
75
|
+
"Processors" => env[:machine].provider_config.cpus,
|
73
76
|
}
|
74
77
|
|
75
|
-
|
76
78
|
env[:ui].detail("Creating and registering the VM...")
|
77
79
|
server = env[:machine].provider.driver.import(options)
|
78
80
|
|
81
|
+
@logger.debug("import result value: #{server.inspect}")
|
82
|
+
|
83
|
+
sid = case server["id"]
|
84
|
+
when String
|
85
|
+
server["id"]
|
86
|
+
when Array
|
87
|
+
server["id"].first
|
88
|
+
else
|
89
|
+
raise TypeError,
|
90
|
+
"Expected String or Array value, received: #{server["id"].class}"
|
91
|
+
end
|
92
|
+
|
79
93
|
env[:ui].detail("Successfully imported VM")
|
80
|
-
env[:machine].id =
|
94
|
+
env[:machine].id = sid
|
81
95
|
@app.call(env)
|
82
96
|
end
|
83
97
|
end
|
@@ -152,12 +152,14 @@ module VagrantPlugins
|
|
152
152
|
b3.use NetSetMac
|
153
153
|
end
|
154
154
|
|
155
|
+
b3.use CloudInitSetup
|
155
156
|
b3.use CleanupDisks
|
156
157
|
b3.use Disk
|
157
158
|
b3.use SyncedFolderCleanup
|
158
159
|
b3.use StartInstance
|
159
160
|
b3.use WaitForIPAddress
|
160
161
|
b3.use WaitForCommunicator, [:running]
|
162
|
+
b3.use CloudInitWait
|
161
163
|
b3.use SyncedFolders
|
162
164
|
b3.use SetHostname
|
163
165
|
end
|
@@ -15,6 +15,12 @@ param(
|
|
15
15
|
[parameter (Mandatory=$false)]
|
16
16
|
[switch] $LinkedClone,
|
17
17
|
[parameter (Mandatory=$false)]
|
18
|
+
[int] $Memory = $null,
|
19
|
+
[parameter (Mandatory=$false)]
|
20
|
+
[int] $MaxMemory = $null,
|
21
|
+
[parameter (Mandatory=$false)]
|
22
|
+
[int] $Processors = $null,
|
23
|
+
[parameter (Mandatory=$false)]
|
18
24
|
[string] $VMName=$null
|
19
25
|
)
|
20
26
|
|
@@ -28,7 +34,8 @@ try {
|
|
28
34
|
}
|
29
35
|
|
30
36
|
$VM = New-VagrantVM -VMConfigFile $VMConfigFile -DestinationPath $DestinationPath `
|
31
|
-
-DataPath $DataPath -SourcePath $SourcePath -LinkedClone $linked -
|
37
|
+
-DataPath $DataPath -SourcePath $SourcePath -LinkedClone $linked -Memory $Memory `
|
38
|
+
-MaxMemory $MaxMemory -CPUCount $Processors -VMName $VMName
|
32
39
|
|
33
40
|
$Result = @{
|
34
41
|
id = $VM.Id.Guid;
|
@@ -33,6 +33,12 @@ function New-VagrantVM {
|
|
33
33
|
[string] $SourcePath,
|
34
34
|
[parameter (Mandatory=$false)]
|
35
35
|
[bool] $LinkedClone = $false,
|
36
|
+
[parameter (Mandatory=$false)]
|
37
|
+
[int] $Memory = $null,
|
38
|
+
[parameter (Mandatory=$false)]
|
39
|
+
[int] $MaxMemory = $null,
|
40
|
+
[parameter (Mandatory=$false)]
|
41
|
+
[int] $CPUCount = $null,
|
36
42
|
[parameter(Mandatory=$false)]
|
37
43
|
[string] $VMName
|
38
44
|
)
|
@@ -93,6 +99,12 @@ function New-VagrantVMVMCX {
|
|
93
99
|
[string] $SourcePath,
|
94
100
|
[parameter (Mandatory=$false)]
|
95
101
|
[bool] $LinkedClone = $false,
|
102
|
+
[parameter (Mandatory=$false)]
|
103
|
+
[int] $Memory = $null,
|
104
|
+
[parameter (Mandatory=$false)]
|
105
|
+
[int] $MaxMemory = $null,
|
106
|
+
[parameter (Mandatory=$false)]
|
107
|
+
[int] $CPUCount = $null,
|
96
108
|
[parameter(Mandatory=$false)]
|
97
109
|
[string] $VMName
|
98
110
|
)
|
@@ -127,6 +139,16 @@ function New-VagrantVMVMCX {
|
|
127
139
|
# Disconnect adapters from switches
|
128
140
|
Hyper-V\Get-VMNetworkAdapter -VM $VM | Hyper-V\Disconnect-VMNetworkAdapter
|
129
141
|
|
142
|
+
# If we have a memory value provided, set it here
|
143
|
+
if($Memory -ne $null) {
|
144
|
+
Set-VagrantVMMemory -VM $VM -Memory $Memory -MaxMemory $MaxMemory
|
145
|
+
}
|
146
|
+
|
147
|
+
# If we have a CPU count provided, set it here
|
148
|
+
if($CPUCount -ne $null) {
|
149
|
+
Set-VagrantVMCPUS -VM $VM -CPUCount $CPUCount
|
150
|
+
}
|
151
|
+
|
130
152
|
# Verify new VM
|
131
153
|
$Report = Hyper-V\Compare-VM -CompatibilityReport $VMConfig
|
132
154
|
if($Report.Incompatibilities.Length -gt 0){
|
@@ -27,7 +27,10 @@ module VagrantPlugins
|
|
27
27
|
# Version of VirtualBox on darwin platform that ignores restrictions
|
28
28
|
DARWIN_IGNORE_HOSTONLY_VALIDATE_VERSION = Gem::Version.new("7.0.0")
|
29
29
|
# Default valid range for hostonly networks
|
30
|
-
HOSTONLY_DEFAULT_RANGE = [
|
30
|
+
HOSTONLY_DEFAULT_RANGE = [
|
31
|
+
IPAddr.new("192.168.56.0/21").freeze,
|
32
|
+
IPAddr.new("fe80::/10").freeze
|
33
|
+
].freeze
|
31
34
|
|
32
35
|
include Vagrant::Util::NetworkIP
|
33
36
|
include Vagrant::Util::ScopedHashOverride
|
@@ -359,9 +362,9 @@ module VagrantPlugins
|
|
359
362
|
# Find the hostonly interface name if display name was
|
360
363
|
# provided
|
361
364
|
if options[:name]
|
362
|
-
hostif = @env[:machine].provider.driver.
|
365
|
+
hostif = @env[:machine].provider.driver.read_host_only_interfaces.detect { |interface|
|
363
366
|
interface[:name] == options[:name] ||
|
364
|
-
interface[:
|
367
|
+
interface[:display_name] == options[:name]
|
365
368
|
}
|
366
369
|
options[:name] = hostif[:name] if hostif
|
367
370
|
end
|
@@ -82,22 +82,14 @@ module VagrantPlugins
|
|
82
82
|
b.use ForwardPorts
|
83
83
|
b.use SetHostname
|
84
84
|
b.use SaneDefaults
|
85
|
-
b.use
|
86
|
-
if env[:result]
|
87
|
-
b2.use CloudInitSetup
|
88
|
-
end
|
89
|
-
end
|
85
|
+
b.use CloudInitSetup
|
90
86
|
b.use CleanupDisks
|
91
87
|
b.use Disk
|
92
88
|
b.use Customize, "pre-boot"
|
93
89
|
b.use Boot
|
94
90
|
b.use Customize, "post-boot"
|
95
91
|
b.use WaitForCommunicator, [:starting, :running, :paused]
|
96
|
-
b.use
|
97
|
-
if env[:result]
|
98
|
-
b2.use CloudInitWait
|
99
|
-
end
|
100
|
-
end
|
92
|
+
b.use CloudInitWait
|
101
93
|
b.use Customize, "post-comm"
|
102
94
|
b.use CheckGuestAdditions
|
103
95
|
end
|
@@ -424,7 +416,6 @@ module VagrantPlugins
|
|
424
416
|
end
|
425
417
|
end
|
426
418
|
|
427
|
-
b.use EnvSet, cloud_init: true
|
428
419
|
b.use action_start
|
429
420
|
end
|
430
421
|
end
|
@@ -256,10 +256,11 @@ module VagrantPlugins
|
|
256
256
|
# Each interface is represented as a Hash with the following details:
|
257
257
|
#
|
258
258
|
# {
|
259
|
-
# :name
|
260
|
-
# :ip
|
261
|
-
# :netmask
|
262
|
-
# :status
|
259
|
+
# :name => String, # interface name, e.g. "vboxnet0"
|
260
|
+
# :ip => String, # IP address of the interface, e.g. "172.28.128.1"
|
261
|
+
# :netmask => String, # netmask associated with the interface, e.g. "255.255.255.0"
|
262
|
+
# :status => String, # status of the interface, e.g. "Up", "Down"
|
263
|
+
# :display_name => String, # user friendly display name if available
|
263
264
|
# }
|
264
265
|
#
|
265
266
|
# @return [Array<Hash>] See comment above for details
|
@@ -215,26 +215,6 @@ module VagrantPlugins
|
|
215
215
|
end
|
216
216
|
end
|
217
217
|
|
218
|
-
# Generate list of host only networks
|
219
|
-
def read_host_only_networks
|
220
|
-
networks = []
|
221
|
-
current = nil
|
222
|
-
execute("list", "hostonlynets", retryable: true).split("\n").each do |line|
|
223
|
-
line.chomp!
|
224
|
-
next if line.empty?
|
225
|
-
key, value = line.split(":", 2).map(&:strip)
|
226
|
-
key = key.downcase
|
227
|
-
if key == "name"
|
228
|
-
networks.push(current) if !current.nil?
|
229
|
-
current = Vagrant::Util::HashWithIndifferentAccess.new
|
230
|
-
end
|
231
|
-
current[key] = value
|
232
|
-
end
|
233
|
-
networks.push(current) if !current.nil?
|
234
|
-
|
235
|
-
networks
|
236
|
-
end
|
237
|
-
|
238
218
|
# The initial VirtualBox 7.0 release has an issue with displaying port
|
239
219
|
# forward information. When a single port forward is defined, the forwarding
|
240
220
|
# information can be found in the `showvminfo` output. Once more than a
|
@@ -282,6 +262,29 @@ module VagrantPlugins
|
|
282
262
|
results
|
283
263
|
end
|
284
264
|
|
265
|
+
protected
|
266
|
+
|
267
|
+
# Generate list of host only networks
|
268
|
+
# NOTE: This is darwin specific
|
269
|
+
def read_host_only_networks
|
270
|
+
networks = []
|
271
|
+
current = nil
|
272
|
+
execute("list", "hostonlynets", retryable: true).split("\n").each do |line|
|
273
|
+
line.chomp!
|
274
|
+
next if line.empty?
|
275
|
+
key, value = line.split(":", 2).map(&:strip)
|
276
|
+
key = key.downcase
|
277
|
+
if key == "name"
|
278
|
+
networks.push(current) if !current.nil?
|
279
|
+
current = Vagrant::Util::HashWithIndifferentAccess.new
|
280
|
+
end
|
281
|
+
current[key] = value
|
282
|
+
end
|
283
|
+
networks.push(current) if !current.nil?
|
284
|
+
|
285
|
+
networks
|
286
|
+
end
|
287
|
+
|
285
288
|
private
|
286
289
|
|
287
290
|
# Returns if hostonlynets are enabled on the current
|
data/templates/locales/en.yml
CHANGED
@@ -510,6 +510,41 @@ en:
|
|
510
510
|
Name: %{name}
|
511
511
|
Address: %{url}
|
512
512
|
Requested provider: %{requested}
|
513
|
+
box_add_no_architecture_support: |-
|
514
|
+
The box you're attempting to add doesn't support the requested
|
515
|
+
architecture. Please find an alternate box that support the
|
516
|
+
requested architecture.
|
517
|
+
|
518
|
+
Box: %{name}
|
519
|
+
Address: %{url}
|
520
|
+
Architecture: %{architecture}
|
521
|
+
box_add_no_matching_architecture: |-
|
522
|
+
The box you're attempting to add doesn't support the requested
|
523
|
+
architecture with the current provider. The following providers
|
524
|
+
support the requested architecture for this box:
|
525
|
+
|
526
|
+
%{supported_providers}
|
527
|
+
|
528
|
+
If the above providers cannot be used, please find and alternate
|
529
|
+
box that supports the requested architecture.
|
530
|
+
|
531
|
+
Box: %{name}
|
532
|
+
Address: %{url}
|
533
|
+
Architecture: %{architecture}
|
534
|
+
Provider: %{provider}
|
535
|
+
box_add_no_matching_provider_version: |-
|
536
|
+
The box you're attempting to add has no available version that
|
537
|
+
matches the constraints you requested with support for the
|
538
|
+
required provider and architecture. Versions of the box that
|
539
|
+
support the required provider and architecture are listed
|
540
|
+
below.
|
541
|
+
|
542
|
+
Box: %{name}
|
543
|
+
Address: %{url}
|
544
|
+
Constraints: %{constraints}
|
545
|
+
Architecture: %{architecture}
|
546
|
+
Provider: %{provider}
|
547
|
+
Supported versions: %{versions}
|
513
548
|
box_add_no_matching_version: |-
|
514
549
|
The box you're attempting to add has no available version that
|
515
550
|
matches the constraints you requested. Please double-check your
|
@@ -1215,6 +1250,14 @@ en:
|
|
1215
1250
|
get an ID of a target machine from `vagrant global-status` to run
|
1216
1251
|
this command on. A final option is to change to a directory with a
|
1217
1252
|
Vagrantfile and to try again.
|
1253
|
+
oscdimg_command_missing: |-
|
1254
|
+
Vagrant failed to locate the oscdimg.exe executable which is required
|
1255
|
+
for creating ISO files. Please ensure the oscdimg.exe executable is
|
1256
|
+
available on the configured PATH. If the oscdimg.exe executable is
|
1257
|
+
not found on the local system, it can be installed with the Windows
|
1258
|
+
Assessment and Deployment Kit:
|
1259
|
+
|
1260
|
+
https://go.microsoft.com/fwlink/?linkid=2196127
|
1218
1261
|
plugin_gem_not_found: |-
|
1219
1262
|
The plugin '%{name}' could not be installed because it could not
|
1220
1263
|
be found. Please double check the name and try again.
|
data/vagrant.gemspec
CHANGED
@@ -21,8 +21,6 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.add_dependency "csv", "~> 3.3"
|
22
22
|
s.add_dependency "ed25519", "~> 1.3.0"
|
23
23
|
s.add_dependency "erubi"
|
24
|
-
s.add_dependency 'googleapis-common-protos-types', '~> 1.3'
|
25
|
-
s.add_dependency "grpc", "~> 1.62"
|
26
24
|
s.add_dependency "hashicorp-checkpoint", "~> 0.1.5"
|
27
25
|
s.add_dependency "i18n", "~> 1.12"
|
28
26
|
s.add_dependency "listen", "~> 3.7"
|
@@ -36,7 +34,6 @@ Gem::Specification.new do |s|
|
|
36
34
|
s.add_dependency "ostruct", "~> 0.6.0"
|
37
35
|
s.add_dependency "rb-kqueue", "~> 0.2.0"
|
38
36
|
s.add_dependency "rexml", "~> 3.2"
|
39
|
-
s.add_dependency "rgl", "~> 0.5.10"
|
40
37
|
s.add_dependency "rubyzip", "~> 2.3.2"
|
41
38
|
s.add_dependency "vagrant_cloud", "~> 3.1.2"
|
42
39
|
s.add_dependency "wdm", "~> 0.2.0"
|
data/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.4.
|
1
|
+
2.4.6
|