Commit Graph

1950 Commits

Author SHA1 Message Date
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 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 0f85cb7b74 Log the guest class chosen 2012-05-19 09:32:43 -07:00
Josh Mahowald 174df1edf0 Setting up hostname before setting up the network to minimize issues as described in http://serverfault.com/questions/38114/why-does-sudo-command-take-long-to-execute 2012-05-19 09:17:44 -07:00
Mitchell Hashimoto 73c8299ecd Merge pull request #868 from justinlynn/add_dhcp_default_route_option
Issue #862: Allow bridged networking without removing the interface's DHCP assigned default route
2012-05-06 14:46:58 -07:00
Mitchell Hashimoto 8c6f3edf2d Single-VM mode still allows target name in vagrant commands 2012-05-06 14:33:47 -07:00
Mitchell Hashimoto bc0643613a Vagrant.require_plugin [GH-916] 2012-05-06 14:01:10 -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 0d6248394c Tests for the Easy command base 2012-05-06 10:01:50 -07:00
Mitchell Hashimoto dc4f6e1939 Allow creating multiple easy commands 2012-05-06 09:54:23 -07:00
Ryan LeCompte 2355a4b9a6 fix support for multiple unique easy commands 2012-05-06 01:47:43 -07:00
Mitchell Hashimoto b7854c1ef6 Easy hooks 2012-05-05 22:31:21 -07:00
Mitchell Hashimoto 31ac7271aa Rename EasyCommand namespace to Easy 2012-05-05 22:16:13 -07:00
Mitchell Hashimoto 3d147f1d96 Raise exception if the insert_before middleware is not found 2012-05-05 22:10:26 -07:00
Mitchell Hashimoto 879f98b5d5 Action builder supports indexing middlewares by name 2012-05-05 22:01:53 -07:00
Mitchell Hashimoto c2649074c3 Test command name validation and fix up some bugs 2012-05-05 20:11:26 -07:00
Mitchell Hashimoto e4fa5bb489 Validate that commands only contain proper characters 2012-05-05 20:01:14 -07:00
Mitchell Hashimoto 64ece507ad `download` operation 2012-05-05 19:52:10 -07:00
Mitchell Hashimoto f8ab516082 `upload` operation for easy commands 2012-05-05 19:44:52 -07:00
Mitchell Hashimoto 1d7e02cd63 Build up some operations that can be run.
These are heavily inspired by Fabric! Thanks!
2012-05-05 19:28:50 -07:00
Mitchell Hashimoto 00aba5ac03 Plugin easy commands.
Easy commands are well... easy! They don't offer the full power of
creating a completely custom command class, but they let you do the
basics (what almost everyone needs) with minimal fuss. Example:

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

  easy_command "foo" do |action|
    puts "HELLO!"
  end
end

