90 Commits

Author SHA1 Message Date
Mitchell Hashimoto
4d7d47086f core: configure version can be an int [GH-2689] 2013-12-19 08:03:15 -08:00
Mitchell Hashimoto
8e5b52c00c Get rid of unused autoload 2013-04-10 10:49:10 -07:00
Mitchell Hashimoto
98a23be689 Get rid of unused class 2013-04-10 10:48:56 -07:00
Mitchell Hashimoto
37e36010e0 Remove the ErrorRecorder 2013-01-18 13:15:22 -08:00
Mitchell Hashimoto
be294e002a Build the v2 interface, which is just a copy of V1 for now. 2012-11-06 20:51:03 -08:00
Mitchell Hashimoto
0ca783e8d1 V1 config loader loads upgradable config if not V1
This is to prepare for the upcoming V2 configuration. When we're in V2,
we only want to load _upgradable_ configuration keys.
2012-11-03 21:54:32 -07:00
Mitchell Hashimoto
798704c6d2 Move the loader into the Config::V1 namespace. 2012-06-26 15:06:03 -07:00
Mitchell Hashimoto
3204b3a580 Vagrant.configure and versioned configuration
Vagrant.configure is now how configuration is done in Vagrantfiles
(previously it was Vagrant::Config.run). This function takes a single
argument which is the version of configuration to use.

Various internals were updated for this new versioned configuration.

Note that multiple versions of configuration aren't yet used so aren't
fully supported by Vagrant, but the foundation is being set here.
2012-05-21 21:47:01 -07:00
Mitchell Hashimoto
95e554314e Foundation for supporting multiple version types
I created VersionBase which is the abstract base class for any
configuration versions. Configuration versions are responsible for
knowing how to load configuration given a proc (from a
Vagrant.configure block), as well as merging configuration procs. In the
future, it will have to upgrade versions as well. This is not done yet.

The VERSIONS constant was added to Vagrant::Config which is a registry
to keep track of all the available configuration versions. The
VERSIONS_ORDER constant is an array of the ordering of these versions.
The ordering is important so that in the future Vagrant can attempt to
gracefully upgrade the configurations. It is also used to determine the
current configuration version (which is assumed to be the last version
in the order).

The loader was modified to use the current version and the VERSIONS
registry instead of hardcoding V1.
2012-05-20 17:47:24 -07:00
Mitchell Hashimoto
a23fee4848 Remove old configuration classes 2012-04-18 17:16:03 -07:00
Mitchell Hashimoto
92ee042fc2 V1 config loading using plugins as a source for config keys 2012-04-16 22:26:38 -07:00
Mitchell Hashimoto
eda286b476 Config classes are registered via a registry now 2011-12-15 20:32:33 -08:00
Mitchell Hashimoto
15c56a1f4c Configuration loads. Lots of refactor to do still. 2011-12-03 17:29:28 -08:00
Mitchell Hashimoto
1a8c4199b2 Introduce Config::Loader
Config::Loader will be the new class responsible for loading configuration
and replaces the previous dual-role "Vagrant::Config" played. While this
commit is very early-stage, once this new architecture is flushed out, it
will make loading, using, and extending configuration much easier and cleaner.

