Result from import may be received in an array. Detect if the result
is an array and extract the first result. Otherwise, if the result
is not a string, force an error.
Check for the oscdimg executable on both the PATH and known installation
location. When not found, provider a user friendly error message about
the missing executable and a helper link on where it can be found.
This includes a couple modifications to the cloud-init behavior.
First, the cloud-init wait action will now write a sentinel file
after successfully waiting for cloud-init. This results in subsequent
boots of the machine to skip executing the cloud-init wait command
as cloud-init is only executed on the initial boot.
Second, the cloud-init setup action will check for the sentinel file
written by the cloud-init wait action, and if detected it will skip
the cloud-init setup. When creating the ISO for cloud-init, a second
sentinel file will be used to log the path of the generated ISO
file. If the file exists, the ISO generation process will be skipped.
Adds missing comma in the constant definition and add test coverage
for when no configuration file is available to validate acceptable
addresses within defined constant values.
Since VirtualBox 6.1.28, if you want to create a host-only network,
virtualbox checks if the ip is in a certain range.
According to the manual (https://www.virtualbox.org/manual/ch06.html),
ipv6 link-local addresses are allowed so add the IPv6 link-local range.
This adjusts the failure detection and errors raised when a box
cannot be added. New errors are added for when a requested provider
on a box does not support an architecture, and for when the no
providers on a box support an architecture. When box supports
an architecture but not with the requested provider, a list of
supported providers will be returned in the error message. If
a version constraint is requested and cannot be satisfied due
to provider and architecture filtering, the list of valid versions
will be provided.
Small change to the version list in the error output: the list
has been reversed so the most recent versions are listed first.
Include network display name within the output of the
`#read_host_only_interfaces` driver method. When matching
the private network name, use the `#read_host_only_interfaces`
method and not the `#read_host_only_networks` method which
is darwin specific. Backport the `display_name` inclusion
to old driver versions for consistent behavior.
Fixes#13655
Adds a communicator which does not provide communication to the
guest machine. All methods for the communicator are simply stubbed
with a successful result. This allows a guest to be configured
with the `:none` communicator and Vagrant to properly `up` it.
This currently lacks any user notification or guards within
configuration to verify guest configuration does not rely on
the communicator. It is wrapped as experimental to allow early
access to the basic functionality without making it generally
available.
When building the internal specs collection, multiple specifications
may exist due to default gems. When building the collection, always
set the specification with the greater version. This change prevents
multiple versions of the same gem attempting to be activated.
Prefer to use the pwsh executable over the powershell executable
as the pwsh exectuable will be faster loading than the powershell
executable. If the pwsh executable is not found, the powershell
executable will be used instead. The preference can be overridden
using the VAGRANT_PREFERRED_POWERSHELL environment variable.
If only one provider is available for the architecture, it is
selected, but when actually selecting it the architecture
constraint was not included. Depending on the order of the provider
list, the wrong value would be chosen.
The `nofail` option results in failures being improperly suppressed
resulting in a successful run with a failed mount. Removing this
option so mounting failures will properly fail the process.