NOTE: The "action" stuff isn't done yet, but will be soon!
2012-05-05 18:57:29 -07:00
Mitchell Hashimoto 8850c086b1 Plugins can now have action_hooks 2012-05-05 18:28:07 -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 3b7030ed2c Merge pull request #905 from LarsFronius/master
Fix for issue #898 - interfaces assigned in wrong order under ruby1.8
2012-05-04 20:52:04 -07:00
Mitchell Hashimoto 359ea23069 Support multiple paths in VBOX_INSTALL_PATH [GH-885] 2012-05-04 20:48:52 -07:00
Mitchell Hashimoto 04df9bc80b Merge pull request #877 from bitprophet/allow-agents-in-plain-mode
Don't use IdentitiesOnly under 'ssh -p'
2012-05-04 20:31:15 -07:00
Jorgen H. Fjeld 6f5a9d13f3 Detect and disable DNS settings that break on Ubuntu 12.04. 2012-05-01 22:24:07 -07:00
Sean Wolfe e10e8aae86 After changing the file permissions, we need to reload the stat before comparing again. Otherwise we will always throw an exception even if we set the permissions successfully. 2012-05-01 13:26:12 -07:00
Lars Fronius 534faeae7c Fixes a bug where interfaces are assigned in a wrong order when using ruby1.8, causing vm boot to stop as documented in issue #898 2012-04-26 21:11:16 +02:00
Mitchell Hashimoto 9956e6d012 Better directory structure for plugins 2012-04-20 16:53:01 -07:00
Mitchell Hashimoto cae80a7716 Make Vagrant::Plugin a module 2012-04-19 21:42:35 -07:00
Mitchell Hashimoto 86a846e445 Remove old command directory 2012-04-19 21:33:26 -07:00
Mitchell Hashimoto 945f3bba67 Remove old commands 2012-04-19 21:29:25 -07:00
Mitchell Hashimoto deb346d5a1 Remove guest subdirectory 2012-04-19 21:28:24 -07:00
Mitchell Hashimoto 3a79aa0beb Remove hosts directory 2012-04-19 21:27:16 -07:00
Mitchell Hashimoto 9593ad3fdb Get rid of provisioners directory 2012-04-19 20:30:14 -07:00
Mitchell Hashimoto 6161c04fcf Fix some issues with commands not referencing proper classes 2012-04-19 14:02:03 -07:00
Mitchell Hashimoto 1489854d70 Move commands into plugins 2012-04-19 13:59:48 -07:00
Mitchell Hashimoto 661f20bb91 Move hosts to a plugin system 2012-04-18 22:20:45 -07:00
Mitchell Hashimoto 1cbac3167f Move provisioners into plugins 2012-04-18 21:53:19 -07:00
Mitchell Hashimoto 0d7b9f84e2 Add logging to v1 plugin registration 2012-04-18 21:32:15 -07:00
Mitchell Hashimoto 1b2fa748f9 Move all guests to plugins, even the distros 2012-04-18 21:23:25 -07:00
Mitchell Hashimoto 7766eb6098 Major guests have been moved to plugins 2012-04-18 21:03:03 -07:00
Mitchell Hashimoto dd459170dd Start moving guest configuration out into plugins 2012-04-18 17:38:20 -07:00
Mitchell Hashimoto a23fee4848 Remove old configuration classes 2012-04-18 17:16:03 -07:00
Mitchell Hashimoto a62e859231 Get rid of the UNSET_VALUE stuff, save it for v2 2012-04-18 17:09:25 -07:00
Mitchell Hashimoto b38fb5e974 Loader uses the new configuration classes 2012-04-18 17:03:34 -07:00
Mitchell Hashimoto 98d6bf958e Move core config into a plugin 2012-04-17 22:12:27 -07:00
Mitchell Hashimoto c0ee3b06ff Config merging 2012-04-17 10:22:24 -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 b46daa82bc Ability to define configuration classes on plugins 2012-04-15 16:04:54 -05:00
Mitchell Hashimoto 2eebc2cb68 Basic Plugin class 2012-04-15 15:34:44 -05:00
Mitchell Hashimoto 4034a2db21 `vagrant destroy` works in "guru meditation" state 2012-04-12 10:18:34 -07:00
Jeff Forcier e35fac0986 Protip, don't apply changes from old released versions to master 2012-04-09 18:01:03 -07:00
Jeff Forcier 59852e79de Don't use IdentitiesOnly under 'ssh -p' 2012-04-09 17:57:41 -07:00
Justin Lynn a20ee32c9a Need to correctly configure the template's options.
pull the config through the bridged interface configuration routine

template debugging

add another test line

