Commit Graph

726 Commits

Author SHA1 Message Date
Mitchell Hashimoto 780a312fc9 Built-in DestroyConfirm middleware 2013-04-19 14:14:29 -06:00
Mitchell Hashimoto 0e7a9d3c91 Mount VBox shared folders with proper owner/group [GH-1611] 2013-04-16 17:09:32 -07:00
Mitchell Hashimoto c1f53a4ace ssh-config doesn't raise exception when VB machine not created [GH-1562] 2013-04-09 08:47:52 -07:00
Mitchell Hashimoto a9b2ab33ad Convert network type to symbol so that strings can be used 2013-04-08 10:39:26 -07:00
Mitchell Hashimoto 88b34d3b71 Message on `up` that VM is already running [GH-1558] 2013-04-08 09:09:23 -07:00
Mitchell Hashimoto 142cc4bef7 rtcuseutc as sane default for VBox [GH-912] 2013-04-07 15:04:38 -07:00
Mitchell Hashimoto c34c8b39c3 Expand Cygwin path to Windows for VirtualBox shared folders 2013-04-06 22:08:41 -07:00
Mitchell Hashimoto 373a1d8633 Properly expand cygwin paths to Windows path for vboxmanage 2013-04-06 22:06:33 -07:00
Mitchell Hashimoto 2a542dab02 Switch configure_networks to capabilities system 2013-04-03 23:08:33 -07:00
Mitchell Hashimoto 28d3f274d8 First capability for linux 2013-04-03 23:01:43 -07:00
Mitchell Hashimoto 4ffc2c3b74 Invalid configuration keys are caught and shown in user friendly way
[GH-1484]
2013-04-03 16:18:37 -07:00
Mitchell Hashimoto fc708bc139 Respect :mac option for networks [GH-1536] 2013-04-03 15:41:42 -07:00
Mitchell Hashimoto acd494d148 Get rid of debug exception 2013-04-03 12:50:04 -07:00
Mitchell Hashimoto 36edc4a0fd Re-disable parallel on virtualbox 2013-04-03 08:31:43 -07:00
Mitchell Hashimoto bd60d6b283 Lock around chdir in Subprocess for thread safety 2013-04-03 08:31:43 -07:00
Mitchell Hashimoto c84c609633 Gracefully handle errors in parallel cases 2013-04-03 08:31:43 -07:00
Mitchell Hashimoto 79ba9df881 Respect the "disabled" flag for shared folders for VirtualBox [GH-1004] 2013-04-03 08:31:41 -07:00
Mitchell Hashimoto bc2a9fe780 VBoxManage errors show stderr 2013-03-31 20:45:54 -07:00
Mitchell Hashimoto 0a86deedf1 better comments on the last change 2013-03-29 13:15:11 -07:00
Mitchell Hashimoto 30053638af Human friendly error on exit code 126 from VBoxManage 2013-03-29 13:14:00 -07:00
Mitchell Hashimoto d9c1b4b3fc Default forward port adapter for VirtualBox should be 1 2013-03-25 14:32:15 -07:00
Mitchell Hashimoto 43d85930ed Improve network interface detection to avoid crash [GH-1480] 2013-03-22 10:51:07 -07:00
Mitchell Hashimoto 230a3ca0bf Force to_i on adapters for forwarded ports in VirtualBox 2013-03-22 10:47:25 -07:00
Mitchell Hashimoto a4745fb426 Properly handle forward port collision detection with auto-correct
[GH-1472]
2013-03-21 16:33:06 -07:00
Mitchell Hashimoto df23c2a8fa Move guest addition check to later, after boot [GH-1179] 2013-03-21 13:59:13 -07:00
Jan Schumann d42b7745e4 added dhcp configuration option for private networks 2013-03-20 20:18:32 +01:00
Mitchell Hashimoto c94f61d274 Only prepare NFS settings for VirtualBox if NFS is enabled 2013-03-18 13:21:06 -07:00
Eivind Uggedal c45d3ee728 Fix wrong reference to Errors::NFSNoHostonlyNetwork introduced in 022c1da [GH-1437]. 2013-03-18 14:30:26 +01:00
Mitchell Hashimoto 022c1daec0 Raise error if no hostonly network on VBox with NFS [GH-1437] 2013-03-17 22:33:02 -07:00
Mitchell Hashimoto f03175b4af Don't "return" if FP less than port 1024 [GH-1421] 2013-03-15 15:15:54 -07:00
Mitchell Hashimoto c8b829c4d2 Properly resolve cygwin paths in Cygwin environments [GH-1366] 2013-03-13 21:50:41 -07:00
Mitchell Hashimoto 57a5edbc39 Merge pull request #1366 from johnb0011/master
Solve Virtualbox pathing issue running under Cygwin
2013-03-13 21:41:34 -07:00
Mitchell Hashimoto 7f736f934c Improve VBox kernel module detection for Gentoo [GH-710] 2013-03-13 21:39:05 -07:00
Mitchell Hashimoto 65e3614226 Namespace VBoxManage errors properly 2013-03-06 14:47:28 -08:00
Mitchell Hashimoto 5b18cfae28 Raise properly namespaced errors in VM boot 2013-03-06 14:46:25 -08:00
Mitchell Hashimoto 36b805367d Fix all core code to use the new networking syntax 2013-03-01 16:48:10 -08:00
Mitchell Hashimoto 18492d5d70 Remove VirtualBox Hostname middleware 2013-02-27 21:30:01 -08:00
Mitchell Hashimoto 3c47f4f3bc SetHostname middleware uses hostname 2013-02-27 21:29:33 -08:00
Mitchell Hashimoto c9ad55d9e7 Built-in hostname middleware for setting hostname 2013-02-27 21:28:09 -08:00
Mitchell Hashimoto 21c218e32f Line up equal signs because I'm anal about it 2013-02-27 19:12:45 -08:00
Mitchell Hashimoto 54bcac2e7a Only error if minor or major version of guest additions is different 2013-02-27 19:10:49 -08:00
Mitchell Hashimoto 5d82123da9 VirtualBox should use the new port forwarding collision detection stuff 2013-02-26 13:38:00 -08:00
Mitchell Hashimoto 082cc7f92d Retry setting default name for VirtualBox VM [GH-1368] 2013-02-23 11:52:29 -08:00
John Barney a390b9dddf Removing tabs added by a bad .vimrc 2013-02-10 03:49:15 -08:00
John Barney 416a765417 Removing extra file 2013-02-10 01:43:49 -08:00
John Barney 52156d7c06 Solved bug with spaces in paths causing errors 2013-02-10 01:41:15 -08:00
John Barney e0949085a0 No longer need VBoxmanage.exe to be in PATH in Cygwin. 2013-02-10 01:40:59 -08:00
John Barney cea8c5dafd Whitespace issue fixed 2013-02-09 19:42:04 -08:00
John Barney 73eb86bad0 Adding Cygwin detection, and fixing pathing issue in VirtualBox driver under Cygwin 2013-02-09 19:36:56 -08:00
Mitchell Hashimoto 6afb4326fa Move NFS to a built-in middleware 2013-02-08 15:34:04 -08:00
Mitchell Hashimoto a76556f3eb Fix missing translation error in set_name 2013-02-08 15:17:50 -08:00
Mitchell Hashimoto 387692f9c8 Enable symlinks on vboxsf for VirtualBox 4.2 [GH-713] 2013-02-06 11:51:59 -08:00
Mitchell Hashimoto 165dd63f78 New HandleBoxUrl built-in middleware to handlet the "box_url" config 2013-02-01 11:31:08 -08:00
Mitchell Hashimoto 6d002eb4c1 Fix a little logging typo 2013-02-01 10:51:53 -08:00
Mitchell Hashimoto ab4046d8af Fix issue where set name doesn't work if saved 2013-01-31 11:26:45 -08:00
Mitchell Hashimoto 1392d9b4a5 Detect if a VM name is already taken for VirtualBox 2013-01-30 23:22:45 -08:00
Mitchell Hashimoto 4fa194899d VirtualBox config: "name" to set the VM name [GH-1126] 2013-01-30 23:03:21 -08:00
Mitchell Hashimoto 9d2f26604e Properly handle paused VirtualBox VMs [GH-1184] 2013-01-30 22:47:45 -08:00
Mitchell Hashimoto 76ca35a095 Sanitize folder names for default virtualbox name [GH-1223] 2013-01-30 22:17:10 -08:00
Mitchell Hashimoto f713082280 auto_nat_dns_proxy VirtualBox provider config option [GH-1313]
When set to false, Vagrant will no longer try to automatically manage
NAT DNS proxy settings with VirtualBox.
2013-01-30 21:03:02 -08:00
Mitchell Hashimoto f9a843ddd0 Fix hostonly network adapter IP for VirtualBox 2013-01-30 10:52:49 -08:00
Mitchell Hashimoto d26aea142e NFS properly detects hostonly network for VirtualBox 2013-01-30 10:43:53 -08:00
Mitchell Hashimoto 7eec127704 Support refreshing the machine cache 2013-01-30 10:37:40 -08:00
Mitchell Hashimoto 64042a5d35 Downloading the box_url component works again 2013-01-30 10:24:47 -08:00
Mitchell Hashimoto ca0af2866e Change output to not include the name 2013-01-23 09:45:56 -08:00
Mitchell Hashimoto 9cb86706b8 Make all the VirtualBox middleware aware of synced folders 2013-01-23 09:42:19 -08:00
Mitchell Hashimoto 7c8125905d Set the proper force halt environment 2013-01-22 13:37:44 -08:00
Mitchell Hashimoto 4780f1c07f Use the proper env for branching on Halt in VirtualBox 2013-01-22 13:35:52 -08:00
Mitchell Hashimoto 31448c4cd4 Use the new GracefulHalt built-in for VirtualBox 2013-01-22 12:07:37 -08:00
Mitchell Hashimoto d5c5c4f523 Convert all VirtualBox provider internals to use new state API 2013-01-21 11:38:37 -06:00
Mitchell Hashimoto 8c4a7350fe vagrant status uses new MachineState results 2013-01-21 11:35:46 -06:00
Mitchell Hashimoto f24dba0dc5 VirtualBox provider returns new MachineState object 2013-01-21 11:34:04 -06:00
Mitchell Hashimoto 003ebc811c VirtualBox uses the new validation middleware 2013-01-18 13:29:20 -08:00
Mitchell Hashimoto 7f55d5eac8 Builtin: ConfigValidate will validate your configuration 2013-01-18 13:26:14 -08:00
Mitchell Hashimoto 5c9f27626c Provisioner built-in uses new API 2013-01-13 16:09:32 -08:00
Mitchell Hashimoto 84c45a854c Remove the ProvisionerCLeanup action from VirtualBox 2013-01-13 16:03:34 -08:00
Mitchell Hashimoto f1f4f276a0 Set the virtualbox config scope 2013-01-13 12:38:51 -08:00
Mitchell Hashimoto 212e634c3b Make Provision a built-in action.
This allows other providers to just use it.
2013-01-12 16:22:37 -08:00
Mitchell Hashimoto 48eaa93745 Raise proper error if there aren't any NIC slots available 2013-01-11 15:57:08 -08:00
Mitchell Hashimoto 7cd663391e Forwarded ports allow for scoped hash overrides 2013-01-11 15:52:45 -08:00
Mitchell Hashimoto 102e8f23d6 Use scoped hash overrides for high-level config 2013-01-11 15:50:09 -08:00
Mitchell Hashimoto ccc4da0d32 Remove the old networking code 2013-01-11 15:23:20 -08:00
Mitchell Hashimoto 48995f6036 Support mac address and nic_type for host only networks 2013-01-11 15:22:55 -08:00
Mitchell Hashimoto d09dc91d1b Add support for bridged networks again 2013-01-11 15:21:09 -08:00
Mitchell Hashimoto 37e158c9b2 Configure networks on the VM 2013-01-11 15:06:38 -08:00
Mitchell Hashimoto da7f227fff Forwarded ports use the new high-level configuration 2013-01-11 14:51:49 -08:00
Mitchell Hashimoto 7e5f175d2c Check port collisions now uses the new high-level networking 2013-01-11 14:44:27 -08:00
Mitchell Hashimoto 2d8f9baf7f New Network VirtualBox middleware to handle the changes.
Note this is a WIP (hence committed on a branch)
2013-01-11 14:16:00 -08:00
Mitchell Hashimoto 7a9363e8a1 Fix ordering of forwarded_port call 2013-01-04 16:35:13 -10:00
Mitchell Hashimoto 559cf25b5f Temporarily disable Network action while it is broken 2013-01-04 16:25:20 -10:00
Mitchell Hashimoto 2d3c0b7148 VirtualBox forwarding port uses new `network` calls 2013-01-04 16:22:38 -10:00
Mitchell Hashimoto 640b296f5a Explicitly set error handling for port collision on resume 2013-01-04 16:11:40 -10:00
Mitchell Hashimoto be36c702d6 Booting new VirtualBox VM should check for port collisions 2013-01-04 16:08:37 -10:00
Mitchell Hashimoto e955596939 Set a default for the "gui" option for VirtualBox 2012-12-25 09:18:47 -08:00
Mitchell Hashimoto 54a2f6b89e Change boot_mode to a provider config `gui`.
OLD:

