vagrant-list
What does it do?
vagrant-list
adds a command to the Vagrant CLI to list both all VMs known to VirtualBox, as well as any that are running. It's handy for seeing what all your VMs are up to.
How do I install it?
Using bundler?
Just add gem 'vagrant-list'
to your Gemfile
Not using bundler?
Untested, but just running gem install vagrant-list
should have the same effect.
How do I use it?
From the CLI
vagrant-list
adds just one command to vagrant - list
.
For example, this following command will list the VMs:
bundle exec vagrant list
will output:
[vagrant] ALL:
[vagrant] 35279736-412a-47b0-aa09-b1aef373a9c7: IE7 (Windows Vista)
[vagrant] ebb807dd-64d6-4a17-87f8-1d6d80a3f467: IE8 (Windows 7)
[vagrant] 4db11a4d-0a97-48c4-8b23-9cb2ca4fcb93: IE9 (Windows 7)
[vagrant] 508bf5cd-dcce-48f6-b19d-287fba4306d6: Windows XP (Windows XP)
[vagrant] 729322cf-e11d-438c-b9dc-6b1d31e9a56d: Python Development (Windows XP)
[vagrant] RUNNING:
[vagrant] ebb807dd-64d6-4a17-87f8-1d6d80a3f467: IE8 (Windows 7)
From your own code
vagrant-list
handily extends the driver for VirtualBox 4.1 to query both running and all VMs (previous to this you could only query all). If you'd like to use this feature in your code, you should just be able to add the gem to your Gemfile
, and then run:
Vagrant::Driver::VirtualBox.new(nil).read_vms(:vms)
to show all VMs (default), or Vagrant::Driver::VirtualBox.new(nil).read_vms(:runningvms)
to show running VMs.
Running Tests
The code has exactly three specs that check:
- That the overridden driver method lists a known VM
- That the overridden driver method does not list an unknown VM
- That the overridden driver method lists a running VM
Unfortunately, because we are almost directly interacting with the VirtualBox command line tools, there is little opportunity for mocking or stubbing virtual machines.
Therefore, in order for the specs to pass, it is required that you have a VM called 'Test' running when the specs are run. It doesn't matter what this VM is (XP, Ubuntu etc.), just as long as it's there
License
This open source software is licensed under the MIT License.
** If this project has been useful to you, I ask that you consider a donation to an open source project in need - check out my donations page at http://joshmcarthur.com/donations for projects that I've donated to for inspiration.**