188 Commits

Author SHA1 Message Date
Mitchell Hashimoto
9bc1ea5f04 Use config finalize to move some version-specific logic to the version
This moves out the concept of a "default VM" from the Environment class
and makes it the responsibility of the V1 configuration that at least
one VM is defined on it. This lets the configuration ultimately decide
what a "default" implementation is.
2012-06-23 12:48:53 -07:00
Mitchell Hashimoto
7e19d6849b Config loader no longer assumes latest version for procs.
Previously, all procs were assumed to just be the current version. This
is certainly not going to be true always so now the version number of
the configuration must be explicit if you're assigning a proc to the
configuration loader.
2012-06-23 12:06:54 -07:00
Mitchell Hashimoto
b3db82e516 Separate out the versions the config loader knows as init params.
This means that the Config::Loader now only knows how to load
configuration for versions used to initialize the class. This lets
things like the tests be completely isolated from what the actual
configuration is for Vagrant. This will be immensely useful to verify
that the loader functionality works for non-trivial bits (like
upgrading) without depending on Vagrant's upgrading functionality.
2012-06-23 11:33:53 -07:00
Mitchell Hashimoto
51be92eeb6 Remove dependence on V1 Kernel from Environment 2012-06-14 18:46:48 -07:00
Matt Robenolt
db76b42ef5 Allow the .vagrant dotfile to be moved into a completely different directory tree
I wanted to define my dotfile as: `config.vagrant.dotfile_name =
"~/.vagrant-projectname"` and noticed that the full path wasn't
expanded as expected.

This patch allows the vagrant file to be placed anywhere on the
filesystem.
2012-06-09 22:56:54 -07:00
Mitchell Hashimoto
de78a3637a Plugin activation
Vagrant is only guaranteeing that the plugin definition superclass (the
Vagrant.plugin("1") part) is backwards compatible. Anything else, such
as Vagrant::Command::Base and so on, will likely change in future
versions. Beacuse of this, plugins should only immediately expose their
definition.

In order to support loading the other classes, plugins should defer
loading to the "activation" phase of a plugin. This can be done using
the `activated` block:

    class MyPlugin < Vagrant.plugin("1")
      name "my plugin"

      activated do
        require "myplugin/my_command"
      end

      command("foo") { MyCommand }
    end

Plugin activation is done at two specific times:

  * Right when a Vagrant::Environment is created and the global plugins
    (such as from ~.vagrantrc) are loaded.
  * Right before loading configuration, but after the Vagrantfiles have
    been evaluated. This allows plugins to be defined within these files
    as well.
