mitchellh/vagrant — pull request #2483 by andyfowler (2013-11-09 23:53:31+00:00)
Title: Use Retryable for Virtualbox customize & sane_defaults actions

When starting several boxes at once, `VBoxManage modifyvm` gets cranky and throws random lock errors.

This adds the existing Retryable logic to the `customize` and `sane_defaults` actions, both of which fire a bunch of
`modifyvm` commands, all of which are fine to run multiple times.

This changes the VirtualBox driver's `execute_command` to accept a `:retryable => true` option. This also means it will throw `Vagrant::Errors::VBoxManageError` instead of returning the last exit status. I think this is the right behavior, because consumers of the driver shouldn't care about exit status (mostly because `VBoxManage` has inconsistent exit status handling, which should all be managed by the driver). Consumers should only care about failure or success.