4604 Commits

Author SHA1 Message Date
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