Additionally, I believe this will help post Vagrant 1.0 if multi-language
configuration is implemented.
2011-12-03 17:12:48 -08:00
Mitchell Hashimoto
8d529931ef Be gone glob loader! Move everything to autoload or explicit require. 2011-01-07 01:12:16 -08:00
Mitchell Hashimoto
a5d8193982 Allow multiple Vagrant::Config.run in a single Vagrantfile again 2011-01-06 19:05:31 -08:00
Mitchell Hashimoto
b8c84b67b7 Vagrantfiles are loaded only once, instead of 4+ times [closes GH-238] 2011-01-06 19:00:29 -08:00
Mitchell Hashimoto
e258395346 Rewrite of Vagrant::Config, on the path to fix bug with multiple loading Vagrantfiles 2011-01-06 18:35:58 -08:00
Mitchell Hashimoto
7c7f5d48fe Don't need to call ".new" on raising exceptions 2010-12-21 20:04:21 -08:00
Mitchell Hashimoto
6337cefb8b Disable Vagrantfile validation completely on load. see coming commits... 2010-10-12 21:08:33 -07:00
Mitchell Hashimoto
f90016bb6f Only validate on the second-pass of loading configuration 2010-10-08 10:52:34 -07:00
Mitchell Hashimoto
ba9cb19808 Configuration only validates on final Vagrantfile proc, allowing multi-VM to work correctly 2010-10-08 09:44:17 -07:00
Mitchell Hashimoto
588ead6e45 Top config class is now available in all Vagrant::Config::Base subclasses. Useful for validation. 2010-09-30 00:50:50 -07:00
Mitchell Hashimoto
1199c89a4a Fix issues with Ruby 1.8.7 where Vagrant wouldn't even run 2010-09-27 12:10:17 -07:00
Mitchell Hashimoto
c8d7e6601d YARD and some documentation 2010-09-22 09:43:30 -06:00
Mitchell Hashimoto
86465a36c0 Change method by which configuration classes register themselves to be cleaner 2010-09-11 09:02:55 -07:00
Mitchell Hashimoto
9cc64fcb34 Configuration classes can now be validated. Nice error message shown in case of failure. 2010-09-05 11:02:48 -07:00
Mitchell Hashimoto
ad5ecf1c7f Remove unused code in Config 2010-09-05 10:18:05 -07:00
Mitchell Hashimoto
ce9ff73ea4 Show proper syntax error for Vagrantfiles [closes GH-155] 2010-09-04 14:33:53 -07:00
Mitchell Hashimoto
f85579a4de Give a nice error message if there is a syntax error in Vagrantfile [closes GH-154] 2010-09-03 14:23:47 -07:00
Mitchell Hashimoto
b8a4188fa3 Config class is now responsible for loading configuration. Cleans up environment. 2010-09-03 11:16:38 -07:00
Mitchell Hashimoto
d2d2404961 Split config classes out into multiple files for better organization 2010-09-01 20:37:11 -07:00
Mitchell Hashimoto
21e4477c39 Rip out unison syncing. It never got to see the light of day. Just didn't work out. (NFS replaced it) 2010-08-27 23:31:38 -07:00
Mitchell Hashimoto
aaac5fbf1e Get rid of all Ruby warnings in Vagrant 2010-08-25 23:21:23 -07:00
Mitchell Hashimoto
1cbc60de1c Remove config.package.extension option. Use config.package.name instead. 2010-07-24 09:24:43 -07:00
Vitor Pellegrino
aa32d594ca Adding box_url as a possible option at vagrantfile 2010-07-23 21:41:35 -07:00
Mitchell Hashimoto
aee49a61ab Add Config::Top#deep_clone method to deep clone Vagrant configuration. 2010-07-17 00:02:13 -07:00
Mitchell Hashimoto
46c462d322 NFS options to configure mapall UID/GID. Vagrant can also detect this automatically (default) 2010-07-15 23:02:31 -07:00
Mitchell Hashimoto
e2badeb9e1 Concepts of "Hosts" introduced, preparing for host-specific behavior. 2010-07-10 22:07:10 -07:00
Mitchell Hashimoto
c82308f8da config.ssh.forward_agent option added [closes GH-105] 2010-07-08 22:38:14 -07:00
Mitchell Hashimoto
97f82d7140 Better, more unified logging for unison 2010-06-22 23:33:20 -07:00
Mitchell Hashimoto
5f0695f776 Setup new unison scripts and set configs. 2010-06-20 01:42:31 -07:00
Mitchell Hashimoto
b0879dea6a Rethinking Unison foundation. Tearing things out. 2010-06-19 11:34:37 -07:00
John Bender
eec0986bc7 switched directory syncing over to unison 2010-06-05 00:39:25 -07:00
Mitchell Hashimoto
7b6523371c No more config.vm.project_directory. The "v-root" shared folder is now a regular shraed folder like everything else. 2010-06-03 22:19:42 -07:00
Mitchell Hashimoto
7a093340bf VM definition blocks are now stackable. [closes GH-94] 2010-06-03 19:20:15 -07:00
Mitchell Hashimoto
4e806ae325 A VM can now have a host only network on multiple adapters 2010-06-03 11:50:29 -07:00
Mitchell Hashimoto
d16efa1a34 Join a specific host only network if name is specified. 2010-06-03 00:17:04 -07:00
Mitchell Hashimoto
77f7b09a26 Host only networks. Doesn't yet set them up within the OS but creates them on the guest. 2010-06-02 23:52:15 -07:00
Mitchell Hashimoto
687b925d2e Concept of a 'primary' VM in a multi-VM environment added. This VM will be the default for actions in a multi-VM environment. 2010-05-27 22:54:11 -07:00