set the setting in the correct areas, yay dynamic method calls
2012-04-05 10:58:58 -07:00
Justin Lynn bf3d3b0245 add use_dhcp_assigned_default_route setting to allow for dhcp bridged interfaces which have a default route assigned by dhcp 2012-04-05 09:21:09 -07:00
Mitchell Hashimoto 00c4193b43 Merge pull request #856 from stevehodgkiss/fix_error_when_changing_users
Cleanup any tmp files set by vagrant to fix a permissions issue when switching users.
2012-04-03 21:56:16 -07:00
Mitchell Hashimoto e98cedf0e1 LogLevel QUIET for SSH to suppress known hosts warning [GH-847] 2012-04-02 09:57:16 -07:00
Mitchell Hashimoto 285a07ebb3 Don't use unless 2012-04-02 09:55:39 -07:00
Steve Hodgkiss 3561c1c5ba Guests should clean up after themselves 2012-04-02 17:33:54 +10:00
Steve Hodgkiss 092e8a95b3 Cleanup any tmp files set by vagrant to fix a permissions issue when switching users. 2012-04-02 14:56:43 +10:00
David Calavera e8c5cf09db fix reading information method for vbox 4.1 2012-03-31 18:58:02 -07:00
David Calavera b0e6085c0b Fix importing progress status check 2012-03-31 18:50:45 -07:00
David Calavera 73b31b5a3b fix regexp matchers 2012-03-30 19:36:35 -07:00
David Calavera eb07788db1 Remove global variables 2012-03-30 19:36:26 -07:00
Mitchell Hashimoto 1782acdf2e Fix up some stuff from previous pull request 2012-03-30 19:31:03 -07:00
Hunter Morris db6cd14f9e Detect when the VirtualBox installation is incomplete and error 2012-03-30 19:29:39 -07:00
Mitchell Hashimoto 9f6bc9ee03 Catch Errno::ETIMEDOUT for downloading boxes [GH-849] 2012-03-30 19:28:10 -07:00
Mitchell Hashimoto 2ed6695f78 Improve the SSH ready? check [GH-841] 2012-03-28 22:30:01 -07:00
Mitchell Hashimoto c9d1110b0e Up version for development 2012-03-28 22:08:55 -07:00
Mitchell Hashimoto 41445466ee v1.0.2 2012-03-25 10:08:22 -07:00
Mitchell Hashimoto bfe20a223f Fail fast if the VM fails to boot properly. [GH-825] 2012-03-25 10:00:27 -07:00
Mitchell Hashimoto 1b4388ee98 Fix a few edge cases where CLI#execute didn't properly return an int 2012-03-25 09:58:57 -07:00
Mitchell Hashimoto 351f9757a1 Backwards compatible with_target_vms, fix failing test 2012-03-23 11:29:10 -04:00
withnale ff36845259 Allow multiple VMs to be specified for relevant commands 2012-03-23 11:25:35 -04:00
Mitchell Hashimoto 3338b6c134 Support arbitrary exit statuses for CLI commands that aren't exploding 2012-03-23 11:07:35 -04:00
Mitchell Hashimoto c1445a0130 Check if a port is open prior to forwarding [GH-821] 2012-03-23 10:31:27 -04:00
Mitchell Hashimoto d08a65e7f7 IsPortOpen utility 2012-03-23 10:26:29 -04:00
Mitchell Hashimoto 3877b71983 Better logging in the SaneDefaults middleware 2012-03-23 10:00:26 -04:00
Seth Chisamore c137dec14f Enable DNS proxy (in NAT mode) by default 2012-03-23 09:37:04 -04:00
Mitchell Hashimoto a1b16fd96d Merge pull request #816 from Oakie3CR/chef-solo-encrypted-databags
Add encrypted data bag options to chef-solo
2012-03-23 06:21:36 -07:00
Mitchell Hashimoto 1749e4cf94 Enable Host IO cache on SATA controller by default 2012-03-22 13:41:48 -07:00
Mitchell Hashimoto 641a8daac8 safe_puts to avoid EPIPE [GH-819] 2012-03-18 17:45:49 -06:00
Hendrik Volkmer 28e391cb61 Disable IdentitiesOnly for SunSSH
SunSSH is default on Solaris/OpenSolaris/Illumos. SunSSH does not support
the IdentitiesOnly option. 'vagrant ssh' works when the options is not supplied.
2012-03-18 16:32:15 +01:00
Mitchell Hashimoto cd92d6483f Update CHANGELOG 2012-03-15 09:52:28 -06:00
Remco Vermeulen 728dbe5a4f Make sure that the private_key_path is expanded before checking existence.
This allows for paths like ~/.ssh/some_key to be defined in the Vagrantfile.
2012-03-14 12:02:31 +01:00
Christian Rigdon b4e24c91f5 Add encrypted databag options to chef-solo 2012-03-13 16:27:11 -06:00
Benedikt Böhm aa06f06d1a add change_host_name support for gentoo 2012-03-13 14:56:22 -07:00
Benedikt Böhm 275241caf6 fix interpolation error in VMGuestError strings 2012-03-13 14:56:11 -07:00
Mitchell Hashimoto 3ff4be3632 Nicer error for unsupported SSH key type [GH-805] 2012-03-13 14:27:16 -07:00
Mitchell Hashimoto 0245245daa Update CHANGELOG 2012-03-13 14:19:34 -07:00
R. Tyler Croy 95ebd5b4ca Allow provisioners to prepare, even if they're not enabled
Fixes #801
2012-03-13 05:08:33 -07:00
Mitchell Hashimoto 5bc27e46d3 v1.0.1 2012-03-11 16:10:30 -07:00
Mitchell Hashimoto 07fa6d5dc4 ssh-config -h shows help [GH-793] 2012-03-11 10:38:23 -07:00
Mitchell Hashimoto b38083fb9b OpenBSD guest [GH-773] 2012-03-10 14:03:09 -08:00
Mitchell Hashimoto 8ea5e15b48 `vagrant reload` accepts `--no-provision` and `--provision-with` 2012-03-10 13:57:18 -08:00
Mitchell Hashimoto 37b8a13179 Add the :facter option for puppet server [GH-790] 2012-03-09 12:16:27 -08:00
Mitchell Hashimoto 0b28910b77 Update CHANGELOG + Style 2012-03-09 10:18:40 -08:00
Daniel Simmons 38212969c6 Don't attempt to calculate percentage if total is not set
Prevents a FloatDomainError if the total is zero or not known. Fixes #788.
2012-03-09 11:10:30 +00: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 bab5d7b685 Silent UI can't respond to `ask` 2012-03-07 22:42:47 -08:00
Mitchell Hashimoto 3046845215 Show nice error if vagrant destroy can't confirm [GH-779] 2012-03-07 22:35:40 -08:00
Mitchell Hashimoto 95b3e9f82f UI errors if a TTY is required and not given 2012-03-07 22:32:44 -08:00
Mitchell Hashimoto 700938b668 Load rubygems in environment.rb [GH-781] 2012-03-07 22:15:45 -08:00
Mitchell Hashimoto ef90fb7b0d Up version for dev 2012-03-06 11:38:11 -08:00
Mitchell Hashimoto 1fd4cb1a4e Fix a potential exception case by making UUID for VB driver optional 2012-03-06 11:37:36 -08:00
Mitchell Hashimoto 14513a99b3 Ignore me. 2012-03-05 22:17:39 -08:00
Mitchell Hashimoto 40901dc2e6 Make sure a driver is always set on a VM object 2012-03-05 20:42:55 -08:00
Mitchell Hashimoto 97cf6ddfba Update CHANGELOG 2012-03-04 16:39:35 -08:00
Wayne E. Seguin 9990311f20 Added Fedora 16 handling. 2012-03-04 18:42:37 -05:00
Mitchell Hashimoto a90f33dcf2 Avoid deadlock behavior on Windows subprocess IO [GH-765] 2012-02-28 09:44:28 -08:00
Achim Herwig 7c1fcbdde0 Added openSuSE as host system.
Init script for NFS-server differs.
2012-02-28 11:55:39 +01:00
Mitchell Hashimoto a8293543e9 Automatically convert all customize arguments to strings. 2012-02-26 14:13:24 -08:00
Mitchell Hashimoto 07a815f9d8 Remove deprecation warnings, the things are gone! 2012-02-25 12:35:58 -08:00
Mitchell Hashimoto 7b9f64f577 Allow data store to work even if file path is nil 2012-02-25 10:41:06 -08:00
Mitchell Hashimoto 6490710d43 Puppet accepts :facter option to override default facts [GH-753] 2012-02-25 10:18:17 -08:00
Mitchell Hashimoto 2c823e98bd Fix crashing bug with `primary_vm` on Environment 2012-02-24 10:27:34 -08:00
Mitchell Hashimoto 50fb129f53 Make VM#run_action public for plugin devs 2012-02-23 23:01:43 -08:00
Ian Downes 0f63171a4d Support for bridged networks in FreeBSD 2012-02-23 18:06:40 -08:00
Mitchell Hashimoto 23fe4ef7e2 Fix up the freebsd guest regex 2012-02-22 15:19:45 -08:00
Ian Downes 3ebde12efb add change_host_name support for FreeBSD 2012-02-22 15:08:18 -08:00
Mitchell Hashimoto 2f420705da Output version at the top of every log 2012-02-22 10:00:19 -08:00
Mitchell Hashimoto cf840c88b0 Merge pull request #751 from jjhuff/chef-provision
Fix for permissions when re-provisioning chef.
2012-02-20 17:28:31 -08:00
Mitchell Hashimoto 3e5b3d051b Fix exception when adding boxes due to recent change. [GH-752] 2012-02-20 17:26:22 -08:00
Justin Huff 32f7f98ef4 Fix for permissions when re-provisioning chef.
https://github.com/mitchellh/vagrant/issues/748
2012-02-20 09:53:09 -08:00
Jaime Soriano Pastor c0338dfa4b NIC type can also be defined for host-only adapters 2012-02-20 12:16:10 +01:00
Mitchell Hashimoto 5eb09aac3f Up version for RC2 2012-02-19 11:50:54 -08:00
Mitchell Hashimoto 8969605fe2 Check that VirtualBox exists early. [GH-746] 2012-02-19 11:36:25 -08:00
Mitchell Hashimoto c2fbbe7dee Better logging for config loading 2012-02-15 18:23:05 -08:00
Mitchell Hashimoto d4a2e39c3e Gracefully handle if the type of arg is not correct for bridged.
[GH-743]
2012-02-15 18:20:44 -08:00
Mitchell Hashimoto 163da82170 Fix edge case which caused exception in network configuration code.
[GH-742]
2012-02-15 11:11:11 -08:00
Mitchell Hashimoto 034477b52a Add `fsid` to linux exports for NFS. [GH-736] 2012-02-14 23:08:32 -08:00
Mitchell Hashimoto 96a920e4e5 Destroy VMs in reverse order. [GH-739] 2012-02-14 10:42:30 -08:00
Mitchell Hashimoto 2cf146cf6b Set uuid directly if VM couldn't be found. [GH-725]
This fixes a rare edge case where an exception could actually cause
Vagrant to remove the UUID state of a running VM, "losing" it.
2012-02-13 17:39:18 -08:00
Mitchell Hashimoto 888907de91 Up version for 1.0.0.rc1 2012-02-12 11:21:00 -08:00
Mitchell Hashimoto b64ac0b0d3 Use `binmode` to actually fix GH-727 2012-02-11 10:36:27 -08:00
Mitchell Hashimoto 9e427562ef Retry VirtualBox commands. [GH-726] 2012-02-10 21:56:59 -08:00
Mitchell Hashimoto c50c7959f9 Convert lineendings for the other guests as well 2012-02-10 18:14:51 -08:00
Mitchell Hashimoto ba42fffed0 Convert line endings to Unix-style [GH-727] 2012-02-10 18:07:59 -08:00
Mitchell Hashimoto 5c49d693d4 You can no longer output a package to a directory [GH-730] 2012-02-10 17:57:40 -08:00
Mitchell Hashimoto 99ec766efe Get rid of tabs 2012-02-10 17:57:40 -08:00
John Bender b8db119d50 expose virtualbox base driver methods execute and raw 2012-02-09 23:04:21 -08:00
Mitchell Hashimoto 02fe7b6a9a Merge branch '0-9-6-regression' 2012-02-09 00:45:30 -08:00
Mitchell Hashimoto ea19bddb04 v0.9.7 2012-02-10 00:54:16 -08:00