3409 Commits

Author SHA1 Message Date
Gilles Cornu
e47deb7fd0
ansible: Fix broken 'ask_sudo_pass' option
This bug (invalid method call) hasn't been caught by unit tests because
Vagrant::Plugin::V2::Config catches all invalid/bad configuration calls
and save them for generating error messages during the "validate" stage.
This way, the `ask_sudo_pass=(value)` method was not interrupted and the
`@ask_become_pass` attribute was (surprisingly) correctly set (allowing
the related unit tests to pass).

In order to avoid similar problem to happen again, the deprecation
message output is now fully verified.
2017-11-09 18:17:04 +01:00
Brian Cain
8be2ae8e6a Add unit test for destroy command 2017-11-01 15:30:59 -07:00
Brian Cain
d8bffd201f Add delay for parallel destroy without force, restructure state checking
This commit adds better messaging to the user if the parallel flag is
used without the force flag. It also makes the state checking based on
the delta between the initial and final states of the guests due to the
fact that there is no guarantee what the "destroyed" state id will be
between providers.
2017-10-31 13:52:07 -07:00
Brian Cain
2d7858ff8a Introduce parallel destroy for certain providers
This commit introduces parallel destroy using the batch action class for
the destroy command.
2017-10-31 11:29:40 -07:00
Adam Bolte
511fac8162
Attempt fetching salt bootstrap script with wget
On Debian installations, wget is installed even into the most minimal
environment. Even Python support on Debian cannot be guaranteed if
Standard System Utilities was not selected at installation time (or if
debootstrap was used), which is why the retrieved bootstrap-salt.sh
script takes care of installing it prior to installing Salt.
2017-10-26 13:41:40 +11:00
Brian Cain
c7ec0a42a5 (#8941) Include WinSSH Communicator
This commit requires the winssh communicator class wihtin the public_key
capability for Windows. Prior to this commit users could run into a
situation where Vagrant would check if the machine could speak in WinSSH
and fail on an uninitialized constant.
2017-10-24 12:02:01 -07:00
Chris Roberts
fc7d2a3097 Merge pull request #8921 from lookfwd/fix_8608
fix for issue #8608/Windows hosts
2017-10-23 16:58:39 -07:00
Chris Roberts
eaa518159c Merge pull request #8997 from bshurts/fix/winrm-apipa
Adding check for APIPA in winrm helper to fix #8996
2017-10-23 16:47:32 -07:00
Chris Roberts
6eca74afc7 Merge pull request #9012 from benh57/winssh_communicator_fix
Fix guest network setup with winssh communicator
2017-10-23 15:41:53 -07:00
Vít Ondruch
7187e6f909 Use Integer instead of Fixnum for Ruby 2.4+ compatibility. 2017-10-23 10:57:36 -07:00
Brian Cain
e1d1ba5d55 (#8974) Add Errno::EPIPE exception to ssh communicator
This commit adds an additional exception to retry ssh on when bringing
up a machine and attempting to ssh into the guest.
2017-10-17 16:44:14 -07:00
Brian Cain
47edb88fe4 Merge pull request #9034 from briancain/unify-solaris-guests
Unify Solaris Guests
2017-10-11 15:37:24 -07:00
Brian Cain
c88ccb0b3d Merge pull request #9014 from benh57/winssh_puppet_fix
Fix winssh communicator support in puppet provisioner
2017-10-10 09:46:59 -07:00
Brian Cain
a849cd2f7d (#8963) Unify Solaris Guests
This commit removes some duplicated code within the Solaris11 guest
implemnentation and instead relies on the Solaris guest for the majority
of its guest capabilities.
2017-10-05 11:31:12 -07:00
Bryce Shurts
ba3c26b211 Updating winrm_info_invalid to use start_with instead of match 2017-10-05 10:28:10 -05:00
Jonathan LaBroad
56861296fa Added tests and validation for python_version parameter 2017-10-05 06:25:36 -04:00
Jonathan LaBroad
3524eb9ef4 Merge remote-tracking branch 'upstream/master' 2017-10-04 14:59:57 -04:00
Brian Cain
fb1501d48a Merge pull request #8874 from taliesins/HandleChefProvisionerRebootRequest
Handle chef provisioner reboot request
2017-10-04 09:37:02 -07:00
Brian Cain
9d360d2b21 Merge pull request #9000 from bbrala/bug-hyperv-auto-stop-action
Auto stop action is configured wrongly
2017-10-04 09:12:09 -07:00
Brian Cain
83310f8a56 Merge pull request #8955 from jehiah/virtualbox52_8955
Virtualbox 5.2 support
2017-10-03 13:25:39 -07:00
Ben Hines
e133547932 Properly call winssh communicator on windows via powershell, and fix syntax for powershell via puppet. 2017-09-29 20:53:09 -07:00
Ben Hines
ea518f6c78 test() defaults to powershell for winssh, no need to pass it 2017-09-29 19:30:07 -07:00
Ben Hines
6b4584efb6 Use the 'powershell' shell when running powershell commands. Allows winssh communicator to function 2017-09-29 19:17:49 -07:00
Brian Cain
87ee4f5662 Merge pull request #8995 from elatt/fix_synced_folders_spaces
Allow synced folders to contain spaces in the guest path
2017-09-29 15:19:39 -07:00
Erik Lattimore
28a92850ab Allow synced folders to contain spaces in the guest path
It should be valid to allow paths with spaces for the synced folder
guest path but since the guest path is used to generate the ID (if one
isn't provided), this will err out in VirtualBox because it doesn't
allow spaces for the --name argument. We should simply convert ' ' to
'_' as we do with other special characters.
2017-09-29 17:24:12 -04:00
Björn Brala
0f743d0731 Auto stop action is configured through auto start action. 2017-09-26 16:03:35 +02:00
Bryce Shurts
0eaf691ea0 Adding check for APIPA in winrm helper to fix #8996 2017-09-25 16:31:37 -05:00
Mikhail Bulash
508d94d466 provisioners/shell: Use ui.detail for displaying output
Output format of ui.info method (bold text) makes reading long script outputs really heavy on the eyes. ui.detail is a better match for this type of output.
2017-09-18 17:55:07 +03:00
Jehiah Czebotar
7d73af5637
Virtualbox 5.2 support 2017-09-14 15:07:11 -04:00
Jonathan LaBroad
6f53c3991c Merge remote-tracking branch 'upstream/master' 2017-09-11 09:15:22 -04:00
Chris Roberts
2451c859e8 Merge pull request #8746 from mastersin/alt
Add ALT Linux platforms guest detection and network configuration support (#8745)
2017-09-06 17:49:38 -07:00
Chris Roberts
d7b64dce80 Merge pull request #8938 from chrisroberts/update/host-systemd
Update linux host NFS capability
2017-09-06 16:57:27 -07:00
Brian Cain
b2f34a6ea9 Merge pull request #8951 from briancain/RETRYABLE-COMMANDS
Improving resilience of some VirtualBox commands fixup
2017-09-06 14:51:02 -07:00
Chris Roberts
34addec796 Merge pull request #8913 from mitchellh/gildegoma/6570-ansible-compatibility-mode
Ansible: Add "compatibility_mode" and "*become*" common options; Move "version" to common options
2017-09-06 13:18:08 -07:00
Brian Cain
4e7bd96bb0 Merge pull request #8950 from terceiro/fix-permissions
plugins/guests/kali: fix file permissions
2017-09-06 13:04:29 -07:00
Gilles Cornu
ac75e409a3
provisioners/ansible(both): Quote host_vars if needed
This patch is based on @subimage's inputs in the related GitHub issue.
Thanks again!

Fix #8597
2017-09-06 21:22:41 +02:00
Brian Cain
9b872c9e7e Cleanup virtualbox retryable commands
Reverting the changes done in 7d2f7dab977d51a21381577a5345f96c22142711
because they don't work and or update vagrant to invoke running the
vbox cli tool for every single forwarded port instead of forwarding them
all in one command.
2017-09-06 11:14:11 -07:00
Samuel Clark
2e775e8101 8468 - make more virtualbox commands retryable
Issue: https://github.com/mitchellh/vagrant/issues/8468

A lot of vboxmanage commands are flakey and frequently cause
bringing multiple machines up at once to fail, especially when
the host system is under heavy load. Most commands are also safe
to retry and just result in a no-op, so we can simply add
'retryable' to a lot of existing calls. For the others we need to
do a little bit of cleanup or reevaluate the parameters before
trying again.
2017-09-06 11:14:11 -07:00
nico.vanelslande
9aecd5e1a4 Improved resilience of the VirtualBox driver delete_unused_host_only_networks function by
ignoring VMs that may have been deleted between the calls to
'vboxmanage list vms' and 'vboxmanage showvminfo'
2017-09-06 11:13:14 -07:00
nico.vanelslande
56c8b9269a Improved resilience of the VirtualBox driver read_used_ports function by
ignoring VMs that may have been deleted between the calls to
'vboxmanage list vms' and 'vboxmanage showvminfo'
2017-09-06 11:13:14 -07:00
Chris Roberts
fcd1aee9bb Update linux host NFS capability
Add support for systemd detection and using correct method
for starting/checking host nfs service.
2017-09-06 09:54:06 -07:00
Brian Cain
f1eddace18 Merge pull request #8945 from briancain/4666/master/dupe-nfs-export-linux
Remove duplicate export folders before writing /etc/exports
2017-09-06 08:34:46 -07:00
Antonio Terceiro
acda71edd9 plugins/guests/kali: fix file permissions
Those Ruby files are not standalone scripts, so there is no point in
having them being executable.
2017-09-06 12:21:23 -03:00
Gilles Cornu
a0a09c6095
minor: Fix a typo in a code comment
[ci skip]
2017-09-06 17:12:51 +02:00
Gilles Cornu
4dc3e59b08
provisioners/ansible(both): Review of PR #8913
- Keep the Programming Errors with corresponding Exception class and
  en.yml message template. Fix the alphabetical order in errors.rb by
  the way.
- Fix English wording in the documentation and en.yml messages
- Use StandardError for unknown error rescuing.

Thanks @chrisroberts!
2017-09-06 17:12:50 +02:00
Gilles Cornu
6bc0c85e90
provisioners/ansible_local: Optimize SSH commands
With this change, the same remote command is used to:
- verify that ansible is available
- gather the ansible version details
2017-09-06 17:12:46 +02:00
Gilles Cornu
9996ed6259
provisioners/ansible_local: Fix an obsolete comment
[ci skip]
2017-09-06 17:12:44 +02:00
Gilles Cornu
dc3b6341e2
provisioners/ansible: Check compatibility conflicts
Vagrant will verify that the current Ansible version does support the
requested compatibility mode (only applicable if not "auto", of course).

As mentioned in the documentation, there is no sanity checks between
`version` option and `compatibility_mode` option.

With this change, the host-based provisioner is also improved to
execute only once the "ansible" command (and store the gathered
information for multiple usages like version requirement and
compatibility checks). On the other hand, the guest-based provisioner
can still potentially execute "ansible" twice (once in the
AnsibleInstalled cap, and via "gather_ansible_version" function via
Base::set_compatibility_mode).
2017-09-06 17:12:40 +02:00
Gilles Cornu
36616fb208
provisioners/ansible: Add @control_machine instance variable
This minor addition will be used for upcoming shared code in base
superclass and avoid "guest"/"host" repetitions.
2017-09-06 17:12:39 +02:00
Gilles Cornu
8c0df3d046
provisioners/ansible: Move version to common options
Before this change, only the ansible_local provisioner supported this
option (for ansible version requirement, and pip installation). Now, the
ansible host-based provisioner can also require a exact ansible version.

Resolve #8914

Note: this has been added as part of #6570 resolution, since the
introduction of the `compatibility_mode` auto-detection made both
provisioners made capable to detect ansible version.

Pending: optimize the code to avoid duplicated executions of "ansible
--version" command.
2017-09-06 17:12:35 +02:00