config.vm.boot_mode = :gui

NEW:

config.vm.provider :virtualbox do |vb|
  vb.gui = true
end
2012-12-25 09:00:06 -08:00
Mitchell Hashimoto 6478139cee Move config.vm.customize to VirtualBox specific option 2012-12-23 16:29:25 -08:00
Mitchell Hashimoto 66849fda20 When recovering on import and destroying, force it 2012-12-23 16:29:25 -08:00
Mitchell Hashimoto b9f6afd2a0 Scrub LD_LIBRARY_PATH prior to executing VBoxManage 2012-12-16 10:37:43 -08:00
Mitchell Hashimoto 42f157143f Forward-port fix for OS X and VirtualBox bug from 1-0-stable 2012-11-20 11:00:19 -08:00
Mitchell Hashimoto 81ca275792 Providers to V2 2012-11-06 21:20:55 -08:00
Mitchell Hashimoto 3c0341b7be Disable DNS proxy for 12.10 too 2012-10-12 20:03:25 -07:00
Paul Visscher f36ab8a165 Fixes a bug with DNS resolution in Ubuntu 12.10. 2012-10-08 22:12:41 -04:00
Mitchell Hashimoto 678c6a070d VirtualBox 4.2 support 2012-09-13 19:11:32 -07:00
Mitchell Hashimoto 391dc39267 Merge branch 'machine-abstraction'
This branch brings in the "machine abstraction" code. This is a major
milestone in the development of Vagrant as it abstracts all of the
VirtualBox-specific code out into a plugin. There is zero VirtualBox
specific code in the core ("lib/") directory at this point. Read on for
important points.

