Commit graph

5636 commits

Author SHA1 Message Date
Paul Cacheux
f67d4f75eb
virtualbox version detection: handle WARNING lines 2024-05-20 14:50:01 +02:00
Nicholas Ciechanowski
b26482d23c feat: nicer message when mounting nfs folders 2024-04-22 16:20:03 +10:00
Patrick Poortman
94a888b260
Fix ansible version gathering in host provisioner 2024-04-02 14:37:07 +02:00
Tom J Nowell
ad92256190
adjust the fix for #13371 to conform to code elsewhere in the file and check for IPAM 2024-03-28 16:20:52 +00:00
Tom J Nowell
5a191b388b
Check if the docker config is nil, fixes #13371
Sometimes the host network has a nil config, causing a crash on vagrant up when checking the docker networks
2024-03-28 16:15:00 +00:00
Fabrice Meyer
1a576716b9 adding ipv6 condition to network_ip_ends_in_one
Signed-off-by: Fabrice Meyer <meyer.fabrice@gmx.fr>
2024-03-09 23:59:29 +01:00
Camillo Toselli
716f76b2a6
Update configure_disks.rb
fixed configure_disks.rb in hyper-v capabilities provider to allow creation and removal of additional disks,
2024-01-30 11:18:40 +01:00
Timo Naroska
ce15776b32 Fix#13342 adapt docker provider build for containerd storage 2024-01-27 23:30:57 -08:00
Chris Roberts
c239e37b2f Force config value type and add test coverage
When extracting the config value from the data, force it to an Array
type for the size check. Include a test case that includes missing
configuration information to verify it does not produce an error.
2024-01-23 13:57:04 -08:00
Lars Tobias Skjong-Børsting
7d8b5e45fc Fix undefined method `size' for nil:NilClass in network_defined? 2024-01-20 12:59:47 +01:00
Chris Roberts
5a7fd6b302 Inspect guest for supported key types
Updates the SSH communicator to inspect the guest sshd configuration for
supported key types when creating a new key to replace the default
insecure public key. If the guest cannot be inspected, the connection
will be inspected. If the connection cannot be inspected, it will simply
fall back to the original behavior of using an rsa type key.
2024-01-18 11:53:00 -08:00
Chris Roberts
0a8f99df52 Open private key file in binary mode when writing
Prevent newlines from being converted to CRLF when writing private key
to file.
2024-01-12 16:01:23 -08:00
Chris Roberts
da8bdae003 Adjust string syntax 2024-01-10 16:47:59 -08:00
Chris Roberts
4b4cdfabc3
Merge pull request #13326 from alexgit2k/support-ansible-pip-for-rhel-8plus
Support ansible pip-installation for RHEL 8 and greater
2024-01-10 16:46:42 -08:00
Chris Roberts
96f2039bcd Use ssh key type defined by configuration
If key type is defined as :auto, detect best key type to use. If no
acceptable key type is detected as supported by the server, raise an
error. If unable to determine supported key types from the server,
fallback to original behavior of rsa type key.

If key type is defined as custom value, use that type if the server
supports it, or if the supported types cannot be read. Otherwise, raise
an error informing the user that the key type is not supported.
2024-01-10 11:52:46 -08:00
Chris Roberts
443ff01ab7 Add key_type configuration option for ssh
Adds a new `key_type` option to the Vagrantfile ssh configuration. It
defaults to :auto which allows auto detection of key type to use.
Otherwise it can be set to an explicit type supported by Vagrant.
2024-01-10 11:37:50 -08:00
alexgit2k
a4e3a71de6 Support ansible pip-installation for RHEL 8 and greater 2024-01-09 14:47:45 +01:00
Chris Roberts
51adb12547 Add architecture support for boxes
Introduce support for handling box architecture. Adds a new
`box_architecture` setting that defaults to `:auto` which will perform
automatic detection of the host system, but can be overridden with a
custom value. Can also be set to `nil` which will result in it fetching
the box flagged with the default architecture within the metadata.

Box collection has been modified to allow existing boxes already
downloaded and unpacked to still function as expected when architecture
information is not available.
2023-09-14 16:15:03 -07:00
Chris Roberts
6db640fb14 Adjust vbox hostonly config for ipv6
Check the type when an ipv6 address is being used. If the type does not
have a `6` suffix, append it.
2023-09-11 17:48:02 -07:00
Chris Roberts
f4142705ab
Merge pull request #13241 from lordgurke/fix-vagrant-13226-wrong-filename
Remove duplicate appending of "6" to network type
2023-09-11 17:45:34 -07:00
Chris Roberts
eb5aaed72d
Merge pull request #13259 from chrisroberts/remove-exps
Remove experimental checks
2023-09-11 17:31:58 -07:00
Chris Roberts
513be177d3 Remove experimental checks
Removes experimental checks on existing experimental features.
2023-09-08 14:15:34 -07:00
Chris Roberts
e958c6183a Adds initial HCP config support
Adds initial basic support for HCP based configuration in vagrant-go.
The initalization process has been updated to remove Vagrantfile parsing
from the client, moving it to the runner using init jobs for the basis
and the project (if there is one). Detection is done on the file based
on extension for Ruby based parsing or HCP based parsing.

Current HCP parsing is extremely simple and currently just a base to
build off. Config components will be able to implement an `Init`
function to handle receiving configuration data from a non-native source
file. This will be extended to include a default approach for injecting
defined data in the future.

Some cleanup was done in the state around validations. Some logging
adjustments were applied on the Ruby side for better behavior
consistency.

VirtualBox provider now caches locale detection to prevent multiple
checks every time the driver is initialized.
2023-09-07 17:26:10 -07:00
hashicorp-copywrite[bot]
36a312ee26
add missing license headers and update copyright file headers to BUS-1.1 2023-08-10 21:53:25 +01:00
Max
8ecfe32021
Remove duplicate appending of "6" to network type
To distinct between IPv4 and IPv6 configuration, a "6" was added to the network configuration type if an IPv6 address should be configured. This is now duplicate, as with pull 13024 the same thing is already done prior, thus leading to a duplicate "6" at the end of the network config type, i.e. "static66".
2023-07-30 17:33:58 +02:00
Chris Roberts
cebfb7a63b Use key type supported by server if possible
Check the key types supported by the server. If the data is not
available, default to the previous behavior which is using the rsa key
type.

Update insecure key check to match against any key files located within
the keys directory. For now, this effectively allows matching either rsa
or ed25519 insecure private keys.
2023-06-26 15:07:58 -07:00
Chris Roberts
d83bfc0d40 Perform best effort ssl revocation check on Windows
When performing a request via curl on Windows using schannel, ssl
certificate revocation checks does not handle verification failures
gracefully when an error is encountered that is unrelated to the actual
revocation of a certificate.

A new option is available to perform best effort revocation checks on
curl, so this is enabled by default on the Windows platform. A new
config option (`box_download_disable_ssl_revoke_best_effort`) has also
been added which can be optionally enabled to restore previous behavior
which results in a hard error if any error is encountered.
2023-06-20 16:37:00 -07:00
Chris Roberts
8e26495189 Project client and proc mapper fixes
Default the options for default provider so an options value is not
required when calling. The index for the proc lookup should use the key
method, not index.
2023-06-05 17:39:58 -07:00
Chris Roberts
1d991cb253 Rescue not found and return nil for machine box 2023-06-05 14:18:06 -07:00
Chris Roberts
6809812965
Merge pull request #13086 from dafyddj/fix/salt-highstate
Fix Salt provisioner for Windows guests
2023-06-02 17:44:49 -07:00
Chris Roberts
33bc24d9d7
Merge pull request #13194 from chrisroberts/ssh-comm-interactive
Remove keyboard-interactive authentication method
2023-06-02 17:14:23 -07:00
Chris Roberts
41342dceb3 Remove keyboard-interactive authentication method
The keyboard-interactive authentication method was added due to a
mis-reading of a reported issue where the box was not properly
configured for Vagrant. This removes the keyboard-interactive
authentication method which resolves a password prompting issue caused
by its addition.
2023-06-01 17:49:15 -07:00
Chris Roberts
0a20379b1a Enable deprecated key type and host key algorithm
Recent versions of OpenSSH remove support of ssh-rsa key types and host
key algorithms from the default conection configuration. Set options to
enable them and provide a configuration option which can disable them if
required.
2023-05-22 17:09:47 -07:00
Allison Larson
b651c65b54
Merge pull request #13166 from allisonlarson/verify_salt_download
Salt: Verify bootstrap-salt download
2023-05-22 09:54:00 -07:00
Allison Larson
7db87b9da3 Salt: Remove old bootstrap scripts 2023-05-19 16:09:46 -07:00
Allison Larson
2fa539e499 Salt: Download & verify shasum of default bootstrap-salt file 2023-05-19 16:09:46 -07:00
Allison Larson
ceddf2e6cd
Merge pull request #13153 from allisonlarson/docker_bridge_ip_update
Docker: Attempt using docker command for bridge ip
2023-05-19 09:14:04 -07:00
Chris Roberts
b0c5852145 Move constants to isolated file to be loaded on-demand
Since the protos are only loaded when the serve command is invoked, move
the constant alias definitions into an isolated file so they are only
loaded when needed by the serve command
2023-05-18 12:02:07 -07:00
Allison Larson
12b73a46b2 docker: attempt using docker command for bridge ip
Don't rely on `/sbin/ip` to fetch the docker bridge ip address, instead
first attempt to use the docker command to fetch it. If it fails, fall
back to previous behavior.
2023-05-18 10:54:38 -07:00
Chris Roberts
8e98c5ff1c Update locale preference for the virtualbox driver
Update the locale preference list to prefer UTF-8 variations of `C` when
available.
2023-05-17 11:59:05 -07:00
Chris Roberts
d53d8e61bc Fix LANG value used for VirtualBox driver
The VirtualBox driver sets the LANG env var to prevent localized output
being returned when executing CLI commands. If the `locale` command is
present, do a best effort lookup to determine the properly value to use
for the LANG environment variable.
2023-05-15 11:01:29 -07:00
Allison Larson
ec16a00560 docker: sync folders before preparing nfs settings
Re-order the `SyncedFolders` to occur before `PrepareNFSSettings`, ensuring that
the host & machine ips are set appropriately.
2023-05-12 11:04:05 -07:00
Allison Larson
10e45f1df1 Ignore inactive docker containers when assigning ports
Checks to make sure that a docker container is running before determining
whether or not the port is in use. This prevents the a port on an inactive
container from being treated as if it is use.

Fixes https://github.com/hashicorp/vagrant/issues/13110
2023-05-09 16:44:58 -07:00
Chris Roberts
7ab4deb8e2 Remove protobuf related loading from config
The final proto related constants were removed in #13031 but the proto
loading still remained. This removes the loading to prevent protos from
being loaded when not in server mode.
2023-05-02 08:48:52 -07:00
Sophia Castellarin
bc1e00fc50
Merge pull request #13052 from soapy1/password-auth-ssh
Update connection settings when using a password to connect ssh
2023-02-22 14:15:46 -08:00
Sophia Castellarin
9efc3521d1
Merge pull request #13090 from soapy1/remove-virtualbox-hyperv-check
Removes check for hyperv being enabled when verifying virtualbox is usable on windows.
2023-02-21 17:17:51 -08:00
Sophia Castellarin
ec396ec842
Merge pull request #13054 from moritzheiber/fix_ansible_pip_install_version_mismatch
Fix installing Ansible provisioner with version and pip
2023-02-21 17:12:32 -08:00
Sophia Castellarin
58d629d9af
Merge pull request #13055 from Penaz91/artix-support
Artix Linux Host Support
2023-02-21 16:49:02 -08:00
Sophia Castellarin
a5983aabe1
Merge pull request #12280 from RudiMT/bugfix20210302/hyperv-enhanced-sessionmode-crash-2012R2
HyperV enhanced sessionmode crash on Windows Server 2012R2
2023-02-21 16:47:11 -08:00
sophia
38e6e86d80 Removes check for hyperv being enabled when verifying virtualbox
is usable on windows. Virtualbox has supported running with hyperv
since version 6.0.0 https://www.virtualbox.org/wiki/Changelog-6.0.
(Virtualbox 6.0 is currently EOL) So, this check is no longer
required.
2023-02-17 11:38:28 -08:00
Dafydd Jones
0c0b208741
fix(salt): fix highstate on Salt minions v3004+ 2023-02-15 18:53:07 +00:00
Dafydd Jones
26c227c978
fix(salt): prevent reinstalling of Salt minion on Windows
* fix minion detection on Windows
 * use new command-line option `-ConfigureOnly` to tell
   bootstrap not to try installing minion (on Windows)

Fixes GH-10531
2023-02-15 18:53:07 +00:00
sophia
2e7116cfc3 Log ignoring of EnhancedSessionTransportType for debugging 2023-02-14 15:49:47 -08:00
RudiMT
431d91593a Output message in json
Would limit new console output to systems that do not already support EnhancedSessionTransportType. The vast majority of systems supports it and should not print additional messages.
2023-02-14 15:49:46 -08:00
RudiMT
ba562f273b Add check if EnhancedSessionTransportType is supported by the current version of HyperV 2023-02-14 15:49:46 -08:00
RudiMT
e14aa1e430 Formatting as in main 2023-02-14 15:49:46 -08:00
RudiMT
0867fbd9d8 Add check if EnhancedSessionTransportType is supported by the current version of HyperV 2023-02-14 15:49:46 -08:00
sophia
5f2ea0486e Update connection settings when using a password to connect ssh
When connecting over ssh using net-ssh use the non_interactive
argument must be set when authenticating with a password.

Add the keyboard-interactive default auth method
ref: 8a176a6ea0/lib/net/ssh/config.rb (L52)
2023-02-14 13:56:38 -08:00
Sophia Castellarin
9f9d2fdfcb
Merge pull request #12652 from t2sa/typo
Fix sentense
2023-02-14 12:12:27 -08:00
Sophia Castellarin
3022ef59fa
Merge pull request #13066 from soapy1/rsync-regex
Process rsync exclude regex less
2023-02-08 12:38:02 -08:00
Sophia Castellarin
1a5dea169e
Merge pull request #13069 from soapy1/ssh-keep-alive
Use netssh builtin keep alive functionality
2023-02-07 09:16:38 -08:00
Daniele Penazzo
157a182ec7
Update plugins/hosts/arch/host.rb
Co-authored-by: Sophia Castellarin <sophia@hashicorp.com>
2023-01-24 07:46:24 +01:00
sophia
b4925261fa Use netssh builtin keep alive functionality 2023-01-23 16:48:57 -08:00
Penaz
0ee7eb338f Ensure Arch Plugin doesn't detect Artix Linux
Some Artix Linux Distributions may be "migrated" from Arch and contain
the "/etc/arch-release" file, leading to an incorrect OS being detected.
2023-01-23 20:45:55 +01:00
sophia
0939af9a76 Process rsync exclude regex less
This change will prepend "^" and append "/" if a start anchor is
detected in the regex string. This allows users to specify
relative paths to exclude.

It also removes replacing occurences of "*" with "[^/]*". "*"
already expresses itself accurately.
2023-01-19 16:38:28 -08:00
sophia
28574348b9 Read only machine port forward info
In the VM config file port forward information is captured in the
Snapshot defition as well as the VM definition. This causes duplicates
in port forward entries if the file is queried for all available
network adapters. Querying the VM config file for the the Network
Adapters only part of the Machine definition resolves this and
yields the most up to date port forward info.
2023-01-12 12:02:00 -08:00
Moritz Heiber
dfabbbb7fe
Forgot one occurance of using the raw python vs. python3 2023-01-11 12:54:42 +01:00
Moritz Heiber
5f82adf122
Replace python with python3, which is a common convention (and Ansible only works with Python 3) 2023-01-11 11:01:55 +01:00
Moritz Heiber
76ef7d3dc8
Fix installing Ansible provisioner with version and pip 2023-01-10 14:05:44 +01:00
Chris Roberts
516ac4b0ab Set address type when not provided
When an address is provided and the type has not been explicitly
provided, parse the address and automatically set the type.
2022-12-09 13:22:37 -08:00
Chris Roberts
fd72ea592a
Merge pull request #13017 from msltwtf/ansible-local-package-install
Add workaround for Debian 10 and older
2022-12-09 09:23:44 -08:00
Chris Roberts
ca7c05f09d Fix ansible install for older distributions
Before installing dependencies run a check for the python-dev-is-python3
package and only install it if found (otherwise use python-dev). This
allows older versions of debian (and derivatives) to properly install
the defined dependencies.
2022-12-08 17:10:00 -08:00
Chris Roberts
10efa98184
Merge pull request #13022 from chrisroberts/macos-isolated-load
Isolate loading dependencies for serve command
2022-12-08 12:54:52 -08:00
Chris Roberts
2eb393aaee
Merge pull request #13004 from chrisroberts/vbox-hostnet-dhcp
VirtualBox hostnet addressing
2022-12-08 11:33:05 -08:00
Chris Roberts
5cbf66b93c Update log output to warn 2022-12-08 11:14:46 -08:00
Chris Roberts
1cd6ac3b31 Isolate loading dependencies for serve command
Only load the dependencies needed for the serve command if the serve
command is being run. This allows Vagrant to properly load on platforms
where some of the dependency libraries may not be available due to
incompatibilities or being EOL.
2022-12-07 15:35:00 -08:00
Marius Leonhardt
6fb60c9aea
Add workaround for Debian 10 and older
If `lsb_release -rs` returns a value greater than 10 the package `python-dev-is-python3` will be installed. If it is equal or less than 10 the package will not be installed.
2022-12-05 16:30:05 +01:00
Chris Roberts
2696c3d74d Import the security module for access check
The 7.3.0 release of powershell cleaned up some stray things that
should require the import of the security module to be available.
It causes issues with pre-7.3 versions of powershell that attempt
to load the newer module so we run a check and restrict the module
version based on the powershell version.
2022-11-22 11:05:18 -08:00
Chris Roberts
32aef6c48c Rescue address errors and adjust host address
Rescue any address errors logging them and ignoring the address. Update
how the host address is determined based on the network configuration.
Host address will be either the lowest address assignable via dhcp
configuration or first address available within the configured subnet.
2022-11-21 14:07:29 -08:00
Chris Roberts
8549450cff
Merge pull request #12994 from chrisroberts/vbox-locale
Force LANG when executing commands
2022-11-14 13:27:48 -08:00
Chris Roberts
d8de3016ea
Merge pull request #12992 from chrisroberts/vbox-networks-nfs
VirtualBox read networks support with hostonlynets
2022-11-14 12:14:03 -08:00
Chris Roberts
f7e5a9d199 Force LANG when executing commands
This forces the LANG enviroment variable to be set to `"C"` when
executing VBoxManage commands. Doing this prevents localization of
output which causes failures of the VirtualBox driver when scanning
for information.
2022-11-14 10:45:47 -08:00
Chris Roberts
9e4047533d Customize #read_network_interfaces for hostonlynetworks
Adds an override for the #read_network_interfaces when hostonlynetworks
are in use to properly identify the hostonly network information from
the guest. This also adjusts the IP provided for the network to be
the first in the subnet.
2022-11-14 10:45:33 -08:00
Chris Roberts
cbddfbd028 Handle missing machine folder value
If the value of the machine folder can not be found in the
system properties, report a user friendly error message and
include relevant information in the logs for debugging.
2022-11-14 10:45:10 -08:00
Chris Roberts
45f5043508 Check for extra arguments in ssh info before appending 2022-11-08 16:48:57 -08:00
Benoît Peccatte
139893603f Fix sync_folder type rsync ignores ssh extra_args 2022-11-08 16:35:35 -08:00
Chris Roberts
0209cd21f9
Merge pull request #12832 from teh-syntax/main
Fixed issue provisioning ubuntu 22.04 python-dev has no install candidate
2022-11-08 15:25:22 -08:00
Chris Roberts
1dd008d65e
Merge pull request #12740 from rbrunckhorst/solaris-sed-fix
Fix sed command on Solaris guest
2022-11-08 15:09:08 -08:00
Chris Roberts
c75e05d4b1
Merge pull request #12913 from nist/File.exists
Replace deprecated File.exists? with File.exist?.
2022-11-08 15:07:21 -08:00
Chris Roberts
915283c685
Merge pull request #12989 from dcode/main
Fixes namespace of Google to global space
2022-11-08 14:56:43 -08:00
Derek Ditch
f581778c2c Fixes Google namespace resolution to global space 2022-11-08 08:50:01 -06:00
Chris Roberts
c0c4b80dcb Pass all options to host only network creation 2022-11-03 17:20:54 -07:00
Chris Roberts
c8a71882d3 Disable hostonly ip validation for vbox 7 on darwin 2022-11-03 17:18:10 -07:00
Chris Roberts
3604bacc19 Update virtualbox driver for hostonlynets support 2022-11-03 17:18:10 -07:00
Chris Roberts
60ec1943ea Fix file formatting 2022-11-03 11:55:50 -07:00
Chris Roberts
e7e1badbdc Add support for VirtualBox 7.0 2022-10-14 15:58:00 -07:00
Chris Roberts
716694e7b8
Merge pull request #12910 from chrisroberts/sudoers
Update NFS exports usage
2022-09-22 11:41:28 -07:00
Nicolas St-Laurent
6f9f88e055 Replace deprecated File.exists? with File.exist?. 2022-09-22 08:54:46 -04:00
sophia
9b48684226 Ensure last line from extracting the SSH_AUTH_SOCK is not nil 2022-09-21 15:25:44 -04:00
Chris Roberts
b21e4b0602 Use static file path when creating new exports file 2022-09-21 10:35:55 -07:00
sophia
49280286ad Strip new lines from error details
The error details message should just be one string without spacing
so the terminal can set a output length. This will allow messages
from Ruby and Go errors to have similar formating.
2022-09-19 15:14:42 -04:00
sophia
add66c4c2a Include message in rpc status error from ruby 2022-09-19 15:14:42 -04:00
sophia
6d4f769c87 Validate provider 2022-09-19 15:14:42 -04:00
sophia
f7cd08b208 Pass terminal output color option from Ruby to terminal plugin 2022-09-14 11:42:52 -04:00
sophia
1e39161a7b Ensure candidate ips are available when determining mount name 2022-09-02 10:42:27 -05:00
sophia
8bdb5e797d Pass in echo/secret ui input setting 2022-08-30 15:18:21 -05:00
Robert McMahon
3f2d648691 Fixed issue provisioning ubuntu 22.04 python-dev has no install candidate 2022-08-06 20:24:17 -04:00
Sophia Castellarin
aee8d7b96e
Merge pull request #12785 from dustymabe/dusty-el9
Enhancements for EL guests capabilities
2022-08-01 12:10:40 -05:00
Paul Hinze
6f44de5076
Merge pull request #12813 from sni/patch-1
Update nfs_client.rb for rocky 9
2022-07-29 11:12:47 -05:00
Dusty Mabe
3ad20c4c7b guests: add Alma Linux guest support 2022-07-29 09:22:50 -05:00
Dusty Mabe
d82d0fb657 guests: make CentOS/RHEL flavor detection more dynamic
Instead of having to update these flavor.rb files every time a
new version of CentOS/RHEL come out let's dynamically pick up
the version (7,8,9) from the machine.

This was inspired slightly by the Rocky Linux guest flavor.rb.
2022-07-29 09:22:50 -05:00
Dusty Mabe
4336aff67d guests/centos: use GUEST_DETECTION_NAME='centos' to ID CentOS
This migrates the CentOS guest plugin to identify machines by
what is in os-release rather than based on if the /etc/centos-release
file exists.

It just so happens that the Rocky Linux plugin is set up to inherit
directly from :redhat (not :centos) and thus the CentOS flavor is
attempted before Rocky in the depth first search. For some reason
the rockylinux/8 vagrant box still has the /etc/centos-release file
in it even though it's only supposed to inherit from RHEL.

The almalinux/9 box does not have /etc/centos-release.
2022-07-29 09:22:50 -05:00
Dusty Mabe
3b1e277f72 guests: RHEL 9 and CentOS stream 9 are out 2022-07-29 09:22:50 -05:00
Paul Hinze
4c34c9d26e
Merge pull request #12646 from hashicorp/push-heroku-print-output
Print output when pushing to Heroku
2022-07-28 16:36:55 -05:00
Paul Hinze
7c56c74bb6
Support and honor the "primary" option for Command plugins 2022-07-27 11:36:04 -05:00
Sophia Castellarin
5170d83c21
Merge pull request #325 from hashicorp/load-external-plugin-config
Find type to unany objects when mapping
2022-07-26 14:15:33 -05:00
sophia
c2d8f892ac Find type to unany objects when mapping
find_types works fine until you have a module which has the same name but different case. For example, the VagrantVmware package is HashiCorp::VagrantVMwareDesktop. All the protos are at Hashicorp::Vagrant::… So, you end up with this fun

Object.constants.select { |n| n.to_s.downcase == "hashicorp" }
=> [:HashiCorp, :Hashicorp]

So, when trying to walk down the modules to find the right type to unany to, Vagrant sometimes takes the wrong path (eg. Down the HashiCorp module instead of the Hashicorp module).

This change will keep a list of the parent modules when walking down the module list. This way if a dead end is reached then Vagrant can go a level back and keep searching for the correct class.
2022-07-26 12:22:28 -05:00
Chris Roberts
54502d5d66
Merge pull request #324 from hashicorp/fix-packaged-hang
Fix hanging commands when using packaged installation
2022-07-26 09:12:50 -07:00
Chris Roberts
b917dc466a Implement stop on the ruby internal service 2022-07-25 14:30:45 -07:00
Chris Roberts
fda4aef9c7 Make server instance accessible, return integer value 2022-07-25 14:29:38 -07:00
Paul Hinze
fc76f71ffc
Fix vbox multimachine by setting provider parallel default correctly
Turns out I misinterpreted the behavior of a ruby method with a default
being passed nil so I assumed :parallel was effectively defaulting to
true when it is the opposite.
2022-07-25 15:52:11 -05:00
Sophia Castellarin
fe4956ac83
Merge pull request #314 from hashicorp/ruby-load-global-plugins
Load global ruby plugins
2022-07-25 09:40:00 -05:00
Sven Nierlein
8fe4ec4c8d
Update nfs_client.rb for rocky 9
Starting a rocky 9 box (having nfs shares) fails with: `No match for argument: nfs-utils-lib`.
Apparently Rocky 9 does not have a `nfs-utils-lib` but mounting nfs shares without nfs-utils-lib works fine.
So updating the nfs client install to only install `nfs-utils-lib` if the package is available. That way older rhel clones
should continue to work as well.
2022-07-21 13:49:31 +02:00
Paul Hinze
9ab94f9971
Fix crashes on Vagrantfiles with provisioners
I forgot to handle nil in the new PluginOptions stuff, and options are
nil for Provisioner plugins.
2022-07-20 17:36:05 -05:00
Paul Hinze
957d0d3779
Bring plugin options back to Ruby for providers and synced folders
This removes the need for the validation workaround for Docker, because
box_updated is once again available in that context.

We don't technically need the SyncedFolder priorities back on the Ruby
side, but wiring them through for symmetry.

Depends on https://github.com/hashicorp/vagrant-plugin-sdk/pull/183
2022-07-15 12:14:47 -05:00
sophia
5bc7218a70 Load global ruby plugins 2022-07-13 14:08:46 -05:00
Paul Hinze
8d46b09a11
Fix Docker machines being lost in go side
By pruning machines that are in "unknown" status after each operation,
the Go code path exposed the fact that the Docker provider was not
updating the machine index during an "up" - leaving the state as
"unknown".

This is basically a bug within the Docker provider, so I think it's okay
to update the plugin code to correct this rather than working around the
issue in Go.

All we need to do is call `machine.state` instead of reaching through to
`machine.provider.state` while waiting for the container to be started.
That causes the extra logic for updating the machine index in
`machine.state` to fire.
2022-07-13 14:04:32 -05:00
Chris Roberts
da9892a62f Use #to_proto on class match, otherwise convert 2022-07-11 15:09:46 -07:00
Chris Roberts
2572d4f62b Include class where error originated 2022-07-11 15:09:21 -07:00
Chris Roberts
e082fd6359 Machine mapper no longer needs to load through environment 2022-07-11 15:09:08 -07:00
Chris Roberts
67895c927e Allow a machine client to load its target 2022-07-11 15:08:53 -07:00
Chris Roberts
d5ec939022 Request target in spec and allow conversion to machine 2022-07-08 16:38:03 -07:00
Chris Roberts
19b4adb3b8 Implement get_value rpc in vagrantfile client 2022-07-08 16:38:02 -07:00
Paul Hinze
ee8883153c
Make Docker provider work again post config refactor
- Allow machine.box to be empty without sadness (depends on
   https://github.com/hashicorp/vagrant-plugin-sdk/pull/182)
 - Get synced folder type from plugin name instead of defaulting to
   :virtualbox
2022-07-08 11:36:27 -05:00
Sophia Castellarin
66a22e5254
Merge pull request #303 from hashicorp/synced_folder_has_override_opts
Synced folder has override opts
2022-07-07 16:28:14 -05:00
Chris Roberts
f5d778d51a Revert "Merge pull request #300 from hashicorp/optimize-ruby-command-list"
This reverts commit 1c26a4abb0, reversing
changes made to 186824a568.

The changes broke plugin loading when using subcommands so these
changes will be reverted until the underlying issue can be
investigated and resolved.
2022-07-07 14:03:56 -07:00
Paul Hinze
59a8e9bb0f
Merge pull request #306 from hashicorp/fix-capability-boolean-handling
Fix Type::Booleans leaking through capabilities
2022-07-07 14:21:05 -05:00
sophia
b17c36c7c7 Fix typo 2022-07-07 12:30:24 -05:00
Sophia Castellarin
0b53e06687
Merge pull request #297 from hashicorp/port-command-fix
Use remote provider
2022-07-07 12:21:48 -05:00
sophia
f1af42a7fc Don't use hash with indifferent access when converting hash
The HashWithIndifferentAccess will change all keys to strings when
merged with another regular hash. This causes errors in cases where
hashes are merged, for example in the action builder. Symbol/String
type data is kept over the wire, so there is no need to make the
mapped hash a HashWithIndifferentAccess.
2022-07-07 11:50:03 -05:00
sophia
73801703e7 Pass machine to provider capabilities 2022-07-07 11:49:57 -05:00
Paul Hinze
75d900c93b
Fix Type::Booleans leaking through capabilities
We had some cases where calling a capability that returned a boolean was
not getting correctly unpacked, so instead of `true` or `false` the
capability was putting out
`VagrantPlugins::CommandServe::Type::Boolean`.

This may have been happening in _all_ cases where a boolean was returned
from a capability and we just didn't notice it yet because the return
value was always truthy.

These tweaks should help ensure that Ruby types make it out where they
are supposed to be in Args::Direct usage.
2022-07-07 11:29:50 -05:00
Chris Roberts
1c26a4abb0
Merge pull request #300 from hashicorp/optimize-ruby-command-list
Optimize command list generation
2022-07-07 09:29:15 -07:00
Sophia Castellarin
186824a568
Merge pull request #302 from hashicorp/private-network
Rely on string/symbol maps for hash mapping
2022-07-06 13:20:41 -05:00
sophia
eeba305399 Rely on string/symbol maps for hash mapping
Relying on HashWithIndifferentAccess in Hash mappers results in
errors when hashes get merged in Ruby. When merges between regular
hashes and HashWithIndifferentAccess happens, then all the keys
from HashWithIndifferentAccess are transformed to strings.
2022-07-01 12:47:12 -05:00
Paul Hinze
fb2a102c71
Fix init and other commands that run without a project
The Basis needs to be able to respond to Vagrantfile() and
DefaultProvider() to make it through Vagrant::Environment
initialization.

Depends on https://github.com/hashicorp/vagrant-plugin-sdk/pull/178
2022-07-01 11:56:08 -05:00
Chris Roberts
6aa50189a2 Return empty results when no content to parse 2022-07-01 08:57:28 -07:00
sophia
20ec85b021 Use remote provider 2022-06-30 16:57:41 -05:00
Chris Roberts
067e6aeed1 Add get commands implementation to client and server 2022-06-29 16:13:36 -07:00
Chris Roberts
ffa10b4d85 Return integer value from serve command 2022-06-29 16:11:53 -07:00