2012-05-21 22:23:50 -07:00
Mitchell Hashimoto
d230f0a41c Environment.rb doesn't need to load in "rubygems" anymore 2012-05-06 13:49:22 -07:00
Mitchell Hashimoto
de92f5217c Use load for the Vagrantrc, make sure it is only loaded once 2012-05-06 10:09:33 -07:00
Mitchell Hashimoto
462136cbf2 Use the .vagrantrc for plugins! 2012-05-05 13:08:07 -07:00
Mitchell Hashimoto
d9034da8a4 Remove gem-based plugin loading 2012-05-05 12:57:31 -07:00
Mitchell Hashimoto
cae80a7716 Make Vagrant::Plugin a module 2012-04-19 21:42:35 -07:00
Mitchell Hashimoto
661f20bb91 Move hosts to a plugin system 2012-04-18 22:20:45 -07:00
Mitchell Hashimoto
a23fee4848 Remove old configuration classes 2012-04-18 17:16:03 -07:00
Mitchell Hashimoto
f8fa859b5f Raise an error if the CWD is incorrect 2012-03-08 16:57:17 -08:00
Mitchell Hashimoto
6969f791ad VAGRANT_CWD can be set to set the CWD of vagrant. 2012-03-08 16:45:19 -08:00
Mitchell Hashimoto
ce00a56ecb Even with a custom vagrantfile name, use defaults [GH-778] 2012-03-08 13:24:04 -08:00
Mitchell Hashimoto
700938b668 Load rubygems in environment.rb [GH-781] 2012-03-07 22:15:45 -08:00
Mitchell Hashimoto
2c823e98bd Fix crashing bug with primary_vm on Environment 2012-02-24 10:27:34 -08:00
Mitchell Hashimoto
13fddfa6f9 Load plugins with the private gem path.
This changed plugin loading semantics a tiny bit, since they are
no longer loaded when Vagrant is loaded but instead when the
Vagrant::Environment is initialized. I'll note this in the CHANGELOG.
2012-02-06 22:39:35 -05:00
Mitchell Hashimoto
d19f7a44e5 Starting on the vagrant gem command. 2012-02-06 22:16:37 -05:00
Mitchell Hashimoto
88ba3a3619 Change middleware internals to make plugin lives easier [GH-684] 2012-01-28 17:31:50 -08:00
Mitchell Hashimoto
6d212efdbd Fix ppk path by just... not using ppk anymore. [GH-634] 2012-01-12 18:03:35 -08:00
Mitchell Hashimoto
ef37f692bd Revert the check for duplicate Vagrantfiles.
This is just tricky with case sensitive/insensitive file systems.
Reverting since it doesn't seem worth it.
2012-01-08 23:15:18 -08:00
Mitchell Hashimoto
4f30a834d0 Tests for multivagrantfile being found 2012-01-08 23:04:23 -08:00
Mitchell Hashimoto
8c00d1d652 Raise an error if multiple matching Vagrantfiles are found [GH-588] 2012-01-08 11:54:32 -08:00
Mitchell Hashimoto
75539c2abe Default host class is the base class 2012-01-07 13:13:17 -08:00
Mitchell Hashimoto
0887a18079 Make some fixes to get tests passing on Ruby 1.8.7 2011-12-26 17:45:55 -08:00
Mitchell Hashimoto
2de7a1424d Load VirtualBox VM in the VM class 2011-12-20 21:20:45 -08:00
Mitchell Hashimoto
9debf5abe9 Attach a driver to each VM. Use that to detect VirtualBox. 2011-12-20 21:20:45 -08:00
Mitchell Hashimoto
c2e3a3050a Ruby 1.8.7 compatibility 2011-12-17 20:22:46 -08:00
Mitchell Hashimoto
43cadfe830 vagrant up 2011-12-17 09:14:05 -08:00
Mitchell Hashimoto
27491b554c Remove thor from requirements. Start revamping Vagrant::CLI 2011-12-16 23:34:30 -08:00
Mitchell Hashimoto
fd9b752938 Make host class available to all actions 2011-12-11 23:27:53 -08:00
Mitchell Hashimoto
668bab0ba9 Better host loading scheme 2011-12-11 23:22:44 -08:00
Mitchell Hashimoto
e201d9cacf Rename action registry to just Vagrant::Registry 2011-12-11 18:22:06 -08:00
Mitchell Hashimoto
05ae297fd2 Copy insecure private key to user owned directory [GH-580] 2011-12-11 16:32:25 -08:00
Mitchell Hashimoto
5762775998 Reorganize little methods and remove unused methods 2011-12-10 20:22:44 -08:00
Mitchell Hashimoto
4006befe7f Trivial whitespace change 2011-12-10 20:20:01 -08:00
Mitchell Hashimoto
069a1c1348 Try to actually create directory before showing home directory error 2011-12-10 17:37:18 -08:00
Mitchell Hashimoto
d9e2c8b788 Raise a nice error if home directory is not accessible 2011-12-10 17:14:07 -08:00
Mitchell Hashimoto
d05c6f9d61 Get regression working again 2011-12-10 16:38:01 -08:00
Mitchell Hashimoto
baba6af4ff Resource prefixes in UI output work 2011-12-10 16:17:09 -08:00
Mitchell Hashimoto
40b9254d5a Environment reloading works 2011-12-10 16:07:28 -08:00
Mitchell Hashimoto
2a7f0d8a85 Return nil if no root path to determine dotfile 2011-12-10 13:56:34 -08:00
Mitchell Hashimoto
2f85fe1d4f Return proper dotfile path 2011-12-10 13:02:00 -08:00
Mitchell Hashimoto
bfd93eef4e Come a lot farther in getting up to work again 2011-12-10 09:54:23 -08:00
Mitchell Hashimoto
1758970a53 Fixing up VM actions to try to get them working again 2011-12-09 20:39:08 -08:00
Mitchell Hashimoto
739d5ffb5f Lazy load attributes for runners. Get box repackage working. 2011-12-09 20:24:34 -08:00
Mitchell Hashimoto
f261c0571f Modify box download action to work with new runnerx 2011-12-09 14:55:24 -08:00
Mitchell Hashimoto
3c8261f4ac Add :ui to the globals for the action runner 2011-12-09 14:50:42 -08:00