== Gotchas

White it is technically possible now to write plugins for other
providers, there is still major work to be done to make this feasible.
The plugin interface itself is pretty much done, but there are some
issues:

* ":virtualbox" is the hardcoded provider to be used at the moment.

* There is no way to configure a provider. For example,
  `config.vm.customize` would never work for anything other than
  VirtualBox, so there needs to be a way to have provider-specific
  configuration. This will come soon.

* Shared folders and networking need to be rearchitected to be friendly
  for multiple providers, since it is unrealistic that a provider such as
  EC2 could provide the same level of networking, for example.

* There is no way easy way (like `vagrant package --base`) to create
  boxes for providers other than VirtualBox. This will be addressed in a
  whole new feature of Vagrant probably in a future release after
  provider stuff has shipped.

== Writing a Provider

To write a provider, you create a Vagrant plugin that defines a
"provider". See the "plugins/providers/virtualbox/plugin.rb" for more
details. Providers themselves have an exremely simple API. The burden
for writing providers mostly rests on the fact that you must define
complex middleware sequences.

Lots more work to come in the future, but this is a BIG MILESTONE!
2012-08-19 19:27:09 -07:00
Mitchell Hashimoto 85a4fb82a8 `vagrant package` a single VM works! 2012-08-15 21:04:37 -07:00
Mitchell Hashimoto b659191a02 `vagrant up`! 2012-08-14 22:38:41 -07:00
Mitchell Hashimoto aaeb060f33 `vagrant provision` 2012-08-14 21:21:31 -07:00
Mitchell Hashimoto 7aa083d259 `vagrant reload` now works with the new machine abstraction 2012-08-14 21:12:41 -07:00
Mitchell Hashimoto 85a499ffb8 Properly handle the case that VM doesn't exist for the VB driver. 2012-08-14 20:27:28 -07:00
Mitchell Hashimoto 0cc63c05e2 `vagrant destroy` fully works 2012-08-13 23:31:12 -07:00
Mitchell Hashimoto 2fc18f7207 `destroy` gets a little farther, and properly halts the VM 2012-08-13 23:18:50 -07:00
Mitchell Hashimoto bca8663742 `vagrant resume` works with the new machine abstraction 2012-08-13 20:03:35 -07:00
Mitchell Hashimoto 83b908f3d8 `vagrant suspend` works with new machine abstraction 2012-08-13 19:30:41 -07:00
Mitchell Hashimoto 0eddda3552 Halt works with new machine.
This required some modifications to the linux guest implementation. And
the other guests will have to be modified as well. This is because
`channel` is now `communicate`.
2012-08-12 18:54:52 -07:00
Mitchell Hashimoto f9752d78d8 Properly resolve and load the guest class impl for Machines 2012-08-12 18:35:19 -07:00
Mitchell Hashimoto 5e70ad0ec2 `vagrant ssh -c` now uses a middleware sequence 2012-08-10 00:57:23 -07:00
Mitchell Hashimoto e0ec679838 `vagrant ssh` with full console works with new provider.
This works by now calling the `:ssh` action on the provider. This action
is allowed to do whatever it pleases, but should at some point probably
call the `SSHExec` built-in middleware.

The `SSHExec` built-in middleware was added. This uses the information
returned by `Machine#ssh_info` and uses the `Vagrant::Util::SSH` helper
to exec into the remote machine. The provider should do any work upfront
in verifying that the machine is ready to be SSHed into.
2012-08-05 13:45:24 -07:00
Mitchell Hashimoto 9db982f7a4 Expose the provider via the machine object. 2012-08-04 11:16:31 -07:00
Mitchell Hashimoto 1e997f87d7 Clean up the actions a bit, move logic into actual middleware.
This is a good idea because in the future it will allow plugins to
properly override these behaviors.
2012-07-28 19:58:10 -07:00
Mitchell Hashimoto 31a3a3f2e2 Start moving the halt commands over to the new provider interface 2012-07-28 10:43:16 -07:00
Mitchell Hashimoto e5f250121a Call now only yields the environment 2012-07-27 19:34:46 -07:00
Mitchell Hashimoto 118377e6f0 Destroy sequence asks the user for confirmation. 2012-07-27 19:29:40 -07:00
Mitchell Hashimoto 90517a0f9b The `Call` built-in middleware allows for conditional MW sequences.
Read the documentation for more information.
2012-07-26 23:56:47 -07:00
Mitchell Hashimoto 5eed3b8417 Building up the `destroy` action again using new provider API.
This shows me moving the built-in middleware sequences to the provider
and how I'm organizing all that.
2012-07-26 22:39:27 -07:00
Mitchell Hashimoto 44b4b9dfef Move drivers to the VirtualBox plugin. Use Machine class.
This starts the transition of replacing VM with Machine. Machine still
isn't ready to fully replace VM but by moving it now, I'm able to find
the spots that need to be fixed. At this point `vagrant status` works
with the new provider interface.
2012-07-24 21:32:38 -07:00
Mitchell Hashimoto 3519bf0372 Add the "provider" API to the V1 plugin. 2012-07-15 11:17:58 -07:00