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.
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.
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.
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.
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`.