Commit graph

5519 commits

Author SHA1 Message Date
Jeff Bonhag
84d2c38cc2
Disallow multiple copies of the same ISO
This makes disk/dvd behavior more consistent, and makes it easier to
determine whether a dvd is already attached.
2020-07-09 15:09:10 -04:00
Jeff Bonhag
724687a601
Fix stale controller state
This was causing multiple dvds to be attached to the same port/device.
2020-07-09 15:09:10 -04:00
Jeff Bonhag
3c0021aac3
Use #read_storage_controllers for #get_port_and_device
This preserves the existing behavior of the method but changes the
implementation to use #read_storage_controllers. The caps that call a
mix of #get_port_and_device and #read_storage_controllers may be a
candidate for further refactoring, but this makes sure that we're
fetching storage attachments consistently.
2020-07-09 15:09:10 -04:00
Jeff Bonhag
d71a5bf453
Fall back on finding disk attachment by UUID 2020-07-09 15:09:10 -04:00
Jeff Bonhag
a4a082e70e
Prevent multiple calls to #read_storage_controllers 2020-07-09 15:09:09 -04:00
Jeff Bonhag
f72ae72aaa
Change method signature
This commit changes the method signature of the VirtualBox driver
methods so they mirror the underlying VBoxManage command.
2020-07-09 15:09:09 -04:00
Jeff Bonhag
ff53c64fbc
Fix test, add test .recover_from_resize 2020-07-09 15:09:09 -04:00
Jeff Bonhag
dfd3bc915c
Remove disks based on metadata
This commit changes the disk_cleanup behavior to remove disks based on
what has been recorded in the disk_meta file.
2020-07-09 15:09:07 -04:00
Jeff Bonhag
e01b51fa43
Disk management with a single controller
.configure_disks is responsible for determining the disk controller(s)
to use, given the machine configuration and the current disk config.
When a machine has a single controller, use it for all attachments.

When a machine has multiple controllers, attach disks to the SATA
controller and DVDs to the IDE controller.

This commit also returns additional attachment information
(controller/port/device) with the disk metadata.
2020-07-09 15:07:49 -04:00
Jeff Bonhag
c9bdcb6839
Error on unsupported storage controller type 2020-07-09 15:07:49 -04:00
Jeff Bonhag
53f7412821
Make VirtualBoxDisksDefinedExceedLimit error generic
Create a #limit method in the StorageController class so we can
customize the error message when a storage controller is full.
2020-07-09 15:07:49 -04:00
Jeff Bonhag
1e6eb0d636
Raise an error if primary disk can't be found 2020-07-09 15:07:49 -04:00
Jeff Bonhag
8561467e40
IDE controllers have two devices/port 2020-07-09 15:07:49 -04:00
Jeff Bonhag
61f43fb59f
Require controller name for #remove_disk
Also use #get_controller methods when attaching a disk.
2020-07-09 15:07:48 -04:00
Jeff Bonhag
4736fbc88f
Require storage controller for .get_next_port
This also includes #get_controller refactorings and cleanup for the
cleanup_disks capabaility.
2020-07-09 15:07:48 -04:00
Jeff Bonhag
958023dbb9
Create #get_controller method in driver
This makes it easier to check if the required controller can be found,
and automatically raise an error if it is not.

Add a #storage_bus method to the StorageController class as a shorthand
way to check the general storage controller type.
2020-07-09 15:07:48 -04:00
Jeff Bonhag
3a515cc7d6
Error if the required storage controller not found
This commit adds a new error type that can be raised whenever a storage
controller of the required type is not found. This indicates that a user
needs to either add the storage controller manually or change their disk
configuration.

It also removes the last hardcoded instance of "SATA Controller" as a
default argument.
2020-07-09 15:07:48 -04:00
Jeff Bonhag
e21fb59380
DVD attachments should never be primary 2020-07-09 15:07:48 -04:00
Jeff Bonhag
4480eb0d88
Freeze values 2020-07-09 15:07:47 -04:00
Jeff Bonhag
5abde797e4
Forward #storage_controller to driver 2020-07-09 15:07:47 -04:00
Jeff Bonhag
61f59de69b
Extract StorageController object 2020-07-09 15:07:47 -04:00
Jeff Bonhag
2e879aa06f
Scan storage controllers for DVD cleanup 2020-07-09 15:07:47 -04:00
Jeff Bonhag
8739c04aa9
Mock out storage controllers 2020-07-09 15:07:47 -04:00
Jeff Bonhag
8407d79100
Refactor disk configuration to use dynamic names
This commit adds a new VirtualBox provider helper method to return a
list of storage controllers so Vagrant can find a storage controller
with the desired characteristics (type IDE or SATA).

This still needs to get wired up to the disk cleanup method.
2020-07-09 15:07:46 -04:00
Jeff Bonhag
8985369eab
Raise an error if disk files are re-used in config 2020-07-09 15:07:46 -04:00
Jeff Bonhag
c52eb1b44c
Feature: ISO attachment for VirtualBox
This builds on the existing disk functionality, and adds some special
IDE controller-related flavor.

Considerations for IDE controllers:
- Primary/secondary attachments, so that each port can have two devices
  attached
- Adding the ability to address a specific controller name for disk
  attachment

This also prevents a user from attaching multiple instances of the same
ISO file, because VirtualBox will assign each of these the same UUID
which makes disconnection difficult. However, if multiple copies of the
ISO are attached to different devices, removing the DVD config will
cause the duplicate devices to be removed.

We may want to consider additional work to make the storage controllers
truly generic.
2020-07-09 15:07:27 -04:00
sophia
8e406184cb Add windows cap for building iso 2020-07-08 11:51:09 -05:00
sophia
b1d1c20ff7 Refactor building iso 2020-07-08 11:40:00 -05:00
sophia
4a77060805 Add linux cap 2020-07-08 11:15:26 -05:00
sophia
33d7c94320 Refactor iso building into a util 2020-07-08 10:24:21 -05:00
Sophia Castellarin
02ef62dcff
Merge pull request #11694 from soapy1/host-cap-build-iso
Build iso for Darwin host
2020-07-07 10:29:52 -05:00
Brian Cain
88c2bc2be1
Merge pull request #11541 from briancain/feature/hyperv-disk-mgmt
[Feature] Hyper-V Virtual Hard Disk Management
2020-07-06 15:24:29 -07:00
sophia
cbb66ed67f Update FreeBSD guest change hostname cap 2020-07-06 14:27:57 -05:00
Jeff Bonhag
2d4ecfbd23
Set rsync_command for Haiku guests
At the time of writing, the Haiku rsync lacks old-style --compress due
to its external zlib. Pass `-zz` to the guest rsync.

This works with or without the `--compress` flag in the host's
`rsync__args`.
2020-07-06 14:26:18 -04:00
Jeff Bonhag
a50432cf16
Install rsync on Haiku 2020-07-06 14:26:08 -04:00
Mingxiang Xue
035ae6d460 Fix sometimes-failed test cases that may depend on running order
Signed-off-by: Mingxiang Xue <mingxiangxue@gmail.com>
2020-07-03 20:40:02 +08:00
Sophia Castellarin
71620f6803
Merge pull request #11631 from soapy1/error-nfs-on-win
Error nfs on win
2020-07-02 10:19:06 -05:00
sophia
afae8c5640 Make tests check for output directory creation 2020-07-02 09:53:40 -05:00
sophia
6bdec0fd82 Make alpine guest respect 'hostname' network config option 2020-06-30 16:44:23 -05:00
Brian Cain
0139d8f020
Simplify other select to detect instead 2020-06-30 14:23:34 -07:00
Brian Cain
39b5bb4beb
Simplify selecting disk from all_disks hash 2020-06-30 14:23:34 -07:00
Brian Cain
05d3045f3a
Add RDoc for list_hdds 2020-06-30 14:23:34 -07:00
Brian Cain
9c1338b335
Fix typo in logger message 2020-06-30 14:23:34 -07:00
Brian Cain
af20d4a426
Remove old comment 2020-06-30 14:23:34 -07:00
Brian Cain
d35feb62a3
Simplify key check for provider option config 2020-06-30 14:23:34 -07:00
Brian Cain
b36db04b3d
Validate and get default disk extensions for provider
This commit updates the hyperv and virtualbox provider caps to validate
and also return the default disk extension.
2020-06-30 14:23:34 -07:00
Brian Cain
13c91d68a6
Only grab provider_config if provider key exists and config isn't empty 2020-06-30 14:23:34 -07:00
Brian Cain
1579ac9c3a
Update method docs to include expected opts keys 2020-06-30 14:23:34 -07:00
Brian Cain
69dff3a4c8
Use key? helper 2020-06-30 14:23:34 -07:00
Brian Cain
ae0fb6f857
Update check for provider_config availability 2020-06-30 14:23:34 -07:00
Brian Cain
a279f89d29
update how value is checked for execute in hyper-v driver 2020-06-30 14:23:34 -07:00
Brian Cain
71f6b97153
Delete old comments 2020-06-30 14:23:34 -07:00
Brian Cain
c063ca6100
Replace invalid disk name characters with underscore 2020-06-30 14:23:34 -07:00
Brian Cain
96d19264b6
Automatically remove invalid file characters for disk name
This commit copies what Vagrant does to filter out guest names with
invalid characters, and applies the same regex to disk names.
2020-06-30 14:23:34 -07:00
Brian Cain
4130cfe497
Properly check for disk paths when cleaning up disks in hyper-v 2020-06-30 14:23:34 -07:00
Brian Cain
66fe2e2854
Ensure size param is set for a disk 2020-06-30 14:23:34 -07:00
Brian Cain
18b9ccd0a5
Remove unused local var 2020-06-30 14:23:34 -07:00
Brian Cain
38445935dd
Ensure params are UInt32 rather than string 2020-06-30 14:23:34 -07:00
Brian Cain
f8dfcadb70
Only convert BlockSizeBytes option for Hyper-V disk provider_config 2020-06-30 14:23:34 -07:00
Brian Cain
56645b7bc5
Finish up configure_disk_test unit tests 2020-06-30 14:23:34 -07:00
Brian Cain
43eaceef13
Update disk meta keys to be consistent with Hyper-V keys 2020-06-30 14:23:34 -07:00
Brian Cain
754928a206
Ensure provider_config is a hash before calling .empty? 2020-06-30 14:23:34 -07:00
Brian Cain
d07e6c5c6a
Rearrange hyperv disk driver methods 2020-06-30 14:23:34 -07:00
Brian Cain
cf063c6e38
Update validation to look for if provider_config is empty not nil 2020-06-30 14:22:41 -07:00
Brian Cain
be939fcb59
Remove extra comments 2020-06-30 14:22:41 -07:00
Brian Cain
192caab02d
Fix provider_config merging for disk config 2020-06-30 14:22:41 -07:00
Brian Cain
1d8db27340
Fixup handling parameters for hyper-v powershell disk scripts 2020-06-30 14:22:41 -07:00
Brian Cain
bb4541a2a5
Remove stale comment 2020-06-30 14:22:41 -07:00
Brian Cain
0c19e6da26
Fix typo 2020-06-30 14:22:41 -07:00
Brian Cain
d30482a502
Explicitly pass along optional params 2020-06-30 14:22:41 -07:00
Brian Cain
bbe9a637e7
Convert size options into byte form 2020-06-30 14:22:41 -07:00
Brian Cain
9e8343fc93
Automatically add all passed in parameters to hyper-v command 2020-06-30 14:22:41 -07:00
Brian Cain
f798afa0c0
Attempt to pass along parameters 2020-06-30 14:22:41 -07:00
Brian Cain
cafb6ec239
Remove extra provider_config option 2020-06-30 14:22:41 -07:00
Brian Cain
2de5ef0bf2
Fix typo in new_vhd powershell script name 2020-06-30 14:22:41 -07:00
Brian Cain
cc2dc9a1e1
Use disk file from config if defined 2020-06-30 14:22:41 -07:00
Brian Cain
1dbda081d2
Add notes for creating disk options 2020-06-30 14:22:41 -07:00
Brian Cain
ed0fdbf868
Add note about attaching disks 2020-06-30 14:22:41 -07:00
Brian Cain
f2bcf86aca
Allow shrinking vhdx disk formats for hyperv provider 2020-06-30 14:22:41 -07:00
Brian Cain
82a6c2c8c1
Add TODO for attaching disks on start up if left in bad state 2020-06-30 14:22:41 -07:00
Brian Cain
20c4325d0a
Update code docs for hyperv disk management 2020-06-30 14:22:41 -07:00
Brian Cain
a3c2e31f01
Set default disk format for vmware_desktop 2020-06-30 14:22:41 -07:00
Brian Cain
5405aaac82
Remove disk file after detaching from hyper-v guest 2020-06-30 14:22:41 -07:00
Brian Cain
318eb4e65a
Update method docs in hyperv driver 2020-06-30 14:22:41 -07:00
Brian Cain
b3a7bd4566
Add dismount_vhd powershell script 2020-06-30 14:22:41 -07:00
Brian Cain
b66a61a58d
Add Dismount-VHD driver method for hyper-v 2020-06-30 14:22:41 -07:00
Brian Cain
b99143866c
Fix typo for ControllerNumber param 2020-06-30 14:22:41 -07:00
Brian Cain
f792b58704
Add functionality to clean up stale disks for hyper-v guests 2020-06-30 14:22:41 -07:00
Brian Cain
ac5cc68e55
Obtain primary disk UUID to save for disk_meta file 2020-06-30 14:22:41 -07:00
Brian Cain
2108b5a695
Begin to handle cleaning up disks with hyper-v 2020-06-30 14:22:41 -07:00
Brian Cain
8f6b18f992
Add note about obtaining disk name in hyper-v 2020-06-30 14:22:41 -07:00
Brian Cain
6b7b4b2c3b
Add todo for cleanup disk action 2020-06-30 14:22:41 -07:00
Brian Cain
f3f229c681
Resize hyper-v disks 2020-06-30 14:22:41 -07:00
Brian Cain
a6e025f3f0
Fix module name for cleanup_disks in HyperV driver 2020-06-30 14:22:41 -07:00
Brian Cain
441b81c704
Add TODO about getting disk info for disk_meta file 2020-06-30 14:22:41 -07:00
Brian Cain
bb2195b692
Add ability to create and attach disks to hyper-v guests 2020-06-30 14:22:41 -07:00
Brian Cain
b79d6bdc27
Actually compare disk size with requested size 2020-06-30 14:22:41 -07:00
Brian Cain
b6c99510c4
Add notes for creating disks for hyper-v 2020-06-30 14:22:41 -07:00
Brian Cain
8b28edf573
Comment out disk reattach for now 2020-06-30 14:22:41 -07:00
Brian Cain
6cc5de46de
Fixup how hyper-v configure disks checks disk size against config 2020-06-30 14:22:41 -07:00
Brian Cain
66a22b190a
Add powershell script for Get-VHD 2020-06-30 14:22:41 -07:00
Brian Cain
93489ba190
Add hyper-v driver method for obtaining full disk info given a path 2020-06-30 14:22:41 -07:00
Brian Cain
fb39bd7ed0
Use uppercase Name for getting vm name 2020-06-30 14:22:41 -07:00
Brian Cain
c9b2e609a0
Properly grab primary disk from hyper-v vm 2020-06-30 14:22:41 -07:00
Brian Cain
6835429538
Grab correct name to pass along to disk command 2020-06-30 14:22:41 -07:00
Brian Cain
0675393e06
Add named parameters to powershell execute methods in hyper-v driver
Parameters to the execute method need to be named to match up to their
names inside the parameter arguments for the respective powershell
scripts
2020-06-30 14:22:41 -07:00
Brian Cain
e8b900936a
Add disk management methods to hyper-v driver actions 2020-06-30 14:22:41 -07:00
Brian Cain
fe7705e694
Update how disk_ext default is set
Prior to this commit, the default value of disk_ext was set in the
finalize! method, and was really only valid for the virtualbox provider.
This commit updates that by moving the step into the validate function,
which has access to the machines provider.
2020-06-30 14:22:41 -07:00
Brian Cain
a7a779586a
Don't limit disk number for hyper-v for now 2020-06-30 14:22:41 -07:00
Brian Cain
a20418ad43
Format output from json to return to hyper-v driver 2020-06-30 14:22:41 -07:00
Brian Cain
59bbf9736a
Add powershell script for retreiving disk info for a hyper-v guest 2020-06-30 14:22:41 -07:00
Brian Cain
50adf04b5d
Add list harddisk method for hyper-v provider 2020-06-30 14:22:41 -07:00
Brian Cain
c832394a95
Add location of hyper-v disk path 2020-06-30 14:22:41 -07:00
Brian Cain
83922333d5
Use UInt64 type instead of String for DiskSize 2020-06-30 14:22:41 -07:00
Brian Cain
d451151ff8
Add resize disk driver method 2020-06-30 14:22:41 -07:00
Brian Cain
06799f0ff1
Add driver scripts for disk management 2020-06-30 14:22:41 -07:00
Brian Cain
2b8376cda8
Add additional driver methods for managing disks in hyper-v 2020-06-30 14:22:41 -07:00
Brian Cain
60f2c14b82
Update attach disk script 2020-06-30 14:22:41 -07:00
Brian Cain
26e5cf1d02
Add powershell script for attaching a harddisk to a guest 2020-06-30 14:22:41 -07:00
Brian Cain
09bd28048e
Add driver method for attaching a new disk for hyper-v guests 2020-06-30 14:22:41 -07:00
Brian Cain
7be0a6807a
Fix mixed tabs on get_vm_status script 2020-06-30 14:22:41 -07:00
Brian Cain
787c8a150a
Remove virtualbox code from hyper-v configure_disks file 2020-06-30 14:22:41 -07:00
Brian Cain
090959227e
More comments for TODO with cleaning up disks in hyper-v 2020-06-30 14:22:41 -07:00
Brian Cain
287b0e5aab
Add comment for implementation 2020-06-30 14:22:41 -07:00
Brian Cain
2ef9274f9d
Remove virtualbox code from cleanup_disks method 2020-06-30 14:22:41 -07:00
Brian Cain
8dfa1affdf
Use correct disk extension formats for Hyper-V 2020-06-30 14:22:41 -07:00
Brian Cain
cf47e7ecaf
Replace virtualbox cap name with hyperv 2020-06-30 14:22:41 -07:00
Brian Cain
9020868a93
Add initial files for Hyper-V disk configuration and management 2020-06-30 14:22:41 -07:00
Brian Cain
0d6f12fc3a
Add capabilities for disk management with Hyper-V 2020-06-30 14:22:41 -07:00
sophia
ed8d6b007e Detach from windows process when launching rdp 2020-06-30 16:16:23 -05:00
sophia
8bad23d176 Update OpenBSD guest change hostname cap 2020-06-29 17:02:43 -05:00
sophia
7322c74eef Add optional arguments as a hash 2020-06-29 14:10:13 -05:00
Brian Cain
42718437ab
Initial commit of cloud_init setup action
This commit introduces a new builtin action for preparing and
configuring guests cloud_init configs as an iso to be attached later by
the disk actions
2020-06-29 11:00:16 -07:00
sophia
db6d1b4aa6 Make darwin guest respect 'hostname' network config option 2020-06-29 12:03:12 -05:00
Jeff Bonhag
9af48e5764
Raise an error on nil exit status
This commit changes the SSH communicator to raise an error if Vagrant
doesn't receive an exit status from an SSH command, for example if the
command is terminated by the OOM-killer.
2020-06-26 13:25:59 -04:00
sophia
decd489a6d Overwrite outputfile if exists and update available 2020-06-16 09:32:40 -05:00
sophia
1ff6582fff Refactor out shared utility 2020-06-16 09:32:37 -05:00
Chris Roberts
c9a65ac75b
Merge pull request #11688 from chrisroberts/f-trigger-all
Fix trigger matching on `:all` special value
2020-06-15 14:15:26 -07:00
Sophia Castellarin
d9bbdab428
Merge pull request #11567 from soapy1/suse-hosts-mod
Set hostname according to hostname flag and ip for suse
2020-06-15 14:29:43 -05:00
sophia
e1d104a8e3 Build iso for Darwin host 2020-06-15 09:55:15 -05:00
Sophia Castellarin
a2b70bc28a
Merge pull request #11566 from soapy1/network-hostname-flag
Add :hostname option to network config
2020-06-12 16:51:31 -05:00
Sophia Castellarin
7dfb71c471
Merge pull request #11565 from soapy1/disable-host-modification
Add option to disable modification of /etc/hosts on guest
2020-06-12 16:30:49 -05:00
Sophia Castellarin
111f58ef38
Merge pull request #11628 from soapy1/vagrant-destroy-power-off
Option to forcefully/gracefully destroy virtualbox vm
2020-06-12 15:00:01 -05:00
sophia
b02a78c661 Change config option to allow_hosts_modification 2020-06-12 14:50:07 -05:00
sophia
7265dd2a84 Add :hostname option to network config
* hostname is a boolean
* a network that sets hostname should have a static ip address
* only one network may set hostname

can be set at `config.vm.network :public_network, hostname: true, ip: "192.168.0.1"`
2020-06-12 14:44:35 -05:00
sophia
ff0aea4493 Add option to disable modification of /etc/hosts on guest 2020-06-12 14:25:19 -05:00
Sophia Castellarin
13f50ca840
Merge pull request #11644 from soapy1/shell-provisioner-bat
Shell provisioner gets extension specified in path config if exists
2020-06-12 14:16:40 -05:00
Sophia Castellarin
4704606056
Merge pull request #11570 from soapy1/mount-shared-folders
Automatically mount virtual box shared folder when machine reboots
2020-06-12 14:11:21 -05:00
Chris Roberts
f5a957f949 WIP 2020-06-11 10:39:35 -05:00
Brian Cain
7b95826dd7
Add type as param for cloud_init config 2020-06-10 15:38:18 -07:00
Chris Roberts
916655dbd3 Fix trigger matching on :all special value
Updates the type to do a proper comparison when checking for
the `:all` special value as well as applied ignores.

Fixes #11599
2020-06-09 16:12:48 -07:00
sophia
66a3b58c08 Add provider capaiblity :has_communicator 2020-06-09 09:33:11 -05:00
Brian Cain
492a532ef5
Remove freezing symbols in disk/trigger conig 2020-06-08 15:02:44 -07:00
Brian Cain
aeeb5dfc6f
Introduce cloud_init config for Vagrant
This commit adds the basic config class for defining cloud_init for a
given guest
2020-06-05 10:38:24 -07:00
sophia
33c41d99dd Raise error if trying to create an nfs syncd folder for windows 2020-06-04 11:36:53 -05:00
sophia
1a758d839b Option to gracefully destroy vm 2020-05-29 15:36:40 -04:00
sophia
672859e296 Add tests and docs 2020-05-29 15:34:46 -04:00
sophia
64f5a9e57f Validate communicator type 2020-05-29 15:33:43 -04:00
sophia
9b6c562016 Set run config for provisioner 2020-05-29 15:33:43 -04:00
sophia
33576b5846 Docker provider to run provisioners if available 2020-05-29 15:33:42 -04:00
sophia
16c9e88b1c Add communicator_require option to provisioners 2020-05-29 15:33:42 -04:00
sophia
fe7968315b Add option to allow/disable fstab modification
Defaults to allow modification of fstab
2020-05-29 15:29:21 -04:00
sophia
1dc761a6c4 Refactor out persisting a mount to it's own guest cap 2020-05-29 15:26:48 -04:00
sophia
d7bd29384e Remove fstab if it is unable to successfully mount 2020-05-29 15:26:48 -04:00
sophia
b511d23ae1 Refresh fstab when folders synced 2020-05-29 15:26:48 -04:00
sophia
298027b70e Automatically mount virtual box shared folder when machine reboots
This is done by adding the mount to fstab
ref: https://askubuntu.com/questions/252853/how-to-mount-a-virtualbox-shared-folder-at-startup

Note, add `nofail` to mount options so as to not stop machine from booting if device disappears
2020-05-29 15:26:48 -04:00
sophia
75de83db9e Simplify some install operations 2020-05-29 15:10:13 -04:00
sophia
4169ea6e57 Allow users to choose which shells to install 2020-05-29 15:10:13 -04:00
Sophia Castellarin
1adfe8bbaa Fix some typos 2020-05-29 15:10:13 -04:00
sophia
9e2b7fb690 Autocomplete command 2020-05-29 15:10:13 -04:00
sophia
85fd3b79fe Refactor editin guest /etc/hosts into a util 2020-05-29 15:08:39 -04:00
Brian Cain
fab786cc28
Merge pull request #11602 from briancain/feature/docker-port-collision-fix
Fixes #9067: Ensure new containers don't grab existing bound ports
2020-05-29 08:37:23 -07:00
sophia
a8c9d6c3d3 Fix tests 2020-05-29 10:27:42 -04:00
Robin Munn
a86482b017 Only use systemd_networkd if remote system has it 2020-05-29 07:58:13 +07:00
sophia
fb2470f48d Ensure shell provisioner gets extension specified in path config if exists 2020-05-26 16:35:31 -04:00
Brian Cain
bd4181eb15
Remove whitespace 2020-05-20 10:44:14 -07:00
Brian Cain
1e1d65f81c
Ensure MapCommandOptions util is required prior to use 2020-05-20 10:43:39 -07:00
sophia
fc79aa96dd Search for first free loopback address to insert hostname 2020-05-15 14:24:04 -04:00
sophia
f5d5baec40 Set hostname according to hostname flag and ip for suse 2020-05-15 13:30:23 -04:00
Sophia Castellarin
5e4373998c
Merge pull request #11587 from rgl/feature-esxi-guest-only-create-ssh-directory-when-needed
esxi guest: only create the ssh directory when needed
2020-05-12 15:28:21 -04:00
Brian Cain
cfb9a6457e
Remove obtaining name from docker container info 2020-05-12 11:26:48 -07:00
Brian Cain
c18ceb20bc
Define custom port_check method for halted docker containers 2020-05-12 11:17:15 -07:00
Brian Cain
b2d9abe344
Fixes #9067: Ensure new containers don't grab existing bound ports
Prior to this commit, if a created but exited container bound a port,
and a new container grabed that same port (say for an ssh port forward),
when the initial container came back up it would fail because the port
also got bound to the second container. This commit fixes that behavior
by first looking at what containers are already bound prior to creating
a container.
2020-05-11 10:17:22 -07:00
Rui Lopes
6719cab41a esxi guest: do not fail when we cannot set the ssh directory permissions in esxi 7.0 2020-05-08 20:20:03 +01:00
sophia
725a127467 Seperate podman centos and rhel install 2020-05-06 15:33:44 -04:00
codylane
2a90c1b4fd fixes GH issue #11580 2020-05-05 11:48:14 -06:00
Sophia Castellarin
85fc3a99b5
Merge pull request #11560 from soapy1/box-download-ssh-settings
Add option `box_download_options`
2020-04-30 10:03:23 -04:00
sophia
646de433a9 Validate conversion of map to cmd options 2020-04-29 15:10:48 -04:00
sophia
7e125969dd Add option box_download_options
Allow users to specify a map of extra options to pass to the downloader.
These options will be passed to curl, with a `--` appended to the key
2020-04-29 15:10:44 -04:00
Sophia Castellarin
56bc93e154
Merge pull request #11540 from soapy1/winrm-config-docs
Update winrm config docs
2020-04-29 09:57:23 -04:00
sophia
13bb29af2b Don't warn on ansible compatability mode 2020-04-28 10:48:25 -04:00
Jeff Bonhag
2c4a40fccb
Fix issues with shell provisioner when WinSSH shell is set to cmd (#11547)
This commit fixes a couple of issues with the shell provisioner when the
WinSSH shell is set to cmd:

- A check for the .bat extension returned by File.extname
- Execute inline scripts with PowerShell when upload_path ends with .ps1

* Ensure script has correct extension

Co-Authored-By: Sophia Castellarin <sophia@hashicorp.com>
2020-04-24 15:56:27 -04:00
sophia
b4e13bf1ce Update winrm config docs 2020-04-23 09:47:16 -04:00
Chris Roberts
720c3012ce Use #systemd_networkd? guest check for renderer 2020-04-22 15:07:14 -07:00
Chris Roberts
4546d804b1 Add support for configuring SSH connect timeout
Retains the original default value of 15 seconds for SSH connect
timeout. Allows users to modify this timeout via SSH communicator
option. Enforces integer values for timeout and validates custom
values are greater than 0.
2020-04-20 14:23:21 -07:00
Jeff Bonhag
f593bb54d2
Fix #8704: Raise an error if the guest IP ends with .1 (#11500)
If the VirtualBox guest property /VirtualBox/GuestInfo/Net/1/V4/IP
returns an IP address ending in .1, raise an error.

This addresses an issue that was revealed as an NFS error, where Vagrant
was creating an exports file with the wrong IP address. This was thought
to be caused by the presence of a docker0 interface, but it manifested
itself even without Docker installed.

This issue is difficult to reproduce, but hopefully this PR will get us
closer to the root cause.
2020-04-20 13:28:37 -04:00
Sophia Castellarin
c89b68b06d
Merge pull request #11517 from soapy1/win-shell-provisioner-fail
Ensure windows files get an extension
2020-04-20 12:38:06 -04:00
Sophia Castellarin
bc4368f739
Merge pull request #11503 from soapy1/smb-symlinks
Smb symlinks
2020-04-20 12:35:38 -04:00
sophia
4d516e2cae Test provision_winssh 2020-04-17 13:11:57 -04:00
Chris Roberts
c0f8a54924
Merge pull request #11436 from hvnsweeting/patch-1
Allow to specify python_version
2020-04-17 08:55:20 -07:00
sophia
2ddd12047c Ensure windows files get an extension 2020-04-17 10:31:24 -04:00
sophia
30ade2991b Emit warning message if using mfsymlink 2020-04-17 09:56:52 -04:00
Sophia Castellarin
1a45f302e3
Merge pull request #11499 from soapy1/hyperv-integrationservice-non-ascii-names
Use service id for enabling/disabling vm integration services
2020-04-17 09:53:35 -04:00
Sophia Castellarin
5dc96f0886
Merge pull request #11498 from soapy1/ubuntu-w-networkmanager
Choose netplan renderer based on network config and available tools
2020-04-17 09:50:31 -04:00
Sophia Castellarin
1fb3f30145
Merge pull request #11472 from soapy1/podman-provisioner
Add podman provisioner
2020-04-17 09:48:12 -04:00
Chris Roberts
98b6710b83
Merge pull request #11425 from idursun/catch-identitynotmappedexception
Fix #11271: catch IdentityNotMappedException
2020-04-16 17:52:00 -07:00
Chris Roberts
84b309db32 Include test coverage on python value behavior 2020-04-16 17:25:55 -07:00
Viet Hung Nguyen
b084e61b17 Allow to specify python_version 2020-04-16 17:16:07 -07:00
Chris Roberts
40243a8f2f Adjust when the hook action is performed
With the adjustments provided in #11455 the location of injecting
within the call stack has been changed slightly. With the entire
stack now being generated before execution instead of dynamic
hooks being wrapped around actions at run time, this update
ensures that the method is called correctly after the entirety of
the synced folders action has completed.
2020-04-15 13:46:10 -07:00
sophia
4ded8f098f Clarify SMB username format 2020-04-13 14:21:21 -04:00
Sophia Castellarin
ee87596a77
Merge pull request #11462 from soapy1/docker-provision-centos8
Docker provision centos8
2020-04-13 09:42:37 -04:00
sophia
d5cd4da0e0 Use service id for enabling/disabling vm integration services
ref:
https://github.com/PlagueHO/LabBuilder/issues/183
ref service name to id:
https://social.technet.microsoft.com/Forums/de-DE/154917de-f3ca-4b1e-b3f8-23dd4b4f0f06/getvmintegrationservice-sprachabhngig?forum=powershell_de
2020-04-13 09:39:53 -04:00
sophia
538ee948ee Choose netplan renderer based on network config and available tools 2020-04-10 17:17:04 -04:00
Chris Roberts
c5e2f36ddc
Merge pull request #11455 from chrisroberts/enhancement/triggers-insertions
Adjust how trigger actions are inserted into the stack
2020-04-08 16:53:17 -07:00
sophia
307291b7f8 Add mfsymlinks as a default option for mounting smb folders 2020-04-08 14:52:37 -04:00
Brian Cain
dda2c8f913
Merge pull request #11411 from thunder-spb/alpine-ansbile-support
Alpine capability for Ansbile support
2020-04-08 09:43:53 -07:00
sophia
e61725a130 Docker provision to support centos guest, not RHEL guest 2020-04-06 13:48:43 -04:00
sophia
5104d075bd Add CentOS guest plugin 2020-04-06 13:48:39 -04:00
Sophia Castellarin
a3e8e822e4
Merge pull request #11465 from soapy1/quiet-cli-opt
Quiet cli option
2020-04-06 10:22:29 -04:00
Sophia Castellarin
cf9a690bc9
Merge pull request #11482 from soapy1/systemd-cap-halt
Use systemd to halt system if available
2020-04-06 10:18:53 -04:00
sophia
bcce2f720d Add option to install from kubic 2020-04-06 10:13:57 -04:00
Alexzander thunder Shevchenko
4caa5e1434 Setting python version back to 3.x since there some issues with Ansible version detection for pip installation. 2020-04-05 15:03:01 +03:00
Alexzander thunder Shevchenko
d1d214f6e2 Set python version to 2.7 as all other ansible provisioners do 2020-04-05 14:46:33 +03:00
Alexzander thunder Shevchenko
d73c2c5fa7 Get back to install pip via get_pip script 2020-04-05 14:28:19 +03:00
sophia
42785cb254 Add entries for podman error class 2020-04-03 17:13:41 -04:00
sophia
39d7cd8997 Wrap all progress type outputs with rewriting to enable --no-tty 2020-04-03 16:28:59 -04:00
sophia
311fb035e6 Don't install docker on RHEL
Docker CE is not supported on RHEL.
It is supported on CentOS
2020-04-03 15:14:03 -04:00
sophia
d500daea03 Support centos flavors of redhat 2020-04-03 14:27:44 -04:00
sophia
338f13a2ae Use systemd to halt system if available 2020-04-01 15:43:10 -04:00
sophia
d87d421586 Install docker using docker repo instead of convenience script
This approach will be more stable than depending on a convenience
script provided by docker

ref: https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-using-the-convenience-script
2020-04-01 15:05:48 -04:00
sophia
777f680837 Use systemd to rebot system if available 2020-04-01 13:57:07 -04:00
sophia
0c0c361386 Extract container plugin 2020-03-30 17:41:49 -04:00
Sophia Castellarin
0ca53d9e6e
Merge pull request #11356 from jackorp/vagrant-podman-container-build
Docker provider: catch container name when using podman.
2020-03-30 16:19:31 -04:00
sophia
4c74f8a112 Add podman provisioner 2020-03-30 15:02:56 -04:00
Sophia Castellarin
54972c045b
Merge pull request #10592 from ichesnokov/master
Make sure that ips array contains unique values
2020-03-30 10:31:48 -04:00
sophia
f7d6070b0d Raise error when trying to install docker on centos8 2020-03-27 10:05:01 -04:00
Chris Roberts
217f2530db Use machine specific triggers instance when machine is available in runner 2020-03-26 17:20:55 -07:00
Jaroslav Prokop
5208032594 Docker provider: catch container name when using podman.
When user is using podman's docker CLI emulation the containers would
fail to enter running state because the docker driver could not catch
the container name. This commit fixes that by adding a check if podman
docker emulation is used and pick the container hash correctly from the
output.
2020-03-25 19:34:31 +01:00
sophia
987ab17f4d Add suport for SMB on redhat 2020-03-25 12:27:04 -04:00
sophia
60b05426e1 Install containerd.io from docker on rhel_8
containerd.io is required for docker howerver it is not avilable
in official yum repos. It needs to be installed directly from
docker.

ref:
https://docs.docker.com/install/linux/docker-ce/centos/
https://linuxconfig.org/how-to-install-docker-in-rhel-8
2020-03-25 10:40:31 -04:00
sophia
9d53e8ccab Recognize rhel8 flavor 2020-03-25 10:36:02 -04:00
Sophia Castellarin
2dadeb3ee5
Merge pull request #11461 from soapy1/get-docker-image-id
Get correct docker image from build output
2020-03-24 09:27:20 -05:00
Sophia Castellarin
e07d3c80e2
Merge pull request #11355 from terryburton/master
docker provider: Don't explode when removing an image if it is in use
2020-03-24 09:22:36 -05:00
sophia
324294993e Check for docker buildkit output first
When buildkit is enabled docker will write out
`writing image <image id>`
When buildkit is not enables docker will write out
`Successfully builld <image id>`
It is more likely that searching for the `writing image` will not
clash with build output than when searching for `Successfully built`.
eg. when installing python packages with pip, it is common to use
the verbage `Successfully built`.
2020-03-23 13:54:49 -05:00
sophia
380c25a7ae Get last image id from docker output 2020-03-23 10:10:19 -05:00
Chris Roberts
d08c68ecf3 Adjust how trigger actions are inserted into the stack
This adjusts how triggers are implemented during a normal run. Any
defined triggers which are applicable are located and injected into
the run stack as the stack is built, including hook type triggers.

Support is included for dynamic hook lookup.

The data type used when defining triggers has also been relaxed to
support symbols, strings, or constants.
2020-03-17 15:07:36 -07:00
Jeff Bonhag
6efdcd2068
Merge pull request #11430 from chrisroberts/winssh-hacks
Fix issues with Windows SSH provisioner (continued...)
2020-03-11 10:39:44 -04:00
Chris Roberts
7d44fef00e
Merge pull request #11428 from chrisroberts/fix/windows-reboot
Catch any StandardError exception while waiting for Windows reboot
2020-03-09 16:48:27 -07:00
Chris Roberts
193eb11277
Merge pull request #11427 from chrisroberts/fix/auto-hook-creation
Update dynamic action hooks implementation
2020-03-09 16:46:27 -07:00
Alexzander thunder Shevchenko
e3461d354b python3 setup
Python 3 setup for any mode;
Move python setup to separate method;
2020-03-07 16:31:55 +03:00
Chris Roberts
7c2083d5da Update how delayed actions are stored to avoid accessing uninitialized value 2020-03-05 13:25:57 -08:00
Chris Roberts
ec9d23a531 Update public key cap to use powershell 2020-03-04 15:08:03 -08:00
Chris Roberts
852c549886 Force powershell on connection for consistent behavior
This patches the connection instances generated for the winssh
communicator so when a command is executed it is always run
with powershell. This prevents inconsistencies with argument
handling based on what the default shell is set to on the remote
side.

Since powershell is the default, environment variable template
only needs to be set for powershell style. If the shell setting
is updated to `cmd`, the command will be properly prefixed.

Default shell has been updated to powershell, to prevent extraneous
wrapping where it's not required. The `#ready?` check has also been
updated to use a constant value, which is overridden within winssh
as a blank command is invalid.
2020-03-04 15:08:03 -08:00
Jeff Bonhag
9a26c123b9 Use SFTP for Windows file transfer
SFTP is more reliable than SCP when dealing with unknown sshd
configurations on the server side. It also provides a convenient
facility for creating remote directories, so we can remove the
Windows-specific `#create_remote_directory` method.
2020-03-04 15:08:03 -08:00
Jeff Bonhag
b2aa16dc78 Set remote script extension from local script extension 2020-03-04 15:08:03 -08:00
Jeff Bonhag
b6e8262bf2 Perform scp commands with powershell.exe
This commit includes a monkey patch for Net::SCP#start_command so that
PowerShell commands are escaped correctly.
2020-03-04 15:08:03 -08:00
Jeff Bonhag
85f0fce57a Allow #provision_winrm to modify upload_path
We need to ensure that Windows files have an extension when provisioning
via WinRM.
2020-03-04 15:08:03 -08:00
Jeff Bonhag
4b7d55afaa Fixup paths to work with server-side Bash
This commit normalizes our Windows paths to use `/` instead of `\`.
These paths are compatible with both cmd and PowerShell, and are
required if the server-side shell is set to Bash.

The OpenSSH server executes all commands inside a default login shell
which cannot be controlled by the Vagrant configuration. So what ends up
getting executed on the server side looks something like this:

    "c:\\program files\\git\\bin\\bash.exe" -c "C:\\Windows\\Temp\\vagrant-ssh20200130-41670-1w5nsjy.bat"

By flipping the direction of the directory slashes, we end up with:

    "c:\\program files\\git\\bin\\bash.exe" -c "C:/Windows/Temp/vagrant-ssh20200130-43415-f1d5n2.bat"

This works whether the server-side shell is set to cmd, powershell, or
bash.
2020-03-04 15:08:03 -08:00
Jeff Bonhag
fcd07e3a37 Switch to PowerShell for create_remote_directory 2020-03-04 15:08:03 -08:00
Jeff Bonhag
8affdd24b6 Wire up inline command for popular Windows shells
* Remove connection between shell provisioner directory config and WinSSH
directory config because these should remain separate.
2020-03-04 15:08:03 -08:00
Jeff Bonhag
ee486203d1 Introduce force_raw option 2020-03-04 15:08:03 -08:00
Jeff Bonhag
df7c11a3a7 Fix issues with Windows SSH provisioner
Windows commands that run over SSH are wrapped in a script that writes a
special marker to the two output streams (stdout and stderr).  This
allows Vagrant to consume the output streams.

Unfortunately, this leads to a sort of chicken-and-egg problem where no
commands can be run before a wrapper script exists. For example, you
can't make a destination directory to upload the wrapper script without
first creating a wrapper script to make the directory. :)

This commit changes the behavior of the WinSSH communicator to assume
that the destination directory already exists for provisioning scripts.

It also moves the default `upload_path` from the shell provisioner
config so we can have OS-specific defaults.

Finally, it introduces a Windows-specific #upload method which will
properly use a Windows path separator on a non-Windows host.
2020-03-04 15:08:03 -08:00
Chris Roberts
6f707c829d Catch any StandardError exception while waiting for Windows reboot
This prevents any unexpected connection related error from breaking
the wait loop while windows reboots. If an underlying problem unrelated
to the guest is causing exceptions, the exception will still be raised
to the user, simply after the loop has exceeded the defined maximum
wait time.

Fixes #11238
2020-03-03 17:02:04 -08:00
Chris Roberts
eba18091f9
Merge pull request #11391 from chrisroberts/fix/winrm-server-retry
Update exit code value used for retry check - ArgumentException
2020-03-03 16:26:33 -08:00
Chris Roberts
660166720b Update delayed execution implementation to utilized appended action hook 2020-03-03 16:23:31 -08:00
ibrahim.dursun
fb8180a843
Fix #11271: catch IdentityNotMappedException
Some IdentityReferences cannot be translated to
[System.Security.Principal.SecurityIdentifier] because they don't map to
a SecurityIdentifier.

An example is:
IdentityReference : APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES

In such case, it is better to catch the exception and treat it as $false.
2020-03-03 15:57:21 +00:00
Alexzander thunder Shevchenko
8aa1aee155 Cleanup redundant lines 2020-02-23 20:33:53 +03:00
Alexzander thunder Shevchenko
24a3016f2b Add Alpine into provider capability 2020-02-23 20:31:07 +03:00
Alexzander thunder Shevchenko
5ea65e9534 Add Alpine Ansible capability 2020-02-23 20:30:35 +03:00
Jeff Bonhag
a10b2c3108
Fix #11403: Parse list dhcpservers output on VirtualBox 6.1 (#11404)
This commit creates a custom `read_dhcp_servers` method in the
VirtualBox 6.1 driver to handle changes made in the ouput of
`VBoxManage list dhcpservers`.

Tests for VirtualBox 6.1+ can no longer use the shared examples for the
VirtualBox 4.x driver, because the `read_dhcp_servers` change is not
backwards compatible.

This commit also creates the boilerplate for a VirtualBox 6.x shared
example in case we want to put tests there in the future.
2020-02-18 15:14:31 -05:00
Robin Munn
6671cc6986 Use systemd-networkd on Archlinux guests
Fixes #11254
2020-02-15 15:42:35 +07:00
Brian Cain
96d7c19c06
Abstract out recovery method for resizing disk failures
This commit moves out the recovery steps for failures when Vagrant
attempts to resize disks. It wraps itsemf in a begin/rescue in case an
additional error occurs, we can still surface the original error that
caused the resizing to fail.
2020-02-13 09:42:18 -08:00
Chris Roberts
e430809cdd Update exit code value used for retry check - ArgumentException 2020-02-12 16:42:21 -08:00
Brian Cain
625bbf9cc8
Add more specific rescue exceptions for when errors occur for resizing
disks
2020-02-12 16:26:18 -08:00
Brian Cain
42133ad34e
Move strings into locales file 2020-02-12 16:22:02 -08:00
Brian Cain
37f8df174c
Freeze all values in valid disk ext default types 2020-02-12 16:00:23 -08:00
Brian Cain
baabf6650f
Check for provider capability with disk_ext types before using it 2020-02-12 15:59:37 -08:00
Brian Cain
dafb60ad4f
Update experimental feature flag for disk 2020-02-12 15:38:34 -08:00
Brian Cain
c5f4534487
Add virtualbox capability for validating disk extension types 2020-02-12 13:21:09 -08:00
Brian Cain
2174f4c219
Write up recovery message for when vagrant fails to resize vmdk disks 2020-02-12 10:24:38 -08:00
Brian Cain
d5e12dab17
Store backup disk location as local var 2020-02-12 09:56:41 -08:00
Brian Cain
1826d210a0
Recover from cloning and resizin disk failures
This commit adds some recovery if Vagrant fails to reattach or clone a
vmdk disk that needs to be resized. It first moves the original disk
(after cloning) to a backup file. If something fails, it will reattach
the original disk to the guest and continue to raise the exception.
2020-02-11 16:02:24 -08:00
Brian Cain
6fcc5fa31a
Raise error if guest has no available ports for attaching disks 2020-02-11 13:06:57 -08:00
Brian Cain
4866709c67
Move disk cloning to virtualbox driver 5 2020-02-10 15:17:23 -08:00
Brian Cain
5bc0b28116
Update how to check for empty string 2020-02-10 13:21:27 -08:00
Brian Cain
00d7ecb57f
Remove explicit return for disk configure methods 2020-02-10 13:04:47 -08:00
Brian Cain
b11aa53294
Remove unused experimental flag for disk enablement 2020-02-10 13:03:58 -08:00
Brian Cain
b2a89f8711
Remove old comment on vbox driver disk method 2020-02-10 12:58:11 -08:00
Brian Cain
773a3aeb7e
Add optional hash arguments to driver methods 2020-02-10 12:58:11 -08:00
Brian Cain
f59a5c2c70
Enable virtualbox and disk config in single flag 2020-02-10 12:58:11 -08:00
Brian Cain
b9a72ce8ff
Make get_port_and_device disk method a driver method instead 2020-02-10 12:58:11 -08:00
Brian Cain
252a7f7a4e
Do not clean up and detach primary disk 2020-02-10 12:58:11 -08:00
Brian Cain
8654b2bb67
Add note about provider specific disk configs 2020-02-10 12:58:11 -08:00
Brian Cain
72576d3046
Rename method for clarity for what it handles 2020-02-10 12:58:11 -08:00
Brian Cain
6ea3c3f40e
Move current_disk work into own method 2020-02-10 12:58:11 -08:00
Brian Cain
e4782e9d6a
Add method doc for method 2020-02-10 12:58:11 -08:00
Brian Cain
236815f2ff
Attempt to connect vagrant managed disks to guest if not attached 2020-02-10 12:58:11 -08:00
Brian Cain
d215d9d785
Only log warning when cleaning up disks
If a disk exists but isn't attached to a guest, don't attempt to remove
disk from guest.
2020-02-10 12:58:11 -08:00
Brian Cain
2e53c21fea
Return empty hash instead of null from configure_disks 2020-02-10 12:58:11 -08:00
Brian Cain
df742603cb
Add code comment about when SATA controller has no more open ports 2020-02-10 12:58:11 -08:00
Brian Cain
3d4d0be58f
Attach disk to next available port to avoid port fragmentation
This commit ensures that vagrant attaches a new disk to the _next
available_ port, rather than the last one "used". This can occur if a
disk has been removed in a previous run, leaving a port open
2020-02-10 12:58:11 -08:00
Brian Cain
c0fb8af1a3
Fix NUMBER typo 2020-02-10 12:58:11 -08:00
Brian Cain
2db81b049b
Only look at SATA Controller disk images 2020-02-10 12:58:11 -08:00
Brian Cain
f6a5a3ae41
Simplify determining next port to use 2020-02-10 12:58:11 -08:00
Brian Cain
9a5ce8381b
Add comment field for new disks 2020-02-10 12:58:11 -08:00
Brian Cain
98a81aac6b
Move show_vm_info call 2020-02-10 12:58:11 -08:00
Brian Cain
1b5f8760d0
Simplify get_port_device and add note about duplicated method in class 2020-02-10 12:58:11 -08:00
Brian Cain
8407fb28cb
Add more code comments for configuring disk class 2020-02-10 12:58:11 -08:00
Brian Cain
6376962209
Simplify obtaining port and device number info 2020-02-10 12:58:11 -08:00
Brian Cain
c049dd9211
Rename method to match functionality
This method now only returns the next available port, as virtualbox
guests can only have 1 device controller.
2020-02-10 12:58:11 -08:00
Brian Cain
6676fe6f7f
Remove stale TODOs 2020-02-10 12:58:11 -08:00
Brian Cain
524d98fe5c
Add comment about MAX_DISK_SIZE const 2020-02-10 12:58:11 -08:00
Brian Cain
cb3cc42dce
Determine primary disk through vm_info rather than list_hdds 2020-02-10 12:58:11 -08:00
Brian Cain
17b75db35b
Move disk driver methods into virtualbox version 5 2020-02-10 12:58:11 -08:00
Brian Cain
fddcd71eaf
Default to vdi since virtualbox default is vdi 2020-02-10 12:58:11 -08:00
Brian Cain
2176216bf8
Add error for when disks defined are greater than the max limit 2020-02-10 12:58:11 -08:00
Brian Cain
1e2570a599
Add methods for controller attaching 2020-02-10 12:58:11 -08:00
Brian Cain
a3b07a884a
Add way to configure disk extension 2020-02-10 12:58:11 -08:00
Brian Cain
4a4a48b69c
More descriptive name for disk data 2020-02-10 12:58:11 -08:00
Brian Cain
91e9de79a9
Add warning for currently unsupported disk types 2020-02-10 12:58:11 -08:00
Brian Cain
b388b34846
Update todos and method docs 2020-02-10 12:58:11 -08:00
Brian Cain
7215764130
Remove medium vars from base driver 2020-02-10 12:58:11 -08:00
Brian Cain
e31b013df8
Ensure vmdk disks that are resized stay in original format 2020-02-10 12:58:11 -08:00
Brian Cain
16c38ed9f4
Fix params for attach_disk driver call 2020-02-10 12:58:11 -08:00
Brian Cain
c679b3f470
Remove TODO 2020-02-10 12:58:11 -08:00
Brian Cain
424450cf16
Change info level from removing disks to WARN 2020-02-10 12:58:11 -08:00
Brian Cain
98ab1798a2
Only cleanup disks if defined from previous run 2020-02-10 12:58:11 -08:00
Brian Cain
d810f32ec5
Move message into info rather than detail for visibility 2020-02-10 12:58:11 -08:00
Brian Cain
9712c599fe
Update method docs for cleanup_disks cap 2020-02-10 12:58:11 -08:00
Brian Cain
71c3e36635
Raise exception if port and device cannot be determined 2020-02-10 12:58:11 -08:00
Brian Cain
4d4844fdef
Simplify params for virtualbox driver attach_disk 2020-02-10 12:58:11 -08:00
Brian Cain
6ba621ac92
Add ability to cleanup and close mediums for a guest 2020-02-10 12:58:11 -08:00
Brian Cain
ad798c2c12
Pass in disk meta file for cleanup_disks 2020-02-10 12:58:11 -08:00
Brian Cain
5d723b4e23
Include cleanup_disk action for virtualbox plugin 2020-02-10 12:58:11 -08:00
Brian Cain
e4a57a8e1d
Add virtualbox cleanup_disks action 2020-02-10 12:58:11 -08:00
Brian Cain
c2e6b5ae78
Ensure disks that go unchanged still get written into disk metadata file 2020-02-10 12:58:11 -08:00
Brian Cain
ffe8fcef9b
Make name required for defining non-primary disks 2020-02-10 12:58:11 -08:00
Brian Cain
ec350861cd
Write down metadata for disk configs after configuring disks 2020-02-10 12:58:11 -08:00
Brian Cain
ff77e6279b
Remove todo comment 2020-02-10 12:58:11 -08:00
Brian Cain
831b39f9e0
Use correct variable for disk name 2020-02-10 12:58:11 -08:00
Brian Cain
26d922ad0e
Add todo for fixing default disk names 2020-02-10 12:58:11 -08:00
Brian Cain
b8bf424678
Only grab provider disk config if it exists 2020-02-10 12:58:11 -08:00
Brian Cain
2600178d18
Move UI messages into methods 2020-02-10 12:58:11 -08:00
Brian Cain
a75630e274
Enable experimental flag for virtualbox disk configs 2020-02-10 12:58:11 -08:00
Brian Cain
a38f0bb8c0
Improve default vagrant disk name 2020-02-10 12:58:11 -08:00
Brian Cain
f076ee4708
Add method docs 2020-02-10 12:58:11 -08:00
Brian Cain
616f8e4bd6
Add experimental flags 2020-02-10 12:58:11 -08:00
Brian Cain
0dfde12e9a
Add clone_disk method to virtualbox driver 2020-02-10 12:58:11 -08:00
Brian Cain
d1ccb6536f
Add note about attaching device 2020-02-10 12:58:11 -08:00
Brian Cain
91a274416a
Improve disk messages to user 2020-02-10 12:58:11 -08:00
Brian Cain
7486fe5931
Add ability to resize vmdk disks by converting to vdi 2020-02-10 12:58:11 -08:00
Brian Cain
2e884207df
Rename disk_size variable
Use bytes instead of mb to align with flag used
2020-02-10 12:58:11 -08:00
Brian Cain
dec145b8f9
Add additional note about resizing a disk that might be a primrary 2020-02-10 12:58:11 -08:00
Brian Cain
56cc23cdec
Remove prys 2020-02-10 12:58:11 -08:00
Brian Cain
fcc9c55fa0
Begin to add code for resizing VMDK type disks 2020-02-10 12:58:11 -08:00
Brian Cain
4df346c5c6
Add resize for disks
Also add warnings in case disk resize request is smaller than original
disk size.
2020-02-10 12:58:11 -08:00
Brian Cain
7e686e6f70
Attach harddisk after creation 2020-02-10 12:58:11 -08:00
Brian Cain
1c87351c94
Begin to add method for determining the proper port and device 2020-02-10 12:58:11 -08:00
Brian Cain
2a3f9dad29
Remove uuid from params
No need to pass in machine uuid as it is a class variable already for the driver
2020-02-10 12:58:11 -08:00
Brian Cain
259cb5fcca
Attempt to create and attach disk to guest 2020-02-10 12:58:11 -08:00
Brian Cain
9b83e2ac30
Move around pry 2020-02-10 12:58:11 -08:00
Brian Cain
35c8db56ec
Add handling for configuring and creating disks with vbox provider 2020-02-10 12:58:11 -08:00
Brian Cain
cac56c983c
Add extra key for vbox driver with listing hdds 2020-02-10 12:58:11 -08:00
Brian Cain
5be7989f2d
Add basic driver methods for disk operations 2020-02-10 12:58:11 -08:00
Brian Cain
16cccd504a
Add virtualbox driver method for obtaining vm information 2020-02-10 12:58:11 -08:00
Brian Cain
9bf41d34ba
Add some basic driver methods for configuring disks 2020-02-10 12:58:11 -08:00
Brian Cain
55cb8d1f0a
Add configure_disk blank unit test file and some method docs 2020-02-10 12:58:11 -08:00
Brian Cain
fc54996ba8
Add beginning of ConfigureDisks capability to VirtualBox provider 2020-02-10 12:58:11 -08:00
Brian Cain
82b2630a80
Fixes #11358: Actually validate synced_folder type options
Prior to this commit, Vagrant wouldn't validate the `type` option for
any synced_folder configs defined. This commit updates that behavior to
look at the current list of installed synced_folder plugins, and ensure
if a type is defined, it's a valid plugin in that list.
2020-01-31 09:00:27 -08:00
Terry Burton
c9ca7b8f57
docker provider: Don't explode when removing an image if it is in use
Output from recent Docker has changed:

    Stderr: Error response from daemon: conflict: unable to delete 0ba49dd235e5 (cannot be forced) - image is being used by running container 250bbe980448

Fixes #7245
2020-01-30 20:06:32 +00:00
comet
fa43afb57b
update 2020-01-27 17:04:23 -06:00
Brian Cain
711270b90a
Fixes #11287: Set top level provisioner name if set in provisioner
config

Prior to this commit, if a user had configured a provisioner that had a
config with a `name` option, it would not properly set the top level
provisioner classes name config option which would lead to some
understanibly confusing results when trying to `--provision-with`. This
commit fixes that by checking to see if the top level name isn't set,
look to see if that provisioners config defines a name, and use that
instead.
2020-01-06 11:10:28 -08:00
Chris Roberts
25659a6f6b Support properly setting up synced folders on Catalina
Since the root file system is marked as read-only, attempting to
link the shared directory to `/vagrant` will fail. If the guest
path is on the root file system and APFS is used, create the
link as a firmlink instead.
2019-12-18 13:11:30 -08:00
Jose Luis Duran
582f46231b
FreeBSD: Update Ansible's package name
The Ansible package in FreeBSD is now `py36-ansible`.

If `pkg` itself needs updating, passing only one 'yes' is not enough to
confirm the installation of the package.  Use the `-y` option,
specifically made for this purpose.  Also add `-q` to force a quiet
output, inline with other guests.

References:

- [`pkg-install(8)`](https://www.freebsd.org/cgi/man.cgi?query=pkg-install&sektion=8)
- freebsd/freebsd-ports@cbf5576945
2019-12-17 12:53:24 -08:00
Gilles Cornu
bcdda99dfa
ansible_local: Fix pip setup on Arch Linux guest
Add 'python' package requirement. Tested against `archlinux/archlinux`
box, at version "2019.11.24".
2019-12-17 12:51:39 -08:00
Gilles Cornu
069122f42c
[minor] Align Ruby formatting across ansible_local files
GH-11148: Remove unwanted formatting changes proposed in 920361150f.
2019-12-17 12:51:39 -08:00
Gilles Cornu
a2b87eace4
Fix broken 'ansible_install' methods signature
- By the way: Trim the generate 'pip install' command in Ansible::Cap::Guest::Pip::pip_install
- GH-11048: Fix same regression for FreeBSD and SuSE guests.
- GH-6633:  Add RSpec examples to cover ansible_local 'cap' code.

Note: RedHat/Fedora guests are not covered yet by unit tests.
2019-12-17 12:51:39 -08:00
Stefan Koenen
04aeff4cc6
FIX #11048, add parameter pip_install_cmd to ansible_install.rb for arch guest.
ADD: Handling of `pip_install_cmd` in `ansible_install.rb` for arch guest.
2019-12-17 12:51:39 -08:00
Brian Cain
aecd354c57
Merge pull request #11191 from samdbmg/fix-10914-ansible_local-hang
Don't prompt for input when installing Ansible
2019-12-17 11:30:48 -08:00
Jeff Bonhag
d7a5f74897
Fixes #11128: Error if machine folder inaccessible (#11239)
This commit catches the Errno::EPERM raised by the operating system if
the machine folder is inaccessible and displays it as a more friendly
error message.

This can be an issue on macOS Catalina if virtual machine files are kept
in a special directory (Documents/Downloads/Desktop) that Vagrant's
embedded Ruby is not allowed to access.
2019-12-17 12:41:12 -05:00
Jeff Bonhag
2fa44f5b8f
Fixes #11218: Update apk cache when installing rsync (#11220)
This ensures that rsync can be installed on an Alpine Linux machine where the
apk cache may not be current.

Display a warning if the vagrant-alpine plugin is installed, since Alpine guest
support has been merged into Vagrant core.
2019-12-17 12:34:53 -05:00
Brian Cain
0b71991902
Merge pull request #11231 from briancain/add-force-option-for-box-outdated
Fixes #11228: Allow to force check for box updates
2019-12-17 08:42:51 -08:00
Brian Cain
fb4e6985e1
Fixes #11249: Add VirtualBox provider support for version 6.1.x
This commit adds support for VirtualBox version 6.1.x. It simply
inherits from the base 6.0.x provider class.
2019-12-11 13:25:11 -08:00
Brian Cain
bcf4d5a210
Fixes #11228: Allow to force check for box updates
Prior to this commit, if a user had recently checked for updates, there
was no way to force Vagrant to re-check without manually deleting a
state file in the local `.vagrant` data dir. This commit fixes that by
giving users the ability to force check for updates for a given box with
a flag to the `vagrant box outdated` command.
2019-12-03 11:42:55 -08:00
Jeff Bonhag
c6ee1049aa
Darwin: put each NFS export on its own line (#11216)
This commit introduces a Darwin-specific template for NFS exports.  This is almost identical to the standard BSD template except it puts each NFS export on its own line.

This resolves NFS issues discovered in macOS Catalina.
2019-11-25 15:41:05 -05:00
Brian Cain
f8449063b6
Have default names for primary and non-primary disks 2019-11-22 14:40:23 -08:00
Brian Cain
b56dede627
Do not set primary option if it's not UNSET or false 2019-11-22 14:40:23 -08:00
Brian Cain
f55aca091c
Wrap disk feature in experimental flag 2019-11-22 14:40:23 -08:00
Brian Cain
86f9243762
Move validation message to locales 2019-11-22 14:40:23 -08:00
Brian Cain
734aad1ede
Enforce unique names for disk config objects 2019-11-22 14:40:23 -08:00
Brian Cain
b5b59a4eee
Base name for disk is vagrant_primary if primary 2019-11-22 14:40:23 -08:00
Brian Cain
ea7a230cb6
Move disk config validation messages to locales file 2019-11-22 14:40:23 -08:00
Brian Cain
57fd731fbf
Add warning if machines provider was not found in disk provider config
opts
2019-11-22 14:40:23 -08:00
Brian Cain
3a2b4ddef2
Validate that disk file exists in disk config validate 2019-11-22 14:40:23 -08:00
Brian Cain
2e324a4971
Add conversion method for shortcut size in disk config 2019-11-22 14:40:23 -08:00
Brian Cain
271cf8a603
Begin to add Numeric class helper for converting size strings 2019-11-22 14:40:23 -08:00
Brian Cain
7feee7a87f
Add locale for primary disk validation error 2019-11-22 14:40:23 -08:00
Brian Cain
a457dee8b0
Set default disk to non-primary 2019-11-22 14:40:23 -08:00
Brian Cain
a51e9b1fa1
Support both kinds of provider config options for disk config 2019-11-22 14:40:23 -08:00
Brian Cain
83fea21ff1
Simplify builtin disk action 2019-11-22 14:40:23 -08:00
Brian Cain
e598007237
Add provider specific disk options under provider_config hash 2019-11-22 14:40:23 -08:00
Brian Cain
6c54bf6ad9
Fix logger namespace typo 2019-11-22 14:40:23 -08:00
Brian Cain
d54e870752
Add file option to disk config 2019-11-22 14:40:23 -08:00
Brian Cain
71ad0f7aba
Remove duplicate setting of disks variable 2019-11-22 14:40:23 -08:00
Brian Cain
35f113e759
Put back accidental case switching for comments on provisioner 2019-11-22 14:40:23 -08:00
Brian Cain
9c1d05113f
Update merge comment for disk config 2019-11-22 14:40:23 -08:00
Brian Cain
93828508ec
Update config/vm with tests for disk config 2019-11-22 14:40:23 -08:00
Brian Cain
499e39dd10
Ensure primary is true or false 2019-11-22 14:40:23 -08:00
Brian Cain
cef1bd47b3
Add initial disk builtin action 2019-11-22 14:40:23 -08:00
Brian Cain
a55e3d2b91
Make config.vm.disks accessible instead of internal 2019-11-22 14:40:23 -08:00
Brian Cain
c18f36e516
Fix code comment typo 2019-11-22 14:40:23 -08:00
Brian Cain
ad73969010
Fixup disk config parsing to allow hash and block 2019-11-22 14:40:23 -08:00
Brian Cain
7cfccb5cfd
Update variable docs for disk name 2019-11-22 14:40:23 -08:00
Brian Cain
ee751ca6e1
Add disk name for disk config 2019-11-22 14:40:23 -08:00
Brian Cain
995c4bbc60
Add validation for disk configs 2019-11-22 14:40:23 -08:00
Brian Cain
a18ce4f732
Add primary config option for disk 2019-11-22 14:40:23 -08:00
Brian Cain
393ce9eb1b
Rename drives to disks to match class, and properly merge configs 2019-11-22 14:40:23 -08:00
Brian Cain
28d339eac5
Ensure block is properly passed through to add_config 2019-11-22 14:40:23 -08:00
Brian Cain
ee388d8293
Ensure config is renamed to options 2019-11-22 14:40:23 -08:00
Brian Cain
34673fe5f9
Add disk class function for provider layers 2019-11-22 14:40:23 -08:00
Brian Cain
98a2d0f723
Update internal drives state to be array instead of hash 2019-11-22 14:40:23 -08:00
Brian Cain
abcc334900
Add note about disk options value 2019-11-22 14:40:23 -08:00
Brian Cain
1a21782bd5
Add note about disk name 2019-11-22 14:40:23 -08:00
Brian Cain
e361900d3a
Update doc string for name attribute 2019-11-22 14:40:23 -08:00
Brian Cain
aa5a3ef7f7
Add initial disk management config class 2019-11-22 14:40:23 -08:00
Brian Cain
e100d9cd48
Merge pull request #11205 from briancain/DOCKER-BUILDKIT-FIXUP
Enhance docker build method for the Docker provider to include buildkit output
2019-11-22 14:21:59 -08:00
Brian Cain
2901dae948
Add option for docker executor to handle stderr from results
Instead of always joining stdout and stderr, only join the two if the
caller explicitly asks for it. Otherwise, only return stdout.
2019-11-22 12:04:09 -08:00
Brian Cain
fb7a9d5582
Remove trailing whitespace 2019-11-21 13:44:28 -08:00
Tomas Krizek
3519f82b24
guest/redhat: fix nfs client installation
CentOS 8+ and Fedora 30+ no longer have the alias "nfs" for "nfs-server"
systemd service.

This shouldn't break backward compatibility, since "nfs-server" service
is available on all supported redhat systems that have systemctl binary.

Fixes #10838
2019-11-21 13:11:29 -08:00
Brian Cain
4d70856b8a
Enhance docker build matching for determining built container ID
Prior to this commit, docker would look for a container ID based on
"Successfully built" string. This output does not exist if a user has
enabled the experimental feature buildkit. This commit updates the build
behavior to match against both kinds of outputs, and instead of using
`scan`, it uses MatchData and groups the container id with match group
name `:id` instead of making hard assumptions with the matches being
contained inside arrays from scan.
2019-11-19 10:59:28 -08:00
Juha Ruotsalainen
4fc8b07974
Removed the word 'done'.
There are cases, when 'done' is prefix with a duration, like `... 0.1s done`.
2019-11-19 10:02:03 -08:00
Rumpu-Jussi
f3629ebd09
Buildkit-based output processed a bit differently. 2019-11-19 10:02:03 -08:00
Juha Ruotsalainen
8041d0ae78
Build quietly and capture the image hash
At least on macOS combo Catalina + Docker engine 19.03.4 + Docker desktop 2.1.0.4 + vagrant 2.2.6 the original `matches = result.scan(/Successfully built (.+)$/i)` -line fails to generate a match. With this change I can `vagrant up --provider=docker` successfully.
2019-11-19 10:02:03 -08:00
Antonio Terceiro
4fd2373753 nfs: avoid adding extra newlines to /etc/exports
StringBlockEditor already adds the necessary newlines. That extra
newline was making /etc/exports longer and longer, full of empty lines,
because StringBlockEditor doesn't know about it and does not remove it.
2019-11-17 00:33:08 -03:00
Jeff Bonhag
307123c1f2
Fixes #10753: Add reboot support for Linux guests (#11194)
This commit adds support for setting `reboot: true` while using the
shell provisioner with Linux guests.
2019-11-15 14:46:36 -05:00
Brian Cain
06799402ed
Fixup: Ensure Gem::Version.new does not receive nil value
This commit fixes an issue where Gem::Version.new could recieve a nil
value if no addtional box updates are available. For some versions of
ruby, this is actually an error case. This commit fixes that by
converting it to an integer to prevent an exception.

Issue reference: https://github.com/rubygems/rubygems/issues/2359
2019-11-14 14:51:29 -08:00
Jeff Bonhag
0e68f02dc9
Fixes #11163: Get latest version for provider (#11192)
This commit changes the behavior of `vagrant box outdated --global` so
it gets the latest version for the current machine's provider, rather
than the latest version for any provider.
2019-11-13 17:33:15 -05:00
Brian Cain
403fece5ac
Merge pull request #11184 from briancain/fixup/cleanup-cloud-publish-cmd
Fixes #11137: Fixup how cloud publish handles its arguments
2019-11-12 09:07:42 -08:00
Brian Cain
509812b8e6
Merge pull request #11175 from briancain/fixup/show-machine-name-in-hostname-validation
Fixes #11173: Show guest name in hostname error message
2019-11-07 13:21:42 -08:00
Brian Cain
145f04893c
Fixes #11137: Fixup how cloud publish handles its arguments
Prior to this commit, if a user didn't supply a box file on disk or a
box url, Vagrant would crash and display a stacktrace with an invalid
file. This commit fixes that by adding some extra handling around the
arguments supplied to the publish command.
2019-11-07 10:19:52 -08:00
Jeff Bonhag
8a69c1205c
Fixes #10170: Check for modinfo in /sbin (#11178)
Check for modinfo in /sbin if it doesn't appear on the PATH.

If it's not found on the PATH or in /sbin, the command will default back to modinfo so the user sees the error message about adding it to their PATH.
2019-11-06 16:10:24 -05:00
Brian Cain
d4f83ca4a3
Merge pull request #11170 from moench-tegeder/suse_hostname_vs_getent
explicitly test the hostname we'll be setting
2019-11-05 09:30:28 -08:00
Brian Cain
0aaa2cc147
Fixes #11173: Show guest name in hostname erorr message
This commit adds the machine guest name in the hostname validation error
message so that it's easier to see which guest in a Vagrantfile has the
validation error.
2019-11-04 08:41:51 -08:00
Sam Mesterton-Gibbons
e4ab40393e Don't prompt for input when installing Ansible
Sets `DEBIAN_FRONTEND=noninteractive` and tells `dpkg` to take the old
version of config files when installing Ansible, to prevent hangs
waiting for user input.

Fixes #10914
2019-11-01 17:17:03 +00:00
Christoph Moench-Tegeder
6f6e58f4ae explicitly test the hostname we'll be setting
getent queries the system resolver for the hostname - but it's not
the resolver we're interested in. In fact, the hostname-to-be-set
may already exist in DNS (becuase DNS really is a nifty thing and
can do a lot of things which are not that possible with /etc/hosts
alone), in which case getent will "not fail" and vagrant will believe
the hostname had already been set.
Instead, query hostnamectl for the "static" hostname - that's the
one we will be setting, so we're ok IFF hostnamectl returns exactly
what we would be setting.
2019-11-01 15:41:04 +01:00
Brian Cain
f998e535ce
Fixes #11139: Skip machines that haven't been created for snapshot save
This commit fixes the original #11027 fix, which assumed that the
hyper-v provider just wasn't properly getting a VM id when it listed
snapshots. In reality, it was just that if you invoke the
`with_target_vm` method with no arguments, it runs on the entire environment.
This meant that the capability snapshot_list attempted to be invoked on
machines that didn't exist yet, which is the original cause for why the
list_snapshot method did not recieve a vm ID. This commit fixes that by
simply skipping the machine if it does not yet exist.
2019-10-24 13:33:25 -07:00
Dan Čermák
435a32684f
Only return interfaces where addr is not nil
tunnel interfaces on Linux have addr set to nil which makes the function
list_interfaces fail with a backtrace.
2019-10-10 10:49:03 -07:00
Chris Roberts
b12a23273e
Merge pull request #11108 from chrisroberts/macos-catalina
Fix NFS sharing in macOS 10.15 (based on #11105)
2019-10-10 09:20:33 -07:00
Brian Cain
e6d47329ee
Add note about removing prefix workaround 2019-10-09 16:07:21 -07:00
Brian Cain
8458a21657
Determine prefix with netmask 2019-10-09 15:40:36 -07:00
Brian Cain
62b7e35169
Fixes #11094: Determine prefix for docker public networks
Prior to this commit, the docker action was using the method `prefix` on
an IPv4 and IPv6 address. This works fine for ruby versions 2.5 and
newer, however the ruby shipped with Vagrant is before 2.5, and
therefore the IPv4 and IPv6 classes do not have the prefix method,
resulting in an error. This commit fixes that by using a different
method of determining the prefix.
2019-10-09 09:56:59 -07:00
Chris Roberts
8f42dbff21 Add a resolve_host_path capability for bsd and darwin hosts
For bsd the resolve_host_path capability is a no-op. For darwin
hosts, if firmlinks are defined on the system, paths will be properly
resolved to real path.
2019-10-08 16:41:48 -07:00
Chris Roberts
2c16c96e57 Update nfs_export cap to use resolve_host_path cap for shared directories
Using the resolve_host_path capability allows hosts to modify the
shared folder directory while keeping the logic contained within
the specific host implementation.
2019-10-08 16:38:52 -07:00
Brian Cain
00e0dc9279
Merge pull request #11076 from dcermak/suse_nfs_support
Update nfs & service daemon names for suse based hosts
2019-10-08 13:41:22 -07:00
Andy Fowler
e288a5b732 df -> /bin/df to use macOS version
Thanks, @AntonioMeireles!
2019-10-08 13:21:34 -07:00
Andy Fowler
ae9c3e28d6 Fix #10961 NFS sharing in macOS 10.15 host
On OS X 10.15, / is read-only and paths inside of /Users (and elsewhere)
are mounted via a "firmlink" (which is a new invention in APFS). These
must be resolved to their full path to be shareable via NFS.

/Users/johnsmith/mycode  =>  /System/Volumes/Data/Users/johnsmith/mycode

We check to see if a path is mounted here with `df`, and prepend it.

Firmlinks are only createable by the OS and this wasn't supposed to be
visible to applications anyway:
https://developer.apple.com/videos/play/wwdc2019/710/?time=481
2019-10-08 13:21:34 -07:00
Chris Roberts
cc23905142 Add support for providing box checksums to Vagrant Cloud 2019-10-08 11:23:48 -07:00
Chris Roberts
7fb81bcea1 Add support for other checksum types 2019-10-08 11:23:48 -07:00
Brian Cain
ea550289a9
Merge pull request #11100 from chkpnt/suse-hostname
Use hostnamectl instead of hostname to set the hostname under SUSE
2019-10-08 09:26:46 -07:00
Brian Cain
7616c99c79
Merge pull request #11106 from briancain/bug/docker_compose_build_args
Ensure build_args are passed into docker compose config file
2019-10-07 14:30:30 -07:00
Brian Cain
d6f556c83d
Merge pull request #11099 from briancain/file-provisioner-source-path
Ensure relative path for file provisioner is relative to machines cwd
2019-10-07 14:28:13 -07:00
Brian Cain
f1ea4eaac0
Ensure build_args are passed into docker compose config file
Prior to this commit, the docker compose build method would not properly
set build_args if given in a Vagrantfile. This commit fixes that by
using the passed in key `extra_args` from the docker build action.
2019-10-07 12:48:59 -07:00
Brian Cain
96e275451c
Merge pull request #10938 from andersk/virtualbox-usable
virtualbox: Fix usability test to reject bad installs without crashing
2019-10-07 09:04:24 -07:00
Anders Kaseorg
4afd370d6a virtualbox: Fix usability test to reject bad installs without crashing
If VirtualBox is installed but the kernel module is missing or the
service is stopped, the usability test should fail without crashing so
we can fall back to other providers.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2019-10-04 15:56:10 -07:00
Brian Cain
656b61175d
Merge pull request #11093 from rgl/fix-windows-shell-reboot-connect-timeout
retry the wait for a windows reboot on connect timeout errors
2019-10-04 13:09:18 -07:00
Gregor Dschung
8442b6b59f Use hostnamectl instead of hostname to set the hostname under SUSE 2019-10-03 14:46:14 +02:00
Brian Cain
0a6c4e2d0f
Ensure relative path for file provisioner is relative to machines cwd
Prior to this commit, if you ran Vagrant in a different current working
directory other than where a current guest machines location is, the
file provisioner would not take into account the machines local dir, and
would instead use the path where Vagrant was invoked to expand the
`source` path option for a file provisioner. This commit fixes that by
passing the root path `machine.env.cwd` when expanding the source dir.
2019-10-02 15:33:23 -07:00
Brian Cain
968a126405
Merge pull request #11098 from briancain/finalize-ansible-config-values
Fixes #10950: Ensure pip_install_cmd is finalized
2019-10-02 12:51:33 -07:00
Brian Cain
23352d406c
Merge pull request #11097 from briancain/hyperv-command-snapshot-save-fix
Fixes #11027: Ensure VM id is passed to list snapshots
2019-10-02 12:49:38 -07:00
Brian Cain
f92e1a1973
Merge pull request #11089 from briancain/rsync-helper-regex-path-fix
Fixes #10966: Ensure all subdirectory files are watched
2019-10-02 12:47:04 -07:00
Brian Cain
96c20ad3cc
Fixes #10950: Ensure pip_install_cmd is finalized
Prior to this commit, the `pip_install_cmd` option for ansible guest
config was not properly finalized. This commit ensures that if that
value is still UNSET_VALUE, it gets set to empty string in the finalize!
method.
2019-10-02 10:33:31 -07:00
Brian Cain
66ec57a637
Fixes #11027: Ensure VM id is passed to list snapshots
Prior to this commit, if you tried to save a snapshot without giving it
a name, the hyper-v driver would not properly obtain a vm id to save a
snapshot on, resulting in an error. This commit updates the command
snapshot save to hold onto the machines ID in argv rather than `pop` it
off, so that the hyperv driver can obtain the guests id when saving a
snapshot.
2019-10-01 13:33:39 -07:00
Brian Cain
8f856949f2
Merge pull request #10978 from mrshanahan/fix-issue-10973
Fixes issue hashicorp#10973: checks that VMMS WMI reference is null & throws appropriately
2019-10-01 11:12:41 -07:00
Rui Lopes
ba71c30e04 retry the wait for a windows reboot on connect timeout errors 2019-09-28 12:20:10 +01:00
Brian Cain
1c620852b6
Fixes #10966: Ensure all subdirectory files are watched
Prior to this commit, due to a fix that ignored `.vagrant` with rsync
helper, it broke the ability to watch for changes in subdirectories when
running the rsync-auto command. This commit puts back some of the helper
methods that were there previously for a given watcher path to ensure
that all files and subdirectories are properly watched and synced.
2019-09-26 08:29:37 -07:00
Dan Čermák
a3588c28a8
Update nfs & service daemon names for suse based hosts
- nfs.service got recently removed in openSUSE Tumbleweed and calling service
  restart nfs errors out on Tumbleweed. nfs.service has been an alias to
  nfs-client.target for a very long time and can thus be safely substituted.
- all actively supported versions of openSUSE & SLE are using systemd now
  => no reason not to use systemctl
2019-09-18 23:28:18 +02:00
Jose Luis Duran
6c4b537c82 FreeBSD: Remove APT-ism
No functional change intended.
2019-09-17 03:58:37 -03:00
Brian Cain
8b4ff9c40f
Merge pull request #11056 from briancain/fixup-windows-config-loading-error
Ensure proper paths are shown in config loading exceptions
2019-09-12 08:47:12 -07:00
Anders Kaseorg
5b4dcf9443
providers/docker: Fix usability check
In commit 7980178d19 (#10879) I added a
`usable?` class method to `VagrantPlugins::DockerProvider::Provider`.
However, commit 34e53a5a4b (#10890)
incorrectly changed it to an instance method.  This rendered it
ineffective because it’s called on the class, not an instance.  Change
it back to a class method.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2019-09-10 15:10:43 -07:00
Brian Cain
a22acba467
Simplify line and path checks for exception handling in config loading 2019-09-10 13:27:23 -07:00
Brian Cain
09a37e0767
Fixes #11022: Ensure correct line is used for windows exceptions
Prior to this commit, if there was a config error inside a provider
block, Vagrant wouldn't grab the right backtrace token on windows since
the api is different for ruby on Windows compared to all other
platforms. This commit ensures that the proper line number is chosen so
the error message is correct.
2019-09-06 14:00:46 -07:00
Brian Cain
f74239bed9
Merge pull request #11043 from briancain/provisioner-enhancements
Introduce new Provisioner options: before and after
2019-09-06 08:52:40 -07:00
Brian Cain
f9b60ba603
Merge pull request #11052 from briancain/add-skip-used-boxes-with-force-prune
Fixes #10908: Preserve in-use boxes when force flag is used with prune
2019-09-06 08:49:40 -07:00
Brian Cain
5210e9d82b
Update flag from used to active 2019-09-05 15:46:43 -07:00
Brian Cain
99b5867559
Update reject to compact 2019-09-05 15:39:24 -07:00
Brian Cain
09af983caa
Fixes #11051: Only use host vm if specified
Prior to this commit, the docker login action assumed that if there was
a password to authenticate with, Vagrant was using a host vm to run
docker. This is likely due to some legacy decisions with how Vagrant
used to manage running docker. This commit fixes that by only grabbing a
host_vm lock if the host_vm is actually in use, otherwise login
normally.
2019-09-05 14:54:40 -07:00
Brian Cain
e19f54457d
Fixes #10908: Preserve in-use boxes when force flag is used with prune
Prior to this commit, `vagrant box prune --force` would not prompt a
user to prune Vagrant boxes, even if that box was in use. There was no
way to prune boxes, ignore the prompt, but keep in-use boxes. This
commit adds a new flag that can be combined with `--force`, that will
keep in-use boxes but prune older boxes without prompting the user.
2019-09-04 15:54:11 -07:00
Brian Cain
7b0dc8d528
Update provisioner enhancements from pull request feedback 2019-08-29 13:50:22 -07:00
Brian Cain
07bcfc6077
Add error if both before and after options are set 2019-08-28 16:15:33 -07:00
Brian Cain
fc8bf6aed4
Ensure a dependency provisioner isnt configured to rely on another dependency provisioner 2019-08-28 15:52:38 -07:00
Brian Cain
c192651e90
Make dependency provisioners experimental 2019-08-28 15:09:38 -07:00
Brian Cain
8c39d9bfed
Add dependency provisioner name to error message 2019-08-28 14:30:32 -07:00
Brian Cain
6777493c46
Include before/after options in final provision hash 2019-08-20 11:31:00 -07:00
Brian Cain
6db03f2aed
Check if rejected entries are nil, not blank 2019-08-20 11:30:42 -07:00
Brian Cain
d15bac7fb7
Validate that before/after provisioner exists in machines config 2019-08-19 14:48:06 -07:00
Brian Cain
8ecd32de53
Remove comment 2019-08-19 11:36:54 -07:00
Brian Cain
4933610398
Update rubydoc for before/after return types 2019-08-19 11:33:30 -07:00
Brian Cain
66aac23470
Properly set and validate before/after keys for base provisioner class 2019-08-19 11:23:06 -07:00
Brian Cain
28c0f6085c
Attempt to validate top scope provisioner options 2019-08-06 16:18:58 -07:00
Brian Cain
e05437ddf2
Add validation method and todo 2019-08-06 15:28:04 -07:00
Brian Cain
b82b33d204
Add new before/after options for the base Provisioner class
This commit adds two new options: before, after. These string options
refer to other named Provisioners.
2019-08-06 15:28:04 -07:00
Brian Cain
49ae77b2b8
Update doc string for :run option 2019-08-06 15:28:04 -07:00
Ladar Levison
690963669c Added fall through logic with error messages if OS is unrecognized.
This will print an error message but still exit with 0 if an
ephemeral hostname change was made, which seems more defenisve,
and user friendly to me.
2019-08-03 20:59:41 +05:30
Ladar Levison
53323ba54e Fix the hostname config logic for Alpine.
And allow those who like `vagrant` to go
Alpine skiing!
2019-08-03 15:19:51 +05:30
Tim Schumacher
39fb585295 alpine: Remove unneeded aliases in change_host_name 2019-07-26 08:32:36 +02:00
Tim Schumacher
a7f09f010c alpine: Convert nfs_client capability to seperate commands
The workaround for the broken repository should be safe to be removed,
since the last affected Alpine version (<=3.3) EOL'd in November of 2017.

The remaining important commands can be split out into seperate calls
of sudo(), which removes the need for manual exit-code checking
(since it aborts by itself when a command fails) and makes the code
easier to handle in general.
2019-07-26 08:31:12 +02:00
Matt Shanahan
6caa7bfa86 Fixes issue hashicorp#10973: checks that VMMS WMI reference is null & throws appropriately 2019-07-19 07:48:03 +02:00
Tim Schumacher
77616b22b3 alpine: Use absolute paths for network configuration templates 2019-07-18 04:07:15 +02:00
Tim Schumacher
3b03944331 alpine: Replace capability strings with symbols
Those were introduced upstream in b29864f450.
2019-07-18 03:35:48 +02:00
Tim Schumacher
2216d23048 alpine: Remove version and out-of-tree checks 2019-07-18 03:35:48 +02:00
Tim Schumacher
fbffb41fc4 guests: Add unmodified alpine support plugin from maier
This has been available as `vagrant-alpine` in the plugin
repository so far.
2019-07-18 03:35:40 +02:00
Brian Cain
6e4eb66cb1
Fix windows binary check for chef provisioner 2019-06-17 14:06:03 -07:00
Brian Cain
d55f8d3496
Fixes #10912: Update chef install check for guests
Prior to this commit, the chef_installed capability was looking for a
string that has recently changed in newer versions of chef. This commit
fixes that by instead just looking for the right version that was
configured for the chef client, rather than the specific string that
could change again in the future.
2019-06-17 11:02:57 -07:00
Brian Cain
c3a96ace35
Merge pull request #10909 from briancain/fixup-bsd-nfs-exports
Fixes #10609: Properly set BSD options for /etc/exports
2019-06-17 08:21:29 -07:00
Brian Cain
75d42fed9d
Merge pull request #10902 from briancain/fixup-rsync-listener
Fixes #10895: Use relative paths to machines folder path for Listener
2019-06-17 08:20:37 -07:00
Brian Cain
fc4e03d559
Fixes #10609: Properly set BSD options for /etc/exports
Prior to this commit, the BSD options for the /etc/exports file was not
properly set up in the correct order for a given entry. It was however
fixed for FreeBSD, but never for the original exports template. This
commit fixes that by unifying the BSD and FreeBSD templates.
2019-06-13 11:44:12 -07:00
Brian Cain
1b0148bc78
Fixes #10895: Use relative paths to machines folder path for Listener
Prior to this commit, the rsync helper expanded all exclude paths that
should be ignored to be full qualified and regexp escaped. However the
Listen gem expects these ignore paths to be relative to the path passed
into the listener, not a full path. This commit fixes that by using the
path given by the user for the `rsync__exclude` option
2019-06-11 14:58:42 -07:00
Brian Cain
bf55e43460
Fixes #10869: Remove excludes if array is empty
Prior to this commit, if a user specified that their `rsync__excludes`
option was an empty array, Vagrant would treat that as if it included
options inside the array rather than ignoring it. This commit fixes that
by only adding the excludes option when it exists and is not empty.
2019-06-10 13:44:39 -07:00
Chris Roberts
bbf8f05d75
Merge pull request #10884 from GregJPreece/feature/10506-machine-readable-status
#10506 - Machine Readable Global-Status
2019-06-05 13:54:47 -07:00
Brian Cain
fb80e8da9f
Merge pull request #10890 from briancain/add-usability-check-for-docker-plus-tests
Add usability check for docker plus tests
2019-06-05 07:58:23 -07:00
Greg J Preece
2f818c0e23 Removing unneeded .send() calls in machine output. 2019-06-04 21:35:37 -07:00
Brian Cain
34e53a5a4b
Add docker provider class test
This commit introduces aa provider_test class for the Docker provider
2019-06-04 13:24:07 -07:00
Chris Roberts
0cba5263ad
Merge pull request #10811 from chrisroberts/f-synced-folder-creds
Remove configuration information from SMB synced folder data
2019-06-04 11:33:33 -07:00
Anders Kaseorg
7980178d19 providers/docker: Add usability test
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2019-05-30 13:13:43 -07:00
Greg J Preece
731f249c50 Machine ID output should be 7 characters. 2019-05-29 11:10:33 -07:00
Greg J Preece
c6a6fd34a3 Adding machine-readable output to global-status 2019-05-29 10:48:38 -07:00
Brian Cain
57c4de49f2
Remove "command" string from logger
Since not all triggers are commands, removing the word `command` from
the logger so it is not confused with other types of triggers.
2019-05-13 13:26:47 -07:00
Brian Cain
93497b8ca3
Merge pull request #10829 from briancain/box-update-continue
Continue updating environment boxes if metadata not found
2019-05-08 09:32:58 -07:00
Brian Cain
237209d6e4
Merge pull request #10828 from briancain/snapshot-list-ux-fixup
Separate snapshot names when listing snapshots
2019-05-08 09:17:06 -07:00
Brian Cain
e2d017b219
Continue updating environment boxes if metadata not found
Prior to this commit, if a user ran a `vagrant box update` on their
entire environment and one of the boxes did not have a metadata file,
the rest of the boxes in the update would be skipped. This commit fixes
that by ignoring those boxes and showng a warning, so that the rest of
the boxes could check for updates.
2019-05-08 09:04:45 -07:00
Brian Cain
ca232444e7
Separate snapshot names when listing snapshots
Prior to this commit, Vagrant would list all machine snapshots in a flat
list, without showing which snapshots were associated with which guests.
This commit fixes that by placing some separation to make it clear which
snapshots belong to which guests.
2019-05-06 11:09:34 -07:00
Brian Cain
ca0fd64ded
Fixes #10798: Enhance how docker compose driver path expands
Prior to this commit, the docker compose driver would _always_ path
expand a host volume no matter what. This is not always the correct
option, for example if that host volume is actually a reference to a key
inside a `volumes` hash instead of a path on disk. This commit changes
that by looking to see if the requested host volume is actually a
defined key inside the compose config, and if not, it will path expand
it like before. Otherwise it will leave the key "as is".
2019-04-29 16:14:37 -07:00
Chris Roberts
b493503e09 Scrub SMB credential information from folder configuration
This prevents credential information from being persisted into the
local data directory which is used during subsequent runs to determine
folder definition changes.
2019-04-25 10:07:48 -07:00
Alex Goncharov
b75768fc56 Fix box version sort in Update.update_specific 2019-04-24 18:57:34 -04:00
Brian Cain
139ae4397f
Merge pull request #10625 from vdebroy/fix-issue-9584
Fix issue 9584
2019-04-09 15:12:02 -07:00
Brian Cain
8e9578cf5d
Merge pull request #10752 from chrisroberts/f-coreos-guest-caps
Update guest capabilities for coreos
2019-04-09 15:10:58 -07:00
Brian Cain
46e42ed884
Move up doc string for vagrant snapshot pop
This commit moves up the doc string for the command `vagrant snapshot
pop` Prior to this commit it was hidden in between command line flags.
2019-04-09 13:14:44 -07:00
Brian Cain
75d4aa42a1
Ensure non-existent machines do not attempt to list snapshots
Prior to this commit, if a snapshot restore was run on an entire
environment with some non-existent guests, Vagrant would attempt to list
their snapshots with a nil id. This commit fixes that by returning an
empty list of snapshots if the machine has not been created yet.
2019-04-09 13:11:19 -07:00
Jose Luis Duran
93f02c67f8
FreeBSD: Simplify the listing of interfaces
According to ifconfig(8), to list only Ethernet interfaces, excluding
all other interface types, including the loopback interface, the command
to use should be:

    ifconfig -l ether

Related to: #8760
2019-03-29 02:47:39 -03:00
Jose Luis Duran
1cf0e62400
BSD: VirtualBox shared folders naming convention
This is a follow-up of #10717 to use the same naming convention as on
Linux guests, in order to reduce the diffs.

Also adds the missing capability to `unmount_virtualbox_shared_folder`
on FreeBSD guests.
2019-03-28 02:34:34 -03:00
Brian Cain
ec67151312
Merge pull request #10702 from briancain/docker-network-support
Docker Provider Network Support
2019-03-25 15:43:23 -07:00
Chris Roberts
0575fdfd69 Do not rely on IPAddr#prefix as it's not available on older rubies 2019-03-22 16:42:30 -07:00
Chris Roberts
8ba69e587c Update guest capabilities for coreos 2019-03-22 15:20:37 -07:00
Brian Cain
4f80a9e6d5
Add test for requesting public ip range for docker network provider 2019-03-22 09:02:40 -07:00
Brian Cain
6bffdca972
Add beginning of connect network tests for docker provider 2019-03-21 16:06:24 -07:00
Brian Cain
88a18fe2c5
Add public network tests for docker provider 2019-03-21 16:06:11 -07:00
Brian Cain
82700d95b3
Ensure subnet is used if specified from user config options 2019-03-21 15:29:04 -07:00
Brian Cain
8c169714c5
Ensure variable names exist in method 2019-03-21 11:39:16 -07:00
Brian Cain
96a19aa00c
Fix how options to cli args are handled
Since options could also be defined as strings, convert it all to string
and compare those instead
2019-03-21 11:15:41 -07:00
Brian Cain
5215354d16
Fix missing docker error classes, and finish out initial #call tests 2019-03-21 10:50:45 -07:00
Chris Roberts
b1d8b952bb
Merge pull request #10745 from chrisroberts/f-net-sftp-comms
Remove require of net/sftp library
2019-03-20 15:57:21 -07:00
Chris Roberts
2d5091a985
Merge pull request #10713 from renatoaguiar/fix-void-nfs
Fix NFS capability detection on Void Linux
2019-03-20 15:48:46 -07:00
Brian Cain
1027636e41
Split up and rename unit tests for docker network operations 2019-03-20 15:14:39 -07:00
Brian Cain
eb75431c4a
Update docker driver and docker driver unit tests 2019-03-20 14:50:28 -07:00
Chris Roberts
3ca8089920 Remove require of net/sftp library
Fixes #10733
2019-03-20 13:02:08 -07:00
Chris Roberts
623a1815ae Allow use of subnet option when defining private network with dhcp type 2019-03-19 14:35:40 -07:00
Chris Roberts
670bef6596 Allow custom subnet to be provided when private network type is dhcp 2019-03-19 14:20:14 -07:00
Chris Roberts
afb6c20581 Fix option mask to be expected netmask 2019-03-19 14:03:03 -07:00
Chris Roberts
a1c7eec441 Include synchronization as the environment lock is per process only 2019-03-19 13:46:14 -07:00
Chris Roberts
a645ce3c25 Docker provider networking support updates
Use `mask` option for defining subnet on network configuration. Allow
options to be passed through using hash scoping and docker_network and
docker_connect prefixes. Enable public networks. Allow configuration
to define pre-existing networks by name.
2019-03-19 11:44:33 -07:00
Chris Roberts
1224622387 Remove container inspection caching and Exception rescue
Container inspection is caching data on first lookup. This will
result in incorrect data being returned on subsequent lookups if
a different `cid` value is provided. Also removed rescue of
the `Exception` class as this generally should never happen; rescue
of StandardError will be enough.
2019-03-19 11:44:22 -07:00
Chris Roberts
c251e090b3 Remove Mutex for synchronization. Environment#lock satisfies requirement. 2019-03-19 11:44:02 -07:00
Brian Cain
6664936c0b
Make ignored vagrant network options a constant 2019-03-12 10:40:58 -07:00
Brian Cain
5ed5868067
Inspect networks before creating new ones
This commit updates the behavior of how the docker provider creates new
docker networks. It looks at each existing network to see if the
requested subnet has already been configured in the docker engine. If
so, Vagrant will use that network rather than creating a new one. This
includes networks not created by Vagrant. Vagrant will not clean up
these networks if created outside of Vagrant.
2019-03-12 10:36:57 -07:00
Brian Cain
e399aeaf70
Merge pull request #10717 from briancain/add-vbox-share-folders-bsd
Add proper VirtualBox share folders support for FreeBSD guests
2019-03-11 15:07:17 -07:00
Brian Cain
5b3c6b8ad4
Fixes #10723: Fix bug instance var in Vagrant Cloud CLI optparse
This commit uses the correct instance variable for the optparse library
when reading in the command line flags for various Vagrant Cloud CLI
commands.
2019-03-11 14:21:55 -07:00
Brian Cain
2f0c66f832
Only enable shared folder mounts on freebsd guests
Since the virtualbox guest additions seem to only be available for
freeBSD, move the shared folder functionality over to freebsd guests
rather than all BSD guests.
2019-03-08 11:03:23 -08:00
Brian Cain
b2251d5bec
Update logger to display vboxvfs module rather than vboxsf
Ensure the logger displays the right vbox module used for mounting
shared folders
2019-03-07 10:49:38 -08:00
Brian Cain
0bfca8293a
Update from vboxsf to vboxvfs
BSD guests use vboxvfs module for mounting share folders
2019-03-07 10:35:37 -08:00
Brian Cain
554b096961
Fixes #8884: Introduce proper VirtualBox shared folders for BSD
This commit adds proper VirtualBox shared folder support for BSD guests.
It is essentially a copy of the linux capability.
2019-03-07 10:35:37 -08:00
Brian Cain
b78dada2c7
Fix docker driver handling cli flags
Make opts argument set to nil instead of splat to make Travis Ruby 2.3
happy
2019-03-05 10:57:05 -08:00
Renato Aguiar
4de7716ffb Fix NFS capability detection on Void Linux 2019-03-05 10:03:52 -08:00
Brian Cain
cccbedf4ce
Update how docker network handles processing options to cli arguments
Add an "ignored option" array rather than a big if-statement expression
2019-03-04 14:19:40 -08:00
Brian Cain
953a380371
Fix how Vagrant assigns cli arguments for the create command
This commit inlines the flag assignments so that arguments are properly
assigned to flags rather than arguments to the subcommand.
2019-03-04 13:44:21 -08:00
Brian Cain
efb9fd7b65
Move strings into locales file 2019-03-04 13:33:08 -08:00
Brian Cain
a1b48ed1bb
Raise proper class if invalid options given for docker network 2019-03-04 13:17:14 -08:00
Brian Cain
0b28580105
Move out cli argument generation to own function 2019-03-04 10:33:24 -08:00
Brian Cain
81fa7036be
Rename cli argument method 2019-03-04 10:28:49 -08:00
Brian Cain
6c7c74be5a
Fix if statement from = to == 2019-03-04 10:28:05 -08:00
Brian Cain
4080f9e64d
Log warning if docker network inspect fails to return json 2019-03-04 10:25:10 -08:00
Brian Cain
5adffb608d
Only allow private_network for docker network provider 2019-03-01 16:34:43 -08:00
Brian Cain
29696b0f73
Allow for ipv6 networks in docker 2019-03-01 16:20:16 -08:00
Brian Cain
000457a012
Update how docker network provider creates networks
This commit updates the docker network provider to only create networks
by subnet rather than per-container.
2019-03-01 16:07:53 -08:00
Brian Cain
c20de9044d
Log information if unsupported docker network option is provided 2019-03-01 08:34:43 -08:00
Brian Cain
4a0f1a0a33
Update docker network action to auto-generate cli flags
This commit updates the docker network behavior to auto-generate the
docker network command flags from Vagrants network config option.
2019-03-01 08:34:43 -08:00
Brian Cain
b5a092397f
Add new function for handling vagrant options to docker network cli
flags
2019-03-01 08:34:43 -08:00
Brian Cain
dc5f8c66f2
Add todo comment for future fixup 2019-03-01 08:34:43 -08:00
Brian Cain
4dc5f7c330
Add basic ability to configure some networks for containers 2019-03-01 08:34:43 -08:00
Brian Cain
e860c7709d
Begin to setup and configure docker networks for containers 2019-03-01 08:34:43 -08:00
Brian Cain
8013d8d5ef
Move around Network setup action for docker provider 2019-03-01 08:34:43 -08:00
Brian Cain
63ba0f9964
Add DestroyNetwork action to docker provider 2019-03-01 08:34:43 -08:00
Brian Cain
349cc5ddac
Add placeholder network destroy action for docker 2019-03-01 08:34:43 -08:00
Brian Cain
a336aa687c
Add logger and start to iterate over networks in config 2019-03-01 08:34:43 -08:00
Brian Cain
bed653eeb4
Autoload and use Network action on up 2019-03-01 08:34:43 -08:00
Brian Cain
67ea15126d
Make opts var optional for docker driver methods 2019-03-01 08:34:43 -08:00
Brian Cain
627251a307
Add basic docker network action 2019-03-01 08:34:43 -08:00
Brian Cain
ec2e0380ee
Add basic docker driver methods for docker network subcommand 2019-03-01 08:34:43 -08:00
Chris Roberts
927364652f
Merge pull request #10595 from danowar2k/master
- FIX for #10594
2019-02-26 14:09:31 -08:00
Brian Cain
1592c0c216
Merge pull request #10690 from briancain/cleanup-rsync-tmp-folders
Cleanup rsync tmp folders
2019-02-26 13:25:34 -08:00
Brian Cain
3b540e502f
Force removal of rsync tmp dir
Force delete entry to prevent any potentail failures when trying to
clean up the tmp dir from rsync
2019-02-26 09:08:56 -08:00
Chris Roberts
e2b6a6645c Always ensure remote destination directory exists 2019-02-26 08:54:49 -08:00
Chris Roberts
6b105d704d Update communicator upload behavior to handle /. path directives
This update was prompted by updates in openssh to the scp behavior
making source directory paths suffixed with `.` no longer valid
resulting in errors on upload. The upload implementation within
the ssh communicator has been updated to retain the existing
behavior.

Included in this update is modifications to the winrm communicator
so the upload functionality matches that of the ssh communicator
respecting the trailing `.` behavior on source paths. With the
communicators updated to properly handle the paths, the file
provisioner was also updated to simply apply previously defined
path update rules only.

Fixes #10675
2019-02-26 08:02:09 -08:00
Andrew Eikum
7517faa9ee
Remove tmpdir after rsync completes 2019-02-22 12:24:13 -08:00
Brian Cain
cdcedb0a9e
Fixes #10682: Move over AddAuthentication middleware and hooks
Prior to this commit, the AddAuthentication hooks still existed in a
deprecated class LoginCommand. This commit fixes that by moving it over
to the vagrant cloud cli namespace instead.
2019-02-21 09:42:16 -08:00
Brian Cain
31b9aafcf7
Merge pull request #10622 from mattin4d/master
Change remaining box_client_cert refs to box_download_client_cert
2019-02-20 11:03:49 -08:00
Vidroha Debroy
aacb453a79 Fixing bug I introduced. Thanks @chrisroberts! 2019-02-15 14:53:56 -06:00
Vidroha Debroy
7c0ffe369a Updated based on recommended changes per review. 2019-02-15 12:14:37 -06:00
Brian Cain
68e21d8ac5
Merge pull request #10664 from chrisroberts/f-plugin-config-format
Fix format finalization of plugins in Vagrantfile
2019-02-12 10:00:14 -08:00
Brian Cain
9636f59232
Merge pull request #10638 from chrisroberts/e-reboot-message
Add reboot output to guest capability
2019-02-12 09:57:30 -08:00
Brian Cain
0bc0bdd616
Merge pull request #10615 from briancain/introduce-typed-triggers
Introduce :type option for Vagrant triggers
2019-02-12 09:16:01 -08:00
Chris Roberts
2e58e002d6 Fix format finalization of plugins in Vagrantfile 2019-02-11 15:48:43 -08:00
Brian Cain
4c61eaa933
Fixes #10643: Ensure paths are properly expanded when comparing synced folders
Prior to this commit, the docker action would attempt to compare and
validate synced folders based on their string value, rather than their
actual path value. This commit updates that by path expanding the mounts
when comparing a containers synced folders.
2019-02-04 11:15:40 -08:00
Chris Roberts
80705c4804
Merge pull request #10637 from chrisroberts/f-address-config
Add base_address to core vagrant vm config
2019-02-01 16:15:50 -08:00
Chris Roberts
ade5370db3 Add reboot output to guest capability 2019-02-01 15:47:02 -08:00
Chris Roberts
61cf179b42 Add base address attribute to vm config 2019-02-01 14:47:11 -08:00
Brian Cain
fc4e6e624f
Simplify if-statement in trigger parser 2019-02-01 13:34:15 -08:00
Brian Cain
659aa1c48e
Remove todo in validation 2019-02-01 13:34:15 -08:00
Brian Cain
071d8b09cd
Add machine for hook and action triggers 2019-02-01 13:34:15 -08:00
Brian Cain
fefb702359
Introduce type and command triggers
This commit introduces some basic functionality for typed triggers:

- command
- action

Command triggers are triggers that will run before or after a given
sub-command.

Action triggers are for running triggers before or after internal
actions for Vagrant. This could be before or after a provision step,
before or after synced folders, or networking, etc.
2019-02-01 13:34:15 -08:00
Chris Roberts
cf99438f1f Update base path on windows to use common file separator
On Windows the File::SEPARATOR ends up being `/` which causes
issues with the new way the path is being extracted from the
vbox information. When on Windows (even with WSL), automatically
convert the path to use common forward slash separator. This
fixes path modifications used for storing guest disks.
2019-01-29 11:09:25 -08:00
Vidroha Debroy
281203edf1 Handling the cases for UNSET_VALUE, i.e., config is not finalized. 2019-01-28 13:35:50 -06:00
Matt Adams
a3836f5fec Change remaining box_client_cert refs
This fixes issues with box add/update when self hosting with client
certs. The --cert option was not being added to the curl subprocess
in these cases.
2019-01-28 08:45:24 -06:00
Vidroha Debroy
d2c11e81ae Config has pip_install_cmd for Provisioner to pick it up. Tests updated. 2019-01-25 16:51:58 -06:00
Vidroha Debroy
8418d26037 Ubuntu code updated because it calls Debian code. 2019-01-25 15:22:04 -06:00
Vidroha Debroy
614523a5fc Exposing pip_install_cmd to callers as optional. 2019-01-25 15:09:31 -06:00
Vidroha Debroy
84df098135 Handling empty strings passed as pip_install_command. 2019-01-25 14:55:39 -06:00
Vidroha Debroy
2b0617fb64 Adding pip_install_cmd as a default parameter to get_pip. Unit Tests. 2019-01-25 13:59:15 -06:00
Daniel Poggenpohl
2d9ba0e906 - FIX for #10594 (more logical flow) 2019-01-17 14:59:52 +01:00
Daniel Poggenpohl
d565f628fd - FIX for #10594 2019-01-17 14:21:53 +01:00
Ilya Chesnokov
a300acfcf0 Make sure that ips array contains unique values
Fixes #10591
2019-01-14 14:10:51 +03:00
Brian Cain
65a7261853
Fixes #10585: Properly set DHCP for systemd-networkd ips
Prior to this commit, if a debian system requested an DHCP address using
systemd-network, Vagrant would ignore it and instead use the configured
IP from the virtualbox network action. This commit fixes that by instead
looking if DHCP was requested, and if so, use that option for an IP.
2019-01-11 10:19:37 -08:00
Brian Cain
5d4c9ef8a7
Merge pull request #10513 from briancain/catch-invalid-version-errors-vagrant_cloud
Fixes #10509:  Catch InvalidVersion errors from vagrant_cloud client
2019-01-09 11:16:58 -08:00
Brian Cain
6b89324a9f
Merge pull request #10554 from iquiw/grep-fix-for-coreos
Fix grep command for network interface of CoreOS guest
2019-01-08 11:47:14 -08:00
Chris Roberts
d87c645bd0 Fix garbage detection within SSH communicator
Fixes #10552
2019-01-07 16:20:56 -08:00
Brian Cain
b5db5c0156
Show source and destination locations with file provisioner
Prior to this commit, Vagrants output would only show that a file
provisioner was running, but had no detail as to what file was being
copied to where. This is especially confusing if a Vagrantfile has
multiple file provisioners. This commit updates that by showing the
source and destination of the file so that it's clearer what is being
copied and to where.
2019-01-07 11:43:27 -08:00
Chris Roberts
023238b3d1
Merge pull request #10528 from chrisroberts/e-ps-elevated
Add support for running elevated commands using the powershell command
2019-01-03 15:25:56 -08:00
Chris Roberts
c7522b9114
Merge pull request #10529 from chrisroberts/e-rsync-chown
Add support for using the `--chown` flag with rsync when available.
2019-01-03 15:18:14 -08:00
Chris Roberts
1f959e03cb
Merge pull request #10532 from chrisroberts/e-reboot
Add reboot option to shell provisioner
2019-01-03 13:52:19 -08:00
Chris Roberts
7fbcb88d82
Merge pull request #10539 from jalandis/disable-required-install_type-salt-option-windows
Disabled salt provision required install_type check on Windows
2019-01-03 13:44:05 -08:00
Iku Iwasa
982534aaed Fix grep command for network interface of CoreOS guest 2019-01-04 00:25:35 +09:00
John Landis
bd6fa11281
Disabled salt provision required install_type check on Windows where option is not supported. Added test case for salt provisioner config changes. 2018-12-23 11:39:58 -05:00
John Landis
19dc9fd921
Upgrade default Salt version from 2017.7.1 to 2018.3.3 2018-12-22 18:55:38 -05:00
Chris Roberts
e735453422 Add reboot option to shell provisioner
Adds a `reboot` option which allows the guest to be rebooted after
the completion of a shell provisioning task. The guest must support
the `:reboot` capability. Like the `reset` option, the `reboot`
option may be provided without defining `inline` or `file` options
when a reboot may be required between other provisioners.

Fixes #8639
2018-12-21 15:50:59 -08:00
Chris Roberts
cb3b8bd732 Add support for using the --chown flag with rsync when available.
Adds a new `rsync__rsync_ownership` option to rsync based synced folders
which will allow rsync to use the `--chown` flag if it is available. The
`rsync` and `rsync-auto` commands have a new `--rsync-chown` flag which
can be used to force the option on folders when running the commands.

Fixes #7329 #7332
2018-12-20 17:16:36 -08:00
Chris Roberts
9c33ffd3fa
Merge pull request #10527 from chrisroberts/f-configure-net-nm
Fix guest network configuration by properly extracting extra options
2018-12-20 14:00:30 -08:00
Chris Roberts
e3cf74566c Add support for running elevated commands using the powershell command
This PR adds support for running command passed via the --command
flag as elevated tasks. The option is only valid for commands and
not when setting up a remote session. Logic has also been adjusted
for when communicator restrictions are applied and test coverage
has been added.
2018-12-20 11:30:25 -08:00
Chris Roberts
9f1e7d9895 Prevent nil dup as unsupported in 2.3 2018-12-20 07:43:43 -08:00
Chris Roberts
f4cb33e954
Merge pull request #10012 from Aloz1/add-host-voidlinux
Add void linux host support
2018-12-19 16:21:52 -08:00
Chris Roberts
a4a98d97fc Fix guest network configuration by properly extracting extra options
Extra options are extracted from the machine configuration for the
network being configured to allow for customized network manager
behavior. The network entries must be filtered to remove non-network
entries (like port forwards) before accessing by index.

Fixes #9546
2018-12-19 16:08:47 -08:00
Chris Roberts
ac5b45445a Remove use of system. Add test coverage. 2018-12-19 12:19:22 -08:00
Chris Roberts
ee2072ec53 Automatically answer yes when pruning SMB shares 2018-12-19 08:59:13 -08:00
Chris Roberts
818d1d97ae Update rsync auto post command error handling to be more generic
Rescue and re-wrap any errors encountered when running the post
rsync capability. Rescue this exception type and notify of error
when encountered by rsync auto. Include test coverage.
2018-12-18 09:50:21 -08:00
hieptranquoc
480e992ea1 @ #10460 | vagrant rsync should restart when rsync find chown command error 2018-12-18 09:49:44 -08:00
hieptranquoc
aa6908cc00 @ #10460 | fix vagrant rsync-auto is crashed 2018-12-18 09:49:21 -08:00
Brian Cain
ca6cc140ff
Catch InvalidVersion errors from vagrant_cloud client
This commit adds a new rescue to the `publish` command for when the
client detects an invalid version prior to making the API request to
create that version.
2018-12-17 14:41:29 -08:00
Chris Roberts
2daafd9586
Merge pull request #10490 from chrisroberts/f-snapshot-behavior
Update behavior of `snapshot restore` and `snapshot pop`
2018-12-13 09:18:20 -08:00
Chris Roberts
480bb47e1d
Merge pull request #10496 from chrisroberts/e-ssh-config-file
Add support for config and remote_user to SSH options
2018-12-13 09:16:49 -08:00
Chris Roberts
19025bb8c3
Merge pull request #10488 from chrisroberts/f-powershell-elevated
Only modify elevated username under specific conditions
2018-12-13 09:14:30 -08:00
Chris Roberts
90a5854684 Fill out ssh options config and remote_user
Include config option within ssh_config command output template. Default
remote_user value to set username value. Include existence check on
provided config value to ensure file is available. Update tests to
include coverage on all changes. Add new options to the docs.
2018-12-11 08:09:43 -08:00
Gavin Williams
0500f2b9b3 Add support for SSH config file to Rsync helper 2018-12-11 07:51:47 -08:00
Gavin Williams
122ef7307c Flesh out :config support.
Also noticed whilst testing that if the `ProxyCommand` uses `%r`, then
it fails with `unable to find remote user`, so added support for
`config.ssh.remote_user` aswell
2018-12-11 07:51:47 -08:00
Gavin Williams
87e38a0bed Remove 'config' from ssh.defaults, and instead setup in '.connect' 2018-12-11 07:51:47 -08:00
Gavin Williams
87437317dc Add support for passing ssh config file in via config 2018-12-11 07:51:47 -08:00
Chris Roberts
c999e7c3d4 Update behavior of snapshot restore and snapshot pop
Both of these commands failed to default the options disabling
the provisioning from ignoring the sentinel file. This resulted
in different behavior than what was seen with the `up` and
`resume` commands which would only provision items with run set
to "always". This defaults the options to proper match the behavior
of `up` and `resume` to be consistent.

This also adds an extra `--no-start` flag to allow users to restore
a snapshot but not start the restored guest immediately.

Fixes #6752
2018-12-07 16:17:44 -08:00
Chris Roberts
924fb97e8c Only prepare 10 shares per command to prevent exceeding allowed command size
When a large number of shares are defined it may cause the generated
command to exceed the maximum allowed length. To prevent this, only
allow 10 shares to be processed at a time.

Fixes #10483
2018-12-07 12:56:55 -08:00
Chris Roberts
24cd988d39 Only modify elevated username under specific conditions
Elevated commands can fail via winrm under certain conditions like
the machine name being changed. Detect this by checking for a known
exit code combined with known output included within stderr. If found,
attempt to re-execute the command using a machine prefixed username
if possible.
2018-12-07 12:11:17 -08:00
Chris Roberts
55a8649963 Adjust requirement on warnings for VirtualBox NIC
The changeset _did_ get included in the 5.2.22 release so adjust
the requirement to only warn on previous versions
2018-12-06 15:40:31 -08:00
Brian Cain
119f82d826
Merge pull request #10479 from briancain/ensure-tmp-dir-cleanup-package-cmd
Fixes #9593: Ensure temp dir for package command is cleaned up
2018-12-06 15:08:18 -08:00
Brian Cain
2038f2878c
Merge pull request #10470 from wolfgang42/snapshot-error
snapshot plugin: Raise error for bad subcommand.
2018-12-04 14:32:22 -08:00
Brian Cain
86e2b78997
Fixes #9593: Ensure temp dir for package command is cleaned up
Prior to this commit, the package actions would create a temp dir in
the process of packaging and compressing a Vagrant box. This commit
ensures that the temp dir is removed once the command has completed so
that it doesn't leave around lots of temp directories.
2018-12-04 11:07:53 -08:00
Brian Cain
d561116d16
Merge pull request #10474 from briancain/ensure-install_type-set-with-version
Fixes #10358: Add validation error in salt provider for certain options
2018-12-03 15:58:59 -08:00
Brian Cain
6531ed0970
Merge pull request #10468 from briancain/raise-error-if-provider-file-missing
Fixes #10432: Validate that provider file exists prior to upload
2018-12-03 15:57:50 -08:00
Brian Cain
5fa3c5866c
Ensure tmp dir for validate is removed once command exits 2018-12-03 14:50:20 -08:00
Brian Cain
34b64ec247
Fixes #10358: Add validation error in salt provider for certain options
Prior to this commit, if you specified a `version` for the salt provider
but no `install_type` Vagrant would fail to pass the proper parameters
to the bootstrap install script. This commit fixes that by adding some
validation to the salt provider if `version` is specified but not
`install_type`. It also adds some extra context for certain config
validation error messages so that the user knows what option was
incorrect, rather than the message just referring to the option as
*this*.
2018-12-03 10:00:11 -08:00
Wolfgang Faust
4ec092f46d snapshot plugin: Raise error for bad subcommand.
Closes #9773.
2018-12-01 14:44:42 -05:00
Brian Cain
6d4d9b9304
Fixes #10432: Validate that provider file exists prior to upload
Prior to this commit, Vagrant would attempt to path expand a file that
didn't exist if it was left out of the passed in arguments and no
`--url` was used for external box uploading. This commit fixes that by
adding some additional validation for the passed in box file.
2018-11-30 14:13:45 -08:00
Brian Cain
69eacd2b73
Remove machine from initialize method 2018-11-30 11:03:05 -08:00
Brian Cain
68dda8f853
Fixes #10224: Clear our registered providers when validating configs with no provider
Prior to this commit, if you went to validate your Vagrantfile and
wanted to ignore the provider, Vagrant would still fail as it checks if
there are any registered providers that are installed and usable. This
commit mocks out all registered providers to bypass that for the
validate command so that Vagrant can just validate the config and ignore
any provider config blocks.
2018-11-30 10:54:16 -08:00
Chris Roberts
d589aa9f81 Update default_nic_type implementation within VirtualBox provider
In some cases the E1000 NIC type is the only acceptable value. Since
defaulting causes breakages to existing boxes, leave the default value
as `nil` but check the VirtualBox version in use and print warning to
user if VirtualBox version is vulnerable and E1000 NIC types are
configured for use within defined network adapters.
2018-11-26 15:58:45 -08:00
Chris Roberts
b8f5752a82 Update VM import for VirtualBox 6 driver
The dry run import with VirtualBox 6 no longer provides full paths
for disks. Extract base path from suggested settings file location
and use that to generate full path name using provided disk base
name.
2018-11-15 11:04:08 -08:00
Chris Roberts
efbf99c451
Merge pull request #10409 from chrisroberts/e-vbox-ssh-port-detect
Update VirtualBox driver ssh_port helper
2018-11-13 15:44:15 -08:00
Chris Roberts
7750d6182d
Merge pull request #10410 from chrisroberts/f-hyperv-net-typo
Fix typo in hyper-v network configuration detection script
2018-11-13 15:43:03 -08:00
Chris Roberts
8f49e05ad4
Merge pull request #10406 from chrisroberts/e-hyperv-destroy
Disable automatic checkpoints prior to VM removal
2018-11-13 15:22:11 -08:00
Chris Roberts
9dd137633a Fix typo in hyper-v network configuration detection script 2018-11-13 15:11:04 -08:00
Chris Roberts
c7721f619b Update VirtualBox driver ssh_port helper
Be more restrictive when matching the port forward used for
SSH. Allow matching simply on the guest port, but also include
extra matching criteria for cases where multiple results may
be returned.
2018-11-13 15:04:12 -08:00
Chris Roberts
0ea4dcdc6e Disable automatic checkpoints prior to VM removal 2018-11-13 13:09:12 -08:00
Chris Roberts
83ed01869d Ignore errors when generating new VM configuration
The default error action is to stop. When generating the initial
VM configuration during import, if the Compare-VM command fails
it results in a generic error message. Instead the error should
be ignored so the source VM can be inspected and a useful error
message can be returned to the user.
2018-11-13 12:21:17 -08:00
Chris Roberts
29880ccd1f Add option to shell provisioner to reset communicator 2018-11-12 15:36:21 -08:00
Chris Roberts
afc138478d Add reset! method to winrm communicator 2018-11-12 15:36:21 -08:00
Chris Roberts
747dd9301b Add reset! to ssh communicator. Reduce number of ssh info prints. 2018-11-12 15:36:21 -08:00
Chris Roberts
cfc3e9e398 Reset communicator after updating user groups 2018-11-12 15:36:21 -08:00
Chris Roberts
f2c146d6d7
Merge pull request #10387 from chrisroberts/e-winrm-elevated
Prepend computer name to user when created scheduled tasks
2018-11-09 16:26:03 -08:00
Chris Roberts
c8f431cf44 Prepend computer name to user when created scheduled tasks
When running a shell provisioner elevated with winrm a scheduled
task is created to bypass permissions issues. If the name of the
computer has changed this may no longer work. To prevent errors
this PR updates the implementation to fetch the computer name
and prepends it to the username before creating the task.
2018-11-08 14:21:20 -08:00
Chris Roberts
d8bbc5ce09 Add support for specifying the default NIC type used for guest adapters
Provides support for defining the NIC type used for any guest adapter
which does not define an adapter type. This is defaulted to "virtio".
2018-11-07 15:53:46 -08:00
Chris Roberts
9d728682c4 Add vbox provider driver for 6.0 2018-11-06 16:50:17 -08:00
Chris Roberts
de42681742 Inherit from common base since 5.1 driver has no changes 2018-11-06 16:50:17 -08:00
Brian Cain
bcb6bf8acd
Merge pull request #10347 from briancain/add-timeout-for-ssh-info-hyperv
Fixes #10229: Add proper reboot capability for Windows guests
2018-11-06 09:25:36 -08:00
Brian Cain
796ff7b190
Remove logger from windows hostname cap 2018-11-05 14:12:16 -08:00
Brian Cain
57ca89011c
Merge pull request #10374 from briancain/move-login-warning
Move login command warning
2018-11-05 13:25:37 -08:00
Chris Roberts
d5f3600c4b
Merge pull request #10366 from chrisroberts/f-hyperv-vlan
Remove module loading from vlan script
2018-11-05 12:53:33 -08:00
Brian Cain
b951c0e781
Move login command warning
This commit moves where the warning is for the login command so that it
only displays when the command is invoked, and not when the plugin is
loaded.
2018-11-05 11:24:09 -08:00
Brian Cain
377b900277
Only execute reboot check if guest communicator is ready 2018-11-02 16:33:36 -07:00
Brian Cain
142a6898bc
Add reboot cap for windows
This commit introduces a proper reboot cap for Windows guests. Once it
initiates a reboot on the guest, it calls out to the wait_for_reboot cap
to block on until the guest is finished rebooting.
2018-11-02 15:25:57 -07:00
Chris Roberts
5add5c24fe Show formatted error message with address and netmask 2018-11-02 15:03:22 -07:00
Mikhail Zholobov
d9d081199c
action/network: Validate IP settings, show human-readable error 2018-11-02 22:29:19 +01:00
Mikhail Zholobov
a02aaa3195
action/network: Refactor the calculation of host-only adapter IP and DHCP settings 2018-11-02 22:28:49 +01:00
Chris Roberts
1ece44ca84 Remove module loading from vlan script 2018-11-02 10:42:28 -07:00
Brian Cain
54c8ebc31a
Fixes #10229: Add timeout for changing hostname on windows
Prior to this commit, if Windows was slow to reboot, Vagrant would fail
to find the right IP address to upload the wait_for_reboot script to.
This commit fixes this race condition by adding a timeout to ensure that
Vagrant can retry. It also properly catches an exception in the winrm
ready? method for checking if a guest is properly ready for
communications.
2018-11-02 09:23:00 -07:00
Brian Cain
6051f3598e
Fixes #10224: Allow validation of config while ignoring provider
This commit adds a new flag to the `vagrant validate` command which
allows users to completely ignore the provider block of a config file.
This is useful for when you are running `vagrant validate` in CI and
don't want to install a valid provider to check the syntax of your
Vagratnfile. When the flag is invoked, a warning will be displayed
saying that the provider block will be ignored and not validated.
2018-10-30 13:37:22 -07:00
Brian Cain
580bcaebb0
Merge pull request #10311 from briancain/DOCKER-VM-FOLDER-MOUNT
Deterministic host VM synced folder location for Docker provider
2018-10-24 16:19:41 -07:00
Brian Cain
a1bb7b837a
Use semicolon over ampersand to separate commands 2018-10-24 15:27:33 -07:00
Brian Cain
e8c6916ebc
Restart each interface if systemd-networkd or networkmanager is not used
This commit is a workaround due to how older debian and ubuntu systems
fail to properly restart networking. Instead of relying on the init
scripts or ifup/down tools to restart each interface, this commit
instead restarts each interface individually
2018-10-24 11:34:38 -07:00
Brian Cain
1761e65f26
Fixes #9763 #10300: Fall back on ifdown/ifup tools for network restart
This commit adds some additional logic that falls back to using the
ifdown/ifup tools to restart networking. On Ubuntu 14.04, the init
script was designed to always fail to restart newtorking, so it needs
to use the ifdown/up tools instead. This commit will use the networking
init script as a last resort to restart networking, assuming other
commands haven't broken networking already.

https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1301015
2018-10-23 14:47:12 -07:00
Brian Cain
7c06950e43
Ensure true or false for automount option 2018-10-23 09:00:55 -07:00
Brian Cain
6d0dfb2690
Fixes #10016: Add automount flag if specified with synced_folder
This commit adds a new option to virtualbox synced_folders called
`automount`, where if set to true, will supply the `--automount` flag to
virtualbox.
2018-10-22 15:45:32 -07:00
Chris Roberts
8562daf85e Prevent overly verbose output from SSH communicator
If the type of error changes on retry the messages will effectively
spam the user display with alternating messages. Log each message
sent and only re-display each message once within 10 seconds.
2018-10-19 15:18:03 -07:00
Brian Cain
65651178cd
Fixes #9591: Allow for 'default' smb_username if set
Prior to this commit, Vagrant would prompt for smb username and password
every time, even if only smb_username was defined. This commit changes
that by allowing a "default" username from the Vagrantfile, with the
option of overriding it.
2018-10-19 13:26:18 -07:00
Brian Cain
e54c9b22ef
Merge pull request #10301 from briancain/debian-fixup-hostname-change
Fixes #9763, #10300: Split out how hostname is set with Debian hosts
2018-10-18 08:57:29 -07:00
Brian Cain
94bb50fa7e
Add test for syncing folders with docker provider 2018-10-17 14:14:27 -07:00
Martin Jonas
238338d803
Deterministic host VM synced folder location for Docker provider to prevent broken sync after host VM shutdown
Fix for #10282
2018-10-17 11:28:24 -07:00
Brian Cain
15fb2b729d
Remove #Hash.compact for ruby 2.3 compatibility 2018-10-16 14:41:31 -07:00
Brian Cain
0c5d55e69c
Fixes #9763, #10300: Split out how hostname is set with Debian hosts
Prior to this commit, the hostname was set with one big bash script and
attempted to determine what tools are available. This commit changes
that by splitting out that tool check on the Vagrant side of things with
the GuestInspection class, and adds back restarting networking to get a
DHCP lease with the change rather than using `dhclient`. This pattern
matches how hostnames are set in the redhat capability.
2018-10-16 12:00:25 -07:00
Brian Cain
42c01f241c
Mark password as sensitive in logs 2018-10-12 09:07:12 -07:00
Brian Cain
adefbbaf6e
Scrub Vagrant Cloud tokens from RestClient logger 2018-10-12 09:07:12 -07:00
Brian Cain
e8115a4389
Update based on second round of feedback 2018-10-12 09:07:12 -07:00
Brian Cain
d8ec19faa8
Fixup: Update vagrant cloud command PR with feedback 2018-10-12 09:07:12 -07:00
Brian Cain
e67dac0dbb
Alias vagrant login command 2018-10-12 09:07:12 -07:00
Brian Cain
3c45acc35f
Continue if entity already exists with publish command 2018-10-12 09:07:12 -07:00
Brian Cain
83bd592e30
Introduce curl helper and uploader classes
This commit introduces a new uploader class for uploading files and
splits up some commonly used functionality between it and the downloader
class into a curl helper library.
2018-10-12 09:07:10 -07:00
Brian Cain
e70b871660
Introduce cloud command
This commit adds a new command to Vagrant called `cloud`. It handles any
and all interactions with the external service Vagrant Cloud.
2018-10-12 09:06:00 -07:00
Chris Roberts
95fad3a8e3
Merge pull request #10259 from hoatle/bugs/#10258-vagrant_ansible_local_inventory
@ #10258 | BUG: should not create /tmp/vagrant-ansible/inventory/vagrant_ansible_local_inventory/vagrant_ansible_local_inventory
2018-10-11 10:48:27 -07:00
Brian Cain
cc14b43a96
Ensure tmpdir is loaded for rsync helper class 2018-10-11 09:57:20 -07:00
Brian Cain
cb0bd89ae1
Fixes #10289: Create proper tmp dir for ControlPath
Prior to this commit, when creating the ControlPath tmp dir for
socket path, Vagrant would simply rely on `rand(1000)` for making unique
dirs for rsyncing files which could result in collisions. This commit
updates that be properly using `Dir.mktmpdir` with a `vagrant-rsync-`
prefix.
2018-10-11 09:51:03 -07:00
Chris Roberts
080dd748ef
Merge pull request #10265 from chrisroberts/f-win-chktyp
Only configure CheckpointType if available to be configured.
2018-10-09 14:47:15 -07:00
Chris Roberts
7241bd9fda
Merge pull request #10264 from chrisroberts/f-win-autochk
Wrap automatic checkpoint enable to prevent inadvertent execution
2018-10-09 14:46:04 -07:00
Chris Roberts
93c2f0f497
Merge pull request #10263 from chrisroberts/e-winrm-extensions
Add winrm and upload commands
2018-10-09 14:42:54 -07:00
Chris Roberts
ba0f0fbcab Default destination to basename of clean source 2018-10-08 15:29:55 -07:00
Chris Roberts
49a9ae4bd9 Remove current communicator name from error text 2018-10-08 14:30:11 -07:00
Chris Roberts
3181b5c1f9 Ensure winrm helper is loaded for command 2018-10-08 14:28:52 -07:00
Chris Roberts
d81abc1245 Fix active machine check to use common types when setting arguments 2018-10-08 14:22:32 -07:00
Chris Roberts
412290828b Fix trailing quotes in source path 2018-10-08 14:18:30 -07:00
Brian Cain
5daa25db80
Merge pull request #10267 from briancain/ruby-trigger-option
Fixes #9840: Introduce `ruby` option for trigger
2018-10-08 09:02:17 -07:00
Brian Cain
f4d618eb58
Fixes #9840: Introduce ruby option for trigger
This commit introduces a new option to the core trigger feature: `ruby`.
It can be defined to run ruby code when the trigger is configured to
fire. If you give the ruby block an env and machine argument, the
defined ruby code can use those variables internally.
2018-10-05 12:53:41 -07:00
Chris Roberts
88469d99f7 Only configure CheckpointType if available to be configured. 2018-10-04 15:24:05 -07:00
Chris Roberts
9c1ab2bd9f Wrap automatic checkpoint enable to prevent inadvertent execution 2018-10-04 15:16:58 -07:00
Chris Roberts
904a712838 Provide correct RDP information within configuration information
Dynamically generate RDP information when applicable via provider
if supported. When no RDP port is provided ignore RDP in config
and omit from output.
2018-10-04 14:41:10 -07:00
Chris Roberts
64987daf06
Merge pull request #10255 from chrisroberts/e-base-mac-vbox
Allow automatic mac address assignment with virtuabox provider
2018-10-04 13:38:08 -07:00
Chris Roberts
48d358adcb Add winrm and upload commands 2018-10-04 13:26:41 -07:00
hoatle
cae2119c0f @ #10258 | BUG: should not create /tmp/vagrant-ansible/inventory/vagrant_ansible_local_inventory/vagrant_ansible_local_inventory 2018-10-02 16:21:15 +07:00
Brian Cain
184d114374
Merge pull request #10242 from briancain/IGNORE-BOX-VAGRNANTFILE
Add config option `ignore_box_vagrantfile`
2018-10-01 11:07:28 -07:00
Chris Roberts
85dc0ebec9 Allow automatic mac address assignment with virtuabox provider 2018-10-01 11:05:28 -07:00
Chris Roberts
11b0d58fa0 Include communicator on call 2018-10-01 08:43:49 -07:00
Chris Roberts
1797798760 Fix module name 2018-09-28 07:59:39 -07:00
Brian Cain
424f49b919
Simplify config option to ignore box vagrantfile 2018-09-26 10:31:41 -07:00
Alex Wu
282c7341c9
add a option to ignore the vagrantfile packaged with the box 2018-09-26 10:10:45 -07:00
Brian Cain
5f56f0c8b1
Merge pull request #10223 from chrisroberts/e-rhel-nmsysd
Update restart logic in redhat change_host_name cap
2018-09-25 13:53:41 -07:00
Brian Cain
58ebd52f99
Add abort option to core triggers
This commit adds a new option `abort`, which when configured, will exit
the Vagrant process completely. If set to `true`, it will exit cleanly
with exit code 0. Otherwise, the exit code can be configured.
2018-09-25 09:40:36 -07:00
Chris Roberts
ff021fcab4 Update redhat change host name capability to support systemd
Update capability to use guest inspection module for determining
correct actions to execute. When systemd is in use restart the
correct active service, either NetworkManager or networkd. Default
to using the original service restart when systemd service is not
found.
2018-09-20 16:44:08 -07:00
Joe Doss
19aa9578c7 Exit 1 if we cannot set the hostname. 2018-09-20 15:28:37 -07:00
Joe Doss
c14a4a09f7 Switch if statements, check for systemctl, and switch to is-active. 2018-09-20 15:28:37 -07:00
Joe Doss
94954739b5 Simplified if statements. 2018-09-20 15:28:37 -07:00
Joe Doss
80006251f4 Add in logic to restart NetworkManager if it is enabled. 2018-09-20 15:28:36 -07:00
Brian Cain
a4d5ee6ac1
Merge pull request #10215 from briancain/FIX-SALT-PILLAR
Salt pillar configuration on Windows guests
2018-09-20 09:17:32 -07:00
Brian Cain
4612619dc4
Fixup docker config update 2018-09-19 10:52:59 -07:00
Oleksiy Protas
166fe374b6
More explicit logging and 'dockerfile' option support 2018-09-19 10:25:37 -07:00
Oleksiy Protas
cbc69f5158
Build from git operation for docker 2018-09-19 10:24:09 -07:00
Oleksiy Protas
de6a1794c7
Config, validation and test 2018-09-19 10:24:09 -07:00
Oleksiy Protas
8d1b5fc1c9
Docu changes for building Docker images from git 2018-09-19 10:24:05 -07:00
Brian Cain
c3c7ad4ea2
Merge pull request #10218 from briancain/fix-env-vars-puppet-windows
Fixes #8315: Properly set env variables for puppet provisioner
2018-09-19 09:04:01 -07:00
John Rizzo
b7d702ab5f
Update mount_shared_folder.rb
This change allows special characters in the password such as ) which will cause cmdkey to fail without the quotes.
2018-09-18 13:34:32 -07:00
Brian Cain
06b3268b6f
Fixes #8315: Properly set env variables for puppet provisioner
Prior to this commit, the puppet provisioner would not properly set its
environment variables, if any were configured in the Vagrantfile. This
commit separates those properly with semicolons when calling out to
puppet apply.
2018-09-18 10:09:01 -07:00
mtkennerly
5c50c50d73
Fix #8328: Use special quote and backslash formatting for Windows when setting Salt pillar. 2018-09-17 14:20:31 -07:00
Brian Cain
9ad04ada6c
Merge pull request #9431 from blueyed/options-without-leading-space
salt: remove leading space with bootstrap_options
2018-09-17 11:26:54 -07:00
Brian Cain
4fd9d522f6
Merge pull request #9432 from blueyed/curl-s
salt: bootstrap-salt.sh: use -s with curl
2018-09-17 11:13:21 -07:00
Brian Cain
13b09bedac
(#9802) Allow non-windows hosts to pass along version
The salt bootstrap can now accept version arguments on non-windows
hosts, so this commit allows the Vagrant provisinoer to specify a
version.
2018-09-07 13:39:36 -07:00
Brian Cain
4f42da15de
Merge pull request #10171 from eigengrau/default-template
vagrant init: Support VAGRANT_DEFAULT_TEMPLATE
2018-09-07 11:17:46 -07:00
Brian Cain
6c8d997053
Merge pull request #10181 from chrisroberts/f-auto-checkpoints
Check for automatic checkpoint support before configuring
2018-09-07 10:44:26 -07:00
Chris Roberts
1f74aedeaa Check for automatic checkpoint support before configuring
The AutomaticCheckpointsEnabled option may not always be available
depending on the version in use. Check for support before applying
the configured value. If automatic checkpoints are to be enabled
and support is not available, force an error.
2018-09-05 13:37:45 -07:00
Brian Cain
c3c65a3793
Fixup docs and website wording for command 2018-09-05 13:26:22 -07:00
Brian Cain
b1a0fa628f
Add subcommand docstring to powershell 2018-09-05 12:56:17 -07:00
Brian Cain
d6e43d3197
Include winrm locales 2018-09-05 11:00:45 -07:00
Sebastian Reuße
3efdc8960c vagrant init: Support VAGRANT_DEFAULT_TEMPLATE 2018-09-04 10:48:16 +02:00
Brian Cain
f51176a101
Merge pull request #10140 from berney/fix-ansible-perm-issue
Fix ansible_local provisioner permission bug
2018-08-31 11:02:47 -07:00
Brian Cain
11c619bff6
Merge pull request #10092 from jmaness/patch-1
[#10098] Filter out empty strings and loopback interfaces when constructing the list of network interfaces
2018-08-31 10:03:49 -07:00
Chris Roberts
c4084a6387 Extract smblist information based on position
Since we are no longer extracting information based on key value due
to localization issues, use start and end locations to extract data.
This prevents errors when extra information is included like Scope.
2018-08-30 10:58:56 -07:00
Chris Roberts
d48b95ffaf Check :verify_host_key value for :never or if falsey 2018-08-24 14:11:30 -07:00
Berne Campbell
b036032cb0 fix typo 2018-08-23 13:07:56 +10:00
Berne Campbell
0d23724a1f Fix ansible provisioner permission bug 2018-08-22 20:32:40 +10:00
Brian Cain
b1357a2f60
Merge pull request #10123 from briancain/add-force-flag-reload
Add `--force` flag to reload command
2018-08-17 15:18:36 -07:00
Brian Cain
c2cff0dc07
Merge pull request #10100 from briancain/DOCKER-TOOLBOX
Convert windows paths for volume mounts on docker driver
2018-08-17 15:08:59 -07:00
Brian Cain
e5364e7798
Only write box metadata if guest has box object
Prior to this commit, providers like docker would fail to be brought up
because they do not store box objects like virtualbox or vmware
provider guests. This commit fixes that by making sure the box object
exists before writing the metadata file to disk.
2018-08-17 09:58:24 -07:00
Brian Cain
c65a0a9054
(#9677) Add --force flag to reload command
This commit introduces the `--force` flag to the reload command. This
change means that if the flag is included, the halt step of the reload
will forcefully shutdown the virtual machine rather than a graceful
halt.
2018-08-16 13:57:13 -07:00
Brian Cain
5d2d784ae7
(#9085) - Add test for converting windows paths
This commit adds a test for checking that a windows path for mounting a
volume in a container is properly converted into something that's
usable.
2018-08-08 10:30:04 -07:00
Chris Roberts
2c4c14c57c
Merge pull request #10084 from chrisroberts/f-host-nfs-sudo
Fix sudo usage in exports write within linux host cap
2018-08-08 08:28:49 -07:00
Chris Roberts
8ec7963968
Merge pull request #10083 from chrisroberts/f-box-ver-up
Store box metadata of active guest
2018-08-08 08:25:47 -07:00
Brian Cain
9ec2eae5c9
Merge pull request #9976 from Biteable/fix-cmd-command
Allow shared folders to be mounted after installing MSYS2
2018-08-07 13:13:05 -07:00
Jeremy Maness
a73fb9c139 - Filter out empty strings when constructing the list of network interfaces
- Sort interfaces properly whose name does not contain a numeric suffix (e.g. lo)
- Filter out loopback interfaces
2018-08-04 21:16:51 -04:00
Chris Roberts
ceb7a0b5ac When doing box lookup, use explicit provider, machine provider, then default 2018-08-02 16:41:28 -07:00
Chris Roberts
00b783a6a5 Lookup latest available installed box if required on update
When performing a box update and the box version has been updated
to be different than the installed version, perform a lookup for
the latest available installed box to allow the update command to
continue successfully
2018-08-02 16:12:10 -07:00
Chris Roberts
051c7a7823 Fix sudo usage in exports write within linux host cap
Only move new exports file to destination without sudo when the
file has write access and the directory has write access. Always
use sudo when changing file ownership.
2018-08-02 15:13:27 -07:00
Chris Roberts
6c1a9dc58e Store box metadata of active guest
When a guest is created, the box metadata information is stored in the
machine data directory. This allows modifications to happen to the
Vagrantfile definition of the box in use (box name change, box version
change, etc) while still allowing the Machine instance of an active
guest successfully load the box currently backing it.
2018-08-02 11:01:36 -07:00
Brian Cain
b3da2bd21f
(#9614) Add back check for Solaris derived guests
This commit adds back the `uname` test 93c571adbf
removed to catch any solaris 11 derived guests like openindiana
2018-08-01 14:25:04 -07:00
Chris Roberts
de284a9056
Merge pull request #10079 from chrisroberts/f-win-virt-ext
Enable ExposeVirtualizationExtensions only when available
2018-07-31 13:54:55 -07:00
Chris Roberts
09c8e2800c
Merge pull request #10077 from chrisroberts/e-ipv6-link-local
Skip link-local addresses when fixing IPv6 route
2018-07-31 13:52:50 -07:00
Chris Roberts
e3e68c9b51
Merge pull request #10076 from chrisroberts/e-winrm-warn
Add warning when vagrant-winrm is found
2018-07-31 13:51:23 -07:00
Chris Roberts
fa9bda9554
Merge pull request #10066 from chrisroberts/e-net-ssh-update
Update net-ssh constraint
2018-07-31 13:48:49 -07:00
Chris Roberts
9c149ba8b1 Only enable ExposeVirtualizationExtensions if available within Hyper-V version 2018-07-31 13:33:41 -07:00
Cédric Félizard
f53238d253 Skip link-local addresses when fixing IPv6 route
This occurs with a Linux host when a link-local address is configured
for vboxnet0 (which is the default for VirtualBox 5.2.6).

`connect': Invalid argument - connect(2) for "fe80::ffff:ffff:ffff:ffff" port 80 (Errno::EINVAL)
2018-07-30 15:00:35 -07:00
Chris Roberts
dcfb84893d Only reset the _init on testing cleanup 2018-07-30 14:44:36 -07:00
Chris Roberts
cd7215ab13 Add warning when vagrant-winrm is found 2018-07-30 13:27:20 -07:00
Chris Roberts
57e0bb5105 Update net-ssh constraint
Also includes mapping of verify_host_key value to new values
introduced in 5.0.0
2018-07-27 16:30:06 -07:00
Matthew Olenik
428eb3ed93
Support Docker volume consistency for synced folders
Adds the `docker_consistency` option, which sets the Docker volume
consistency level. This can be used to greatly improved synced folder
performance, especially on macOS.

See for details: moby/moby#31047
2018-07-27 15:16:39 -07:00
Brian Cain
72f3a7be14
Ensure the SecureRandom library is loaded 2018-07-27 13:44:24 -07:00
Chris Roberts
8ff29d5c05
Merge pull request #10043 from chrisroberts/f-smb-localization
Remove localization dependency from SMB list generation
2018-07-27 10:27:54 -07:00
Chris Roberts
584b288b8f
Merge pull request #9935 from whitel/fix-for-#9878
Fixes the change in packaging for nfs in f28 (#9878)
2018-07-27 10:22:42 -07:00
Chris Roberts
a993cbce4e
Merge pull request #10037 from chrisroberts/e-vagrant-plugins-local
Define project specific plugins
2018-07-27 09:57:41 -07:00
Chris Roberts
4d4e707b73
Merge pull request #9889 from treytabner/debian-systemd-networkd
Increase priority and support multiple networks for Debian with systemd-networkd
2018-07-19 14:13:46 -07:00
Chris Roberts
2096bce36f Remove localization dependency from SMB list generation 2018-07-19 13:40:54 -07:00
Chris Roberts
27a441f0bd
Merge pull request #10001 from chrisroberts/e-wsl-valid-sync
Disable synced folders on non-DrvFs
2018-07-18 16:41:16 -07:00
Chris Roberts
110600970a
Merge pull request #10000 from chrisroberts/f-hyperv-access-localized
Fix Hyper-V access check
2018-07-18 16:39:54 -07:00
Chris Roberts
10faa599e7
Merge pull request #9999 from chrisroberts/f-hyper-v-snaps
Enable checkpoints for snapshots if disabled
2018-07-18 16:38:32 -07:00
Chris Roberts
7c9fb9a5d7 Use availablity of local plugins file instead of option 2018-07-18 15:49:30 -07:00
Chris Roberts
8e0e2fc53a Add output for local repair 2018-07-18 15:49:30 -07:00
Chris Roberts
8445b496d8 Use consistent terms for describing local flag 2018-07-18 14:19:29 -07:00
Chris Roberts
7a623d2826 Include local flag for plugin update command 2018-07-18 14:02:17 -07:00
Chris Roberts
3fd55dac23 Add local plugin repair support. Update global repair implementation. 2018-07-18 13:46:17 -07:00
Chris Roberts
ef0269c538 Add action method for local plugin repair 2018-07-18 13:45:15 -07:00
Chris Roberts
14edb8f423 Add local only and global only flags to plugin expunge command 2018-07-18 13:43:52 -07:00
Chris Roberts
9d191a2419 Add local option stub to allow Vagrantfile loading 2018-07-17 15:35:25 -07:00
Chris Roberts
8baf7ced38 Use path of state file, not state file itself 2018-07-17 15:35:25 -07:00
Chris Roberts
3223737734 Use env_local consistently internally 2018-07-17 14:49:41 -07:00
Chris Roberts
b71054502e Update local usage to env_local for clarity 2018-07-17 14:49:41 -07:00
Chris Roberts
84c0aafe71 Support non-interactive local plugin install 2018-07-17 14:49:41 -07:00
Chris Roberts
40f4e6f67e Vagrant Environment isolated plugins
Adds support for plugins isolated to a specific `Vagrant::Environment`
which can be managed by the vagrant plugin command using the the
--local flag.
2018-07-17 14:49:41 -07:00
Aloz1
b9b9eeac85 Void requires root access to check service status
Service status check was failing because it was not being run as root. This resulted in vagrant thinking the service was not running, hence it would always try to start nfs rather than updating exports.
2018-07-14 15:53:13 +10:00
Chris Roberts
8aa74a03a0 Differentiate checkpoints and automatic checkpoints
Provide separate configuration settings for enabling/disabling
checkpoints and automatic checkpoints with Hyper-V provider.
2018-07-13 15:23:09 -07:00
Aloz1
5e258cbc7c Fixed nfs_start_command. NFS now starts. 2018-07-13 08:08:05 +10:00
Aloz1
98f70d4d7a Add void linux host support 2018-07-12 08:40:33 +10:00
Brian Cain
52c3dcc70e
(#9997) Catch and allow for non-standard exit codes
Prior to this commit, the run trigger option wouldn't catch for failures
outside of the #Subprocess.execute raising exceptions. This commit fixes
that by inspecting the exit code result of the subprocess and using the
new `exit_codes` option to determine how to move forward with the
trigger.
2018-07-09 15:56:26 -07:00
Chris Roberts
2667de163b Enable rsync synced folders for non-DrvFs file systems within WSL 2018-07-06 16:58:12 -07:00
Chris Roberts
859d48d5f5 Restrict synced folder access to DrvFs file systems only within WSL 2018-07-06 16:58:12 -07:00
Chris Roberts
cf29085d33 Fix root directory generation on failed access 2018-07-06 16:27:52 -07:00
Chris Roberts
15dacc80c0 Update ACL check to use identifier to prevent localization errors 2018-07-06 16:25:05 -07:00
Chris Roberts
a9bc0bb800 Do not provision and configure when state is saved 2018-07-06 15:49:36 -07:00
Chris Roberts
630bc6540d Enable standard checkpoint on VM for snapshot if disabled 2018-07-06 15:29:07 -07:00
William Bowling
4ec865b69d
Make sure that the correct cmd is run
After installing msys2, there is another `cmd` on the path which prevents shared folders from being mounted. Explicitly calling `cmd.exe` fixes the issue
2018-07-02 13:15:10 +10:00
Chris Roberts
ac8ad59823 Provide custom error when attempting to push too many files with FTP
When the configured directory for FTP push has too many files, it will
generate an exception and fail due to a stack overflow. When this happens
just rescue out the exception and re-raise a custom error to provide
some context to the user on the actual problem.
2018-06-26 08:28:01 -07:00
Chris Roberts
101fc447ec Add Hyper-V access check on data directory 2018-06-18 15:36:45 -07:00
Chris Roberts
941dd77a90 Force string conversion on paths 2018-06-18 09:53:06 -07:00
langdon
f0b9d025e4 Fixes the change in packaging for nfs in f28 (#9878). However, removed part of the unit test which will be very difficult to fix (I expect). The unit test is still doing a good test that nfs and rpcbind work though. If you go far enough back, you need to bury the error out too. 2018-06-18 12:16:23 -04:00
Chris Roberts
fe8fe55d1f Delete and re-create data directory when destroying guest 2018-06-18 09:09:27 -07:00
Chris Roberts
a8abb6898c Fix PowerShell cmdlet name for clones 2018-06-18 09:09:01 -07:00
Chris Roberts
1e5c8bf275 Add check for WSL when determining if Hyper-V is usable 2018-06-18 09:08:35 -07:00
Chris Roberts
d84f29f12c Just provide module path as conversion is done earlier 2018-06-18 09:08:05 -07:00
Chris Roberts
55aaa1d258 Update path usages to support Hyper-V provider access from WSL 2018-06-15 09:03:18 -07:00
Chris Roberts
8fbf27772a Always ensure full path to configuration file on import 2018-06-15 07:48:14 -07:00
Chris Roberts
694104b005 Attempt to provide helper error message on failed VM import
When importing a Hyper-V VM fails, attempt to manually build
a system definition and inspect the result to determine cause
of the failure.
2018-06-14 16:40:37 -07:00
Chris Roberts
3919455f08
Merge pull request #9932 from chrisroberts/e-hyperv-maxmem-chk
Validate maxmemory setting within Hyper-V provider
2018-06-13 14:52:09 -07:00
Chris Roberts
4d3f5d33c6
Merge pull request #9925 from chrisroberts/u-powershelling
Misc. PowerShell cleanup
2018-06-13 14:51:43 -07:00
Chris Roberts
9482f351fc Validate maxmemory setting within Hyper-V provider
Forces an error if maxmemory value is less than the configured
minimum or startup memory.

Fixes #9477
2018-06-13 13:27:11 -07:00
Trey Tabner
c218267436
Merge branch 'master' into debian-systemd-networkd 2018-06-13 12:49:50 -05:00
Chris Roberts
1554f447f2 Disconnect all configured network adapters
When importing a Hyper-V VM ensure all adapters are disconnected from
switches that were used when the box was built.
2018-06-13 07:59:56 -07:00
Chris Roberts
10ac204c29 Prevent SMB output from being wrapped 2018-06-12 16:47:47 -07:00
Chris Roberts
57842d7269 Update powershell messaging functions to not include second - character. 2018-06-12 16:47:47 -07:00
Chris Roberts
ee5656da37
Merge pull request #9923 from chrisroberts/f-win-perms
Update SSH key file permissions handling
2018-06-12 16:45:39 -07:00
Chris Roberts
4bf8fe1463
Merge pull request #9917 from chrisroberts/f-smb-garbage
Fix SMB information generation when using net share
2018-06-12 16:24:54 -07:00
Chris Roberts
e39b3555e6 Disable inherit on key file for parent ACL rules 2018-06-12 16:21:13 -07:00
Chris Roberts
ae8e25aabc Include key path flag when calling script 2018-06-12 16:20:49 -07:00
Chris Roberts
16bcc1d874 Include scripts directory when building pathname 2018-06-12 16:20:30 -07:00
Chris Roberts
2628d93370 Rename method name when checking capability 2018-06-12 14:13:10 -07:00
Chris Roberts
98c6903e9c Fix path variable name. Return process result. 2018-06-12 11:56:37 -07:00
Chris Roberts
a5582eb1c8 Add ssh key permissions set caps to hosts 2018-06-12 10:49:10 -07:00
Chris Roberts
5ba91de4d8 Use host capability to update key file permissions if available 2018-06-12 10:46:53 -07:00
Chris Roberts
ef5eca16d2 Fix SMB information generation when using net share
Adds the final line of output to tests and properly simulates
failure. Fix with type casting to prevent calling methods on
nil and drop the final entry as it's not valid.

Fixes #9806
2018-06-11 12:58:35 -07:00
Chris Roberts
7df6ea5a30 Fix Chef apply provisioner to not set node_name
The base chef provisioner class will set the node name automatically
if not provided in the configuration. Since the chef apply provisioner
does not provide a node_name option, setting it will invalidate the
configuration. This checks for the node name before attempting to
use it.

Fixes #9901
2018-06-11 10:35:52 -07:00
Chris Roberts
52c174da75
Merge pull request #9833 from afischer-opentext-com/9174
#9174 Remove masterless? config attribute
2018-06-08 16:18:06 -07:00
Chris Roberts
6f76275f9e
Merge pull request #9867 from jnahorny/fix-9592-systemd-networkd
Fix issue 9592 when systemd-networkd is used by Debian guest
2018-06-08 16:08:27 -07:00
Chris Roberts
9001dc6b9b
Merge pull request #9855 from WIgor/master
Fix for ubuntu 17.10+ netplan
2018-06-08 16:03:07 -07:00
Tony Apuzzo
5ac8bb8620 Correct typo, $Enable instead of $enabled. 2018-06-07 15:00:09 -06:00
Chris Roberts
120fa07a8d
Merge pull request #9872 from chrisroberts/e-hyperv-2
Hyper-V provider overhaul
2018-06-04 16:51:12 -07:00
Gilles Cornu
d5b5e9ea8c ansible_local: Improve installation from PPA
- Fix #9796: Failing installation on bionic (18.04 LTS)
- Remove support for precise (12.04 LTS), which is out of public support
  (On this version, the package python-software-properties contained
  the add-apt-repository tool)
- Reduce the number of SSH calls, and avoid unnecessary apt-get calls.
2018-05-31 05:47:50 +02:00
Trey Tabner
59474f80fd Increase priority and support multiple networks 2018-05-30 10:10:36 -05:00
Chris Roberts
73c09de1a9 Add deprecation warning when differencing_disk option is used 2018-05-29 10:21:06 -07:00
Chris Roberts
c238dc0a35 Include machine name when raising invalid box errors 2018-05-25 16:43:17 -07:00
Chris Roberts
35d8920325 Case insensitive switch check and only write sentinel file if not found 2018-05-25 15:11:58 -07:00
Chris Roberts
2bd6f537ef Clean up syntax and force string type when setting integration option 2018-05-25 10:11:05 -07:00
Chris Roberts
d2bc634623 Add vm_integration_services validation 2018-05-24 16:55:35 -07:00
Chris Roberts
52bae21933 Remove unused PowerShell scripts 2018-05-24 15:33:36 -07:00
Jaroslaw Gorny
995c43dd0c Fix issue 9592 when systemd-networkd is used by Debian guest 2018-05-25 00:06:20 +02:00
Chris Roberts
e6457d5061 Overhaul the Hyper-V provider 2018-05-24 14:43:44 -07:00
Igor Mazur
66b2866373
Shorten if 2018-05-23 11:17:40 +03:00
Igor Mazur
07bbaf9ac5
Fix fo tests (symbol and string dhcp) 2018-05-22 23:29:53 +03:00
Igor Mazur
be096c3ef4
Fix for ubuntu 17.10+ netplan
https://github.com/hashicorp/vagrant/issues/9570
2018-05-21 23:48:40 +03:00
Brian Cain
c6cd8f1e9a
Merge pull request #9829 from briancain/add-suspend-global
Introduce flag for suspending all machines
2018-05-11 16:41:24 -07:00
Brian Cain
5ca382727d
Raise error if argument is provided with --all-global flag
This commit raises an error if additional arguments are provided to the
suspend command when the `--all-global` flag is used.
2018-05-11 15:43:14 -07:00
Brian Cain
aa5687cd14
(#7221) Introduce flag for suspending all machines
This commit introduces a new flag to the suspend command,
`--all-global`, which will suepend all vms both locally and globally.
2018-05-11 10:15:48 -07:00
Alexander Fischer
0b87184ad4
#9174 Remove masterless? config attribute
Remove the @config.masterless? attribute as there is no benefit from it
2018-05-11 08:49:57 +02:00
Brian Cain
728a9135c8
(#9726) Update netplan config generation to detect NetworkManager
Prior to this commit, when setting up private networks on Ubuntu using
netplan, it assumed that the guest was using systemd, the suggested
default tool to manage networking, and did not take into account devices
that could be managed with NetworkManager. This commit fixes that by
looking at the devices managed on the guest to see if its managed by
NetworkManager, and if so, use that renderer for netplan instead of
networkd.
2018-05-10 13:02:05 -07:00
Chris Yungmann
7fb9d3eb4f propagate unset guestpath 2018-05-08 22:51:30 -05:00
Chris Roberts
3bcdd2901b
Merge pull request #9800 from chrisroberts/e-vbox-builtin
Support VirtualBox shared folders using builtin kernel module
2018-05-07 13:24:50 -07:00
Chris Roberts
0a523bc12b
Merge pull request #9785 from chrisroberts/f-smb-list
Use net.exe to fetch SMB shares when Get-SmbShare is not available
2018-05-07 13:07:47 -07:00
Chris Roberts
c571249000 Support VirtualBox shared folders using builtin kernel module
Check error output if initial mount command fails to determine if
the builtin module should be used for mounting instead.
2018-05-07 13:02:19 -07:00
Chris Roberts
7a4150dc3f Use net.exe to fetch SMB shares when Get-SmbShare is not available
Fixes #9547
2018-05-04 14:07:33 -07:00
Chris Roberts
2730fe7ec9 Update script parameter name in option to switchid
Fixes #9774
2018-05-04 08:55:18 -07:00
Chris Roberts
02b9d625d3
Merge pull request #9759 from StefanScherer/wsl-remove-raise-vboxmanage-missing
Allow other providers in WSL
2018-05-03 12:42:16 -07:00
Chris Roberts
89d00f4204
Merge pull request #9758 from StefanScherer/wsl-rdp
Call mstsc.exe Windows RDP client in WSL
2018-05-03 12:40:37 -07:00
Chris Roberts
40ae8aa38d
Merge pull request #9769 from chrisroberts/e-key-perms
Log error and proceed when private key permissions fail
2018-05-03 12:34:50 -07:00
Chris Roberts
f0e232d739 Log error and proceed when private key permissions fail
Fixes #9765
2018-05-03 11:48:57 -07:00
Chris Roberts
8b398b66a3 Trim drive letter prefix from path
Fixes #9764
2018-05-03 09:28:19 -07:00
Brian Cain
e1129d27f9
Merge pull request #9761 from briancain/FIX-DOCKER-EXEC
Use Util::SafeExec if docker-exec is run with `-t` option
2018-05-02 15:47:46 -07:00
Brian Cain
79e535a7ee
(#9622) Use SafeExec for docker-exec
This commit uses the internal helper SafeExec rather than using the
Kernel class directly. It also adds a test to ensure that if the `-t`
option is used, it will call SafeExec.
2018-05-02 14:23:50 -07:00
Stefan Scherer
f14e8bcbf2
Allow other providers in WSL 2018-05-02 22:36:17 +02:00
Chris Roberts
fbcd86993b
Merge pull request #9737 from chrisroberts/e-hyper-v-addr
Check neighbors for valid guest address when default lookup fails
2018-05-02 08:54:57 -07:00
Chris Roberts
bf281a912c
Merge pull request #9747 from chrisroberts/e-hyper-v-checkpoints
Reference Hyper-V switch by ID instead of name
2018-05-02 07:47:31 -07:00
Stefan Scherer
a01d68b2e0
Call mstsc in WSL 2018-05-02 15:21:47 +02:00
Brian Cain
6fc2d9d82d
Merge pull request #9754 from briancain/DOCKER-PROV-WINDOWS
Update docker provisioner for windows, fix command filter behavior for `rm`
2018-05-01 13:46:33 -07:00
Brian Cain
93356d4635
Update rm filters to test for path
This commit updates the rm filter for winrm to operate like how rm works
in bash. If a folder doesn't exist, the command returns 0 rather than 1.
2018-05-01 13:35:45 -07:00
Chris Roberts
9f08337ce1 Ignore errors on neighbor lookup and validate result 2018-04-30 17:39:27 -07:00
Chris Roberts
39bb589f7d
Merge pull request #9739 from chrisroberts/f-midware-invalid-uri
Ignore URLs which cannot be parsed in the authentication middleware
2018-04-27 17:03:02 -07:00
Chris Roberts
e47e1df228 Reference Hyper-V switch by ID instead of name
Keep track of selected Hyper-V switch using the ID instead of name
to prevent any encoding issues that may occur switching between
PowerShell and Ruby. With the IDs staying consistent, the switch
name can be fetched from the provided ID.

Fixes #9679 #8794 #9451
2018-04-27 16:52:16 -07:00
Joe Pleso
c882d888a7
Add docker cap to windows to detect daemon and fix whitespace 2018-04-27 09:45:24 -07:00
Brian Cain
1f25b2cc22
Merge pull request #9736 from briancain/disable-loading-triggers-if-plugin-exists
Add warning if vagrant-triggers plugin is installed
2018-04-26 16:11:31 -07:00
Chris Roberts
97f5822dee Ignore URLs which cannot be parsed in the authentication middleware
Fixes #9725
2018-04-26 15:08:06 -07:00
Brian Cain
1ef45d8073
Add warning if vagrant-triggers plugin is installed
To allow users to continue to use the community plugin, this commit adds
a switch that will not load the core trigger feature if it detects the
community plugin is installed. It also allows the user to disable the
warning so they can continue to use the plugin without extra output.
2018-04-26 14:59:09 -07:00
Chris Roberts
d2ec4d9312
Merge pull request #9734 from chrisroberts/f-win-smb-mount
Default SMB version to 2.0 for linux guest mounts on Windows hosts
2018-04-26 14:48:01 -07:00
Chris Roberts
d15ff38d5c Check neighbors for valid guest address when default lookup fails
If the guest address is unavailable via Hyper-V inspection, extract
MAC address of network adapters and check neighbor information for
any currently matching known address.
2018-04-26 12:53:52 -07:00
Chris Roberts
40a1d2faf3 Default SMB version to 2.0 for linux guest mounts
Fixes #8959
2018-04-26 08:45:05 -07:00
Chris Roberts
5feb234665 Return original URL value when unmodified
Due to the behavior of URI.parse on Ruby < 2.5 returning the string
value of the parsed URI object may modify the original URL. Specifically
it will remove the `//` prefix characters from SMB paths. When no
host modifications are being made, always return the original value.

Fixes #9636
2018-04-25 16:21:21 -07:00
Brian Cain
b409f0e203
Merge pull request #9669 from dduponchel/data_bags_path
Support arrays for data_bags_path in chef-zero
2018-04-24 15:45:36 -07:00
Brian Cain
5643ba0c7d
Merge pull request #9713 from briancain/vagrant-triggers-config
Integrate vagrant-triggers plugin functionality into core Vagrant
2018-04-24 11:35:04 -07:00
Brian Cain
a9be56b356
Code updates based on PR feedback 2018-04-24 10:04:40 -07:00
Brian Cain
7f004656db
(#9718) Properly finalize structured_facts config option
This commit sets the structured_facts option to nil if its still
UNSET_VALUE at the finalize step. This was causing a bug when the facter
config was set but was not using structured facts.
2018-04-23 14:23:59 -07:00
Brian Cain
e25cb51f15
Properly print warnings on config settings that aren't supported 2018-04-20 10:51:38 -07:00
Brian Cain
12b1a3dfe4
Update triggers based on code review 2018-04-20 10:51:38 -07:00
Brian Cain
e0806f623c
Remove TODO 2018-04-20 10:51:38 -07:00
Brian Cain
0054c5aae6
Raise error if incomplete trigger block is defined 2018-04-20 10:51:38 -07:00
Brian Cain
767a315393
Trigger cleanup 2018-04-20 10:51:38 -07:00
Brian Cain
693eb2fbbb
Add machine level warning when privileged option is set for run 2018-04-20 10:51:38 -07:00
Brian Cain
3ad4f576c0
Add only_on validation for config 2018-04-20 10:51:38 -07:00
Brian Cain
ca672eb8e6
Trigger plugin cleanup 2018-04-20 10:51:38 -07:00
Brian Cain
85dedf25d9
Ensure that :all triggers don't get filtered out 2018-04-20 10:51:38 -07:00
Brian Cain
2c30eab723
Don't run local commands as sudo by default 2018-04-20 10:51:38 -07:00
Brian Cain
eac2fcf71e
Filter triggers based on only_on restraint 2018-04-20 10:51:38 -07:00
Brian Cain
372a6a7911
Initial trigger plugin scaffolding 2018-04-20 10:51:38 -07:00
Brian Cain
a5d8cc1caa
Update trigger classes with comments 2018-04-20 10:51:38 -07:00
Brian Cain
956ed004bb
Update trigger config merge function 2018-04-20 10:51:38 -07:00
Brian Cain
abb6d77442
Move location of command validator 2018-04-20 10:51:38 -07:00
Brian Cain
6cbb5d8e5d
Add unit tests for config, fix type change bug with map! 2018-04-20 10:51:38 -07:00
Brian Cain
42419bbd49
Fix rspec tests 2018-04-20 10:51:38 -07:00
Brian Cain
d0d69e59c9
Update return doc string on validate 2018-04-20 10:51:38 -07:00
Brian Cain
60c4ffa8a6
Ensure run & run_remote are Hashes before updating to shell config 2018-04-20 10:51:38 -07:00
Brian Cain
e752878de9
Update finalize method for run and run_remote objects 2018-04-20 10:51:38 -07:00
Brian Cain
d3dde739fe
Update trigger code docs 2018-04-20 10:51:38 -07:00
Brian Cain
1591ae9916
Make run and run_remote settings shell provisioner configs 2018-04-20 10:51:38 -07:00
Brian Cain
f0ec7c750b
Potential solution for trigger validation when guest is defined
Send the defined before and or after triggers in the merge function if
triggers exist already
2018-04-20 10:51:38 -07:00
Brian Cain
51e4118cc2
Debug commit 2018-04-20 10:51:38 -07:00
Brian Cain
0cbf6970fc
Update config class setting 2018-04-20 10:51:38 -07:00
Brian Cain
607368a66c
Introduce merge function to preserve internal state 2018-04-20 10:51:38 -07:00
Brian Cain
d26a925bd7
Update variable doc 2018-04-20 10:51:38 -07:00
Brian Cain
5ca1d1ab64
Finalize config in plugins finalize, improve docs 2018-04-20 10:51:38 -07:00
Brian Cain
b04f13657b
Move warning to logger rather than guest 2018-04-20 10:51:38 -07:00
Brian Cain
a96baad0d7
Add comments for later dev 2018-04-20 10:51:38 -07:00
Brian Cain
60ff2489c4
Display warning if vagrant command for trigger is not found 2018-04-20 10:51:38 -07:00
Brian Cain
8e72ae5bd6
Add basic validation for trigger config objects 2018-04-20 10:51:38 -07:00
Brian Cain
375e8d7153
Remove old comments 2018-04-20 10:51:38 -07:00
Brian Cain
3c5e4b2464
Fix variable doc 2018-04-20 10:51:38 -07:00
Brian Cain
50ecf45d50
Add more doc to create_trigger function 2018-04-20 10:51:38 -07:00
Brian Cain
c10ae070b6
Store correct command for trigger 2018-04-20 10:51:38 -07:00
Brian Cain
e0a5b1d647
Parse block trigger configs 2018-04-20 10:51:38 -07:00
Brian Cain
6f00eb5679
Move trigger options into own plugin class 2018-04-20 10:51:38 -07:00
Brian Cain
fdf1b58570
Introduce ids for trigger blocks 2018-04-20 10:51:38 -07:00
Brian Cain
bb2f3b35b9
Add basic unit test 2018-04-20 10:51:38 -07:00
Brian Cain
7cccddc009
Add basic scaffolding for command parsing 2018-04-20 10:51:38 -07:00
Brian Cain
01b904061d
Use proper command reference for command whitelist params 2018-04-20 10:51:38 -07:00
Brian Cain
0142722787
Add run and run_remote scaffolding 2018-04-20 10:51:38 -07:00
Brian Cain
813ffd06ec
Add more trigger config options 2018-04-20 10:51:38 -07:00
Brian Cain
a194057fc0
Add trigger config plugin 2018-04-20 10:51:38 -07:00
Jose Luis Duran
53acd20548
Fix network configuration on FreeBSD hosts
There was a missing space within `sed` parameters that caused the
`rc.conf` file to be wrongly created as `rc.conf-e`.
2018-04-19 16:25:16 -03:00
Isaac Freeman
de71626922 docker: use Kernel.system for docker-exec when -t is given 2018-04-18 17:50:47 -04:00
Brian Cain
9f29812db8
Merge pull request #9690 from briancain/expand_nodes_path_chef
File path expand all chef_zero config path options
2018-04-18 13:04:38 -07:00
Brian Cain
9660951c89
Merge pull request #9490 from jzinn/solo-rb-cookbook-path
Improve Windows drive letter removal hack
2018-04-18 08:31:23 -07:00
Julian Zinn
269645f63d Improve Windows drive letter removal hack 2018-04-17 13:23:14 -07:00
Brian Cain
151095a3e9
Merge pull request #9420 from ryanwalder/salt-json
Add master_json_config & minion_json_config options to salt provisioner
2018-04-16 15:37:44 -07:00
Brian Cain
e8ab85e92b
(#9383) File path expand all chef_zero config path options
This commit ensures that all paths are properly file path expanded for
each config option in chef_zero.
2018-04-16 11:05:39 -07:00
Brian Cain
42df3e7185
Merge pull request #9685 from briancain/improve-hostonly-conf-error
Improve network collision error message
2018-04-12 15:18:50 -07:00
Brian Cain
4db3d49157
Improve network collision error message
This commit provides a bit more information when a non-hostonly network
collides with a host network.
2018-04-12 14:16:13 -07:00
Chris Roberts
5d7506afe3
Merge pull request #9676 from chrisroberts/e-win-file-perms
Update generated ssh private key file permissions on create
2018-04-10 14:56:28 -07:00
Chris Roberts
b605da0ef5
Merge pull request #9673 from chrisroberts/f-win-paths-filter
Fix windows command filters
2018-04-10 14:44:32 -07:00
Chris Roberts
9731720773 Update generated ssh private key file permissions on create
This updates the permissions on the automatically generated private
key file to only be readable by the user. Includes support for file
permission modification on Windows platform.
2018-04-10 14:15:14 -07:00
Brian Cain
f1de9821e1
Merge pull request #8099 from chrisroberts/windows/shared-folder-path
Fix virtualbox shared folders path
2018-04-10 09:16:06 -07:00
Chris Roberts
ddfd86f3d1 Split with shellwords and quote paths in command filter
This uses shellwords to split the command in the command filter
inside the winrm communicator. Using shellwords properly handles
things like quoted paths. Path arguments are also quoted to
prevent issues with paths that include spaces.

Fixes #9390
2018-04-09 17:00:30 -07:00
Brian Cain
7fe03988aa
Merge branch 'puppet_structured_facts_toyaml_on_provisioner' of git://github.com/aloyr/vagrant into aloyr-puppet_structured_facts_toyaml_on_provisioner 2018-04-09 11:01:36 -07:00
David Duponchel
d08a472610 Support arrays for data_bags_path in chef-zero
The pull request #6561 added the support for arrays for data_bags_path
in chef-solo and chef-zero, but missed a `.first` in chef-zero (which
only keeps the first data bag path). The documentation and the template
for chef-zero are already good (since #6561).

Fixes #9668.
2018-04-09 17:46:42 +02:00
Chris Roberts
97dd9e0469 Adjust priority of network configuration file for debian guests
This adjusts the priority of the network configuration file from 99
to 50 making it easier for customized configuration.

Fixes #9592
2018-04-02 12:08:06 -07:00
Brian Cain
696ffa4e30
Merge pull request #9528 from artw/master
less specific string grep to fix PhotonOS 2.0 detection
2018-03-22 10:31:29 -07:00
Brian Cain
ab24bd2cf1
Merge pull request #9600 from kinvolk/kosy/coreos
Identify operating systems closely related to CoreOS
2018-03-22 10:11:43 -07:00
Brian Cain
0ce6e9891e
Merge pull request #9572 from jsoref/spelling
Spelling
2018-03-22 09:50:52 -07:00
Kosy Anyanwu
52a8b0c65e Identify operating systems closely related to CoreOS
If the the value of ID= is not recognised, identify the OS if it is a derivative of CoreOS
https://www.freedesktop.org/software/systemd/man/os-release.html#ID_LIKE=
2018-03-20 17:51:20 +01:00
ajpaul
2c9e9e9ab8 reintroduce sleep_timeout for guests that fail the :wait_for_reboot capability check 2018-03-16 13:53:27 -04:00
Adam Paul
2dfe520eb8 add capability test before attemping to use capability 2018-03-15 11:45:42 -04:00
Adam Paul
76551a1692 Fix graceful_halt_timeout issue #8486 2018-03-15 10:38:07 -04:00
Josh Soref
1a5ddea9f4 Spelling fixes
* account
* addresses
* administrator
* afterwards
* because
* bridgeable
* capabilities
* capability
* checksum
* configuration
* configuration for
* configure
* criteria
* delimited
* delivered
* derivatives
* description
* detect
* directory
* display
* downloading
* during
* electric
* enabling
* encountered
* equivalent
* executable
* executed
* hashicorp
* hypervisor
* hyphens
* implementation
* incorporate
* inheritance
* initialize
* instance
* instead
* interactions
* invocable
* machine
* maximum
* message
* mounting
* overridden
* overwrite
* paramiko
* preparing
* provides
* provisioning
* recursively
* requested
* resetting
* retryable
* running
* satisfied
* searching
* sometimes
* specified
* successfully
* synced folders
* unauthorized
* underlying
* userprofile
* vagrant
* vagrantfile
* variable
* various
* version
* virtual
* windows
2018-03-14 14:41:04 +00:00
Chris Roberts
51232f9a03 When matching hostonly adapter name, force common types
Force a string type for comparison to prevent false positives when
the name is unset (resulting in a nil value).
2018-03-09 14:15:31 -08:00
mihab
03178bbe04 Fixes #9085: Cannot up a machine with Docker Toolbox and Git Bash 2018-03-01 21:38:39 +01:00
Art Win
9c93e548af the label changed in 2.0 2018-03-01 13:05:26 +02:00
Brian Cain
ac37b67eca
Merge pull request #9518 from briancain/fix-package-cmd-wsl
Convert to windows path if on WSL during vbox export
2018-02-28 08:07:56 -08:00
Brian Cain
73a5a5a8c9
(#9059) Convert to windows path if on WSL during vbox export
Prior to this commit, the incorrect path was used when determining where
to export an ovf file during the `vagrant package` step. This commit
updates that by checking if vagrant is within WSL, and if so, convert
the path to a proper windows path to be used during the export.

Fixes #9059
2018-02-27 16:02:25 -08:00
Brian Cain
0b92123163
Merge pull request #9507 from briancain/fix-hyper-v-check
Fix Hyper-v and VirtualBox check
2018-02-26 14:54:51 -08:00
Brian Cain
007e6f49aa
Merge pull request #9302 from eyJhb/master
Fixed hostonly matching not respecting :name argument
2018-02-26 14:50:45 -08:00
Brian Cain
f2954a64c6
Fix Hyper-v and VirtualBox check
Prior to this commit, the hyper-v and virtualbox system crash check
existed within the initialize function of the virtualbox provider. That
caused an issue when running with other providers, because the
virtualbox provider still gets initialized even if not used. This commit
changes that by placing the check inside of one of the virtualbox
provider actions that checks if virtualbox is installed and ready to
use. This action is action is used by the main vbox provider actions,
and should not be called when other providers are being used with
Vagrant.
2018-02-23 11:24:30 -08:00
Chris Roberts
a1529d5fbe
Merge pull request #8828 from mkhon/nfsv4-default-tcp
nfs_udp is false by default if using NFS v4
2018-02-23 09:50:49 -08:00
Chris Roberts
fc5ceafbcf Only generate notice once 2018-02-22 14:49:44 -08:00
Chris Roberts
f2bf18e56b Update behavior of the authentication middleware
Always remap old hosts to target host when encountered. When custom
vagrant server is defined, warn when tokens may be attached and allow
time for user to cancel.

Fixes #9442
2018-02-21 17:03:38 -08:00
Brian Cain
b8d8cf7572
Merge pull request #9456 from briancain/exit-if-hyperv-enabled-vbox
Exit if Hyper-V is enabled and VirtualBox provider is used
2018-02-14 08:49:06 -08:00
Brian Cain
279bceffb9
Merge pull request #9398 from drscream/smartos-inheritance-solaris
More explicit Solaris 11 and inherit SmartOS from Solaris
2018-02-12 15:02:30 -08:00
Hannes Körber
3082ea502e
Debian: Point hostname to 127.0.1.1 in /etc/hosts
Closes #9403
2018-02-10 20:54:51 +01:00
Brian Cain
a1932b8d21
Merge pull request #9265 from trombik/atomic_interface_restart
Atomically apply new hostname.if(5)
2018-02-09 14:27:07 -08:00
Brian Cain
84f929df21
Merge pull request #9351 from gclinch/salt-bootstrap-in-tmp
Change to a temporary directory before downloading script files
2018-02-09 11:14:17 -08:00
Brian Cain
e8708232a5
(#9258) Exit if Hyper-V is enabled and VirtualBox provider is used
This commit adds a function on windows for the VirtualBox provider to
check if Hyper-V is enabled. If so, exit and display a warning to the
user that going forward will result in a system crash.
2018-02-08 11:20:41 -08:00
Daniel Hahler
ec99b75c53 squash! salt: bootstrap-salt.sh: use -s with curl
Also use --show-error, and long option for --silent.
2018-02-02 00:39:32 +01:00
Daniel Hahler
6f7c383fe8 salt: bootstrap-salt.sh: use -s with curl
This makes it silent (no progress information), which would otherwise
result in output like the following (when the output from the bootstrap
script is displayed in verbose mode):

      % Total    % Recei
    ved % Xferd  Avera
    ge Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
      0     0
       0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    100  244k  100
     244k    0     0
       458k      0 --:--:-- --:--:-- --:--:--  458k
     *  INFO: Running version: 2017.12.13
     …
2018-02-01 21:27:27 +01:00
Daniel Hahler
496d9b24c1 salt: remove leading space with bootstrap_options 2018-02-01 21:24:15 +01:00
Hannes Körber
3fa3e995a9 Debian: Renew DHCP lease on hostname change 2018-02-01 16:46:23 +01:00
Ryan Walder
db457e6318 Add master_json_config & minion_json_config options to salt provisioner
* Allow use of -j/-J bootstrap options for configuring master/minion
2018-01-31 12:28:36 +00:00
Thomas Merkel
93c571adbf
Be sure solaris11 is Solaris version 11 and no distribution based on (Open)Solaris
`uname -sr` return also 5.11 on OmniOS, SmartOS which is not the same as Oracle Solaris 11.x. SmartOS and OmniOS are inherit from Solaris and not from Solaris 11. For that reason we need a more explicit check that a solaris11 guest is a real Solaris version 11, for that reason the /etc/release file is checked.
2018-01-25 13:28:15 +01:00
Thomas Merkel
21febf6b6a
SmartOS should be an inheritance of solaris
SmartOS is a distribution based on illumos which is the successor of OpenSolaris.
2018-01-25 13:26:18 +01:00
Chris Roberts
780673c6fe Add warning message for VirtualBox shared folders option.
Display warning to user about the VirtualBox SharedFoldersEnableSymlinksCreate
option with link to VirtualBox documentation and instructions on how the
setting can be disabled.
2018-01-20 06:51:59 -08:00
Chris Roberts
f31badebb8
Merge pull request #9380 from chrisroberts/e-checkpoint
Update checkpoint integration
2018-01-19 15:06:28 -08:00
Chris Roberts
55460379f1
Merge pull request #9315 from basvandervlies/ifconfig_obsolete
ifconfig is replaced by ip command suite. So use "ip addr" and failback
2018-01-16 20:12:18 -08:00
Chris Roberts
0bf589861c
Merge pull request #9212 from mahaag/master
Use basename for setting hostname on Suse
2018-01-16 20:08:05 -08:00
Chris Roberts
b5383cffab
Merge pull request #9369 from chrisroberts/e-generic-sensitive
Add Vagrantfile configuration option to register sensitive values
2018-01-16 20:05:37 -08:00
Chris Roberts
a51c6c8479
Merge pull request #9367 from chrisroberts/e-sensitive-prov
Allow hiding environment variable values in shell provisioner
2018-01-16 20:03:00 -08:00
Chris Roberts
933694d986
Merge pull request #9365 from chrisroberts/e-smb-cred-check
Check SMB credentials
2018-01-16 20:00:57 -08:00
Chris Roberts
58f66ac8ce Add full checkpoint integration 2018-01-16 14:16:49 -08:00
Chris Roberts
f2f8bc2db5 Add Vagrantfile configuration option to register sensitive values 2018-01-15 07:23:47 -08:00
Chris Roberts
3664f1a627 Allow hiding environment variable values in shell provisioner 2018-01-12 17:33:47 -08:00
Chris Roberts
b1c38c282e Support SMB mount option overrides 2018-01-12 17:23:00 -08:00
Chris Roberts
5444271268 Move SMB credentials validation into host capability 2018-01-12 16:55:35 -08:00
Lachlan Arthur
01bc2627be Check SMB credentials before using them 2018-01-12 15:46:31 -08:00
Chris Roberts
b0fc6a06a1
Merge pull request #9294 from chrisroberts/e-smb
SMB synced folders enhancements
2018-01-12 15:02:08 -08:00
Chris Roberts
0ffec9cd6f Include explicit start to ensure start 2018-01-12 14:25:37 -08:00
Chris Roberts
15393fb725
Merge pull request #9274 from chrisroberts/f-nfs-naming
Update NFS service name usage for linux hosts
2018-01-12 13:14:07 -08:00
Chris Roberts
53fbf67d9f
Merge pull request #9295 from mcandre/patch-2
recognize solaris alternatives
2018-01-12 13:11:16 -08:00
Chris Roberts
f5888a4200
Merge pull request #9307 from wink-y/amazon-perform
Modify the matching pattern of guest os for amazon linux
2018-01-12 13:08:01 -08:00
Brian Cain
5bf75dcfb3
Merge pull request #9338 from chrisroberts/fix-ubuntu17-networking
Update Debian guest configure networks
2018-01-10 10:11:47 -08:00
Brian Cain
b16ca2e384
Introduce flag for SharedFoldersEnableSymlinksCreate
Prior to this commit, the virtualbox synced folder option
`SharedFoldersEnableSymlinksCreate` was always enabled. This commit
introduces a config option and an environment variable which allows
users to configure the option globally or per synced_folder in their
Vagrantfile.
2018-01-09 14:33:24 -08:00
Graham Clinch
b384361cd2 Use the short flag for better cross-platform support 2018-01-09 17:58:20 +00:00
Graham Clinch
1c2929cd84 Change to a temporary directory before downloading script files, to avoid
leaving junk files in the working directory (probably ~vagrant)
2018-01-09 16:01:50 +00:00
Brian Cain
11ddd0136d
(#9044) Show all box providers in command outdated
Prior to this commit, when the `--global` flag was used with the
`vagrant box outdated` command, it would ignore box providers and not
inform the user of all outdated boxes. This commit fixes that by
displaying each box within the users environment, and includes the
provider of the box in the message.
2018-01-08 09:43:28 -08:00
Bas van der Vlies
de62baed6b as requested change to test to command:which 2018-01-08 08:53:33 +01:00