Commit Graph

202 Commits

Author SHA1 Message Date
Mitchell Hashimoto 29600d3d06 Always log the exception raised when error loading a plugin 2013-02-22 15:11:01 -08:00
Mitchell Hashimoto 1b6538354d Be smarter about determining if plugin load failed 2013-02-22 15:10:34 -08:00
Mitchell Hashimoto 8f24d2d98c Remove the "easy" plugins until a future version 2013-02-06 13:46:34 -08:00
Mitchell Hashimoto 3df6088db0 Make plugin loading more robust to errors 2013-02-03 14:13:27 -08:00
Mitchell Hashimoto 0d27cd5bcb Warn if Vagrant is run outside of installers 2013-01-28 13:39:56 -08:00
Mitchell Hashimoto 7bdf54923a Create the MachineState class 2013-01-21 11:25:28 -06:00
Mitchell Hashimoto c0c3e7bf43 Remove Vagrant::DataStore
We just don't use it yet and the old implementation was sketchy. I was
not happy with it.
2012-12-26 21:45:24 -08:00
Mitchell Hashimoto e8370f0098 Convert comands to V2 plugins. 2012-11-06 21:09:29 -08:00
Mitchell Hashimoto a7b298b647 Remove Vagrant::VM 2012-08-18 19:36:50 -07:00
Mitchell Hashimoto 595e7cee0e Move SSH communication to a plugin 2012-08-08 21:48:51 -07:00
Mitchell Hashimoto a1cef830e3 Add the Communicator plugin API.
This allows communication protocols to be defined for the machine. This
is how things like SSH will be implemented.
2012-08-08 21:28:28 -07:00
Mitchell Hashimoto 984c4f4025 Add Util::SSH which has methods for checking key permissions and exec 2012-08-05 13:12:53 -07:00
Mitchell Hashimoto 2ef20586da Remove the action registry feature.
This can be removed since in the future all actions will come from the
providers or something. There are still issues with box actions but
we'll get back to that later...
2012-07-26 21:57:11 -07:00
Mitchell Hashimoto 353610021c Vagrant::Machine
This is the class that will represent a machine that is managed by
Vagrant. The class has a number of attributes associated with it and is
meant to be a single API for managing the machines.
2012-07-16 10:28:42 -07:00
Mitchell Hashimoto 3b82f2efc4 Create the basic provider plugin interface.
Non-functional at this point.
2012-07-14 16:57:54 -07:00
Mitchell Hashimoto da15105a8f Make Box2 the new Box
This involved defaulting all box searching at the moment to VirtualBox.
Additionally, box upgrading is not yet handled. This needs to be done at
some point.
2012-07-11 18:36:21 -07:00
Mitchell Hashimoto a6d7bd48fd Find boxes with new on-disk structure.
The box collection can now find new-style boxes with providers and
return proper Box objects. In the future, we'll also have to implement
upgrading old style ones as well.
2012-07-11 18:36:20 -07:00
Mitchell Hashimoto 42826356ad Basic "Box2" implementation.
This is the beginning of the new box internals. The basic idea is that
the new box has a new field: provider. The provider will describe what
provider that box was built with and what provider it is made to work
with.
2012-07-11 18:36:20 -07:00
Mitchell Hashimoto 70bdd9f56e Move host base class to a plugin component 2012-06-27 09:26:03 -07:00
Mitchell Hashimoto 53d8c28c8e Move guests to Vagrant.plugin("1", :guest) 2012-06-26 16:28:49 -07:00
Mitchell Hashimoto b23dda54b8 Move command base class to a plugin component 2012-06-26 16:18:02 -07:00
Mitchell Hashimoto 7258daf535 Support specifying a component for Vagrant.plugin
The future of subclassing things like configuration bases and so on will
be to use `Vagrant.plugin(version, component)`. For example:
`Vagrant.plugin("1", :provisioner)`.
2012-06-26 15:47:26 -07:00
Mitchell Hashimoto 2e00a007ce Move provisioner superclass into the V1 namespace 2012-06-26 15:06:04 -07:00
Mitchell Hashimoto ffab8cab68 Renamespace V1 plugin root to Vagrant::Plugin::V1::Plugin
This is mostly a transparent change to end users, but I'm going to put
all base classes for V1 into Vagrant::Plugin::V1.
2012-06-24 14:24:52 -07:00
Mitchell Hashimoto a677c15e86 Use `next` instead of `return` for 1.8.x compatibility.
Since we're not calling this lambda from inside a method, the `return`
causes a LocalJumpError on 1.8.x. It appears this functionality works
fine on 1.9.x but we'd like to support both. The correct behavior
appears to use `next`.
2012-06-23 10:47:01 -07:00
Mitchell Hashimoto d8c16035c8 Don't use Pathname#each_child for 1.8.7 compat [GH-979]
each_child is a 1.9.x feature. The implementation however is simple
enough that I copied it over and just use the 1.8.7 compatible version.
2012-06-22 20:47:43 -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 bc0643613a Vagrant.require_plugin [GH-916] 2012-05-06 14:01:10 -07:00
Mitchell Hashimoto 31ac7271aa Rename EasyCommand namespace to Easy 2012-05-05 22:16:13 -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 9956e6d012 Better directory structure for plugins 2012-04-20 16:53:01 -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 1b2fa748f9 Move all guests to plugins, even the distros 2012-04-18 21:23:25 -07:00
Mitchell Hashimoto dd459170dd Start moving guest configuration out into plugins 2012-04-18 17:38:20 -07:00
Mitchell Hashimoto 98d6bf958e Move core config into a plugin 2012-04-17 22:12:27 -07:00
Mitchell Hashimoto 2eebc2cb68 Basic Plugin class 2012-04-15 15:34:44 -05:00
Mitchell Hashimoto b38083fb9b OpenBSD guest [GH-773] 2012-03-10 14:03:09 -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
Achim Herwig 7c1fcbdde0 Added openSuSE as host system.
Init script for NFS-server differs.
2012-02-28 11:55:39 +01:00
Mitchell Hashimoto 2f420705da Output version at the top of every log 2012-02-22 10:00:19 -08:00
Mitchell Hashimoto fbcb2c6ddc Merge branch 'f-vagrant-gem' 2012-02-07 22:42:34 -08:00
Mike Lundy 00953073e7 Add Gentoo support for NFS 2012-02-07 21:14:47 -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 527b79853c Log output now goes on stderr by stdout 2012-01-19 17:12:18 -08:00
Mitchell Hashimoto 3ab8aaa1b0 Clarify invalid log level message [GH-645] 2012-01-18 09:40:51 -08:00
Mitchell Hashimoto ba5cd9b88a Windows host 2012-01-08 11:14:01 -08:00
Mitchell Hashimoto a94cf520c6 Log4r levels need to be defined before we can check for them 2012-01-07 21:16:40 -08:00
Mike Fiedler e05bfb7efc missing bracket closure fails rake tests 2012-01-07 21:16:28 -08:00
Mitchell Hashimoto 87b1a6660d Handle invalid log levels more gracefully 2012-01-07 21:16:22 -08:00
Mitchell Hashimoto 00a31ff27b Communication abstraction. Started SSH. 2012-01-06 20:07:31 -08:00
Mitchell Hashimoto 4c7059eaf6 Remove virtualbox dep 2011-12-21 14:36:51 -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 98df762f8c `vagrant init` uses new OptParse based CLI 2011-12-17 21:06:00 -08:00
Mitchell Hashimoto 9bdff4c507 Styling 2011-12-17 19:53:57 -08:00
Mitchell Hashimoto e29c5436e1 Box commands 2011-12-17 19:52:48 -08:00
Mitchell Hashimoto 780722386b `vagrant status` 2011-12-17 17:36:11 -08:00
Mitchell Hashimoto 1176c65138 `vagrant ssh-config` 2011-12-17 17:29:52 -08:00
Mitchell Hashimoto e34f0a8af7 `vagrant ssh` 2011-12-17 17:24:02 -08:00
Mitchell Hashimoto 19adc3189d `vagrant package` 2011-12-17 16:58:54 -08:00
Mitchell Hashimoto bdc39aa2e0 Suspend command 2011-12-17 12:04:35 -08:00
Mitchell Hashimoto c5ec4b4a30 Provision, reload, resume 2011-12-17 11:53:26 -08:00
Mitchell Hashimoto 6c7e88c3ec `vagrant halt` 2011-12-17 11:14:56 -08:00
Mitchell Hashimoto e71007d47e `vagrant destroy` 2011-12-17 11:05:49 -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 1fcca71ce9 Re-namespace all systems to the Vagrant::Guest module 2011-12-15 21:05:19 -08:00
Mitchell Hashimoto eda286b476 Config classes are registered via a registry now 2011-12-15 20:32:33 -08:00
Mitchell Hashimoto e5303a82e0 Autoload provisioners. 2011-12-14 22:49:14 -08:00
Mitchell Hashimoto b428072bb5 Provisioners use the registry. Cleaned up the way config classes are searched for. 2011-12-14 22:43:45 -08:00
Mitchell Hashimoto ee33588d10 Clean up system loading quite a bit 2011-12-12 00:03:28 -08:00
Mitchell Hashimoto cdc01c449d Re-order things in vagrant.rb slightly 2011-12-11 23:24:23 -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 bbb8f0ac2c Integrate new action runner/registry into Vagrant::Environment 2011-12-09 14:39:39 -08:00
Mitchell Hashimoto e38e3cc652 Move VAGRANT_LOG logic into vagrant.rb so VAGRANT_LOG is always available 2011-12-03 17:12:07 -08:00
Mitchell Hashimoto 881045a85f Find a way to autoload 'vagrant/ssh' since that is a slow loader.
This involved realizing that requiring 'openssl' in the context
of an autoload causes some strange exceptions down the road. See this
gist for the error: https://gist.github.com/dd0b105bf9edcb7daa85
2011-07-09 11:12:15 -07:00
Mitchell Hashimoto 29db4aefd5 Load vagrant/version so that `vagrant version` works again 2011-01-07 01:25:54 -08:00
Mitchell Hashimoto 9e27355d0e Fix weird exception from autoloading Vagrant::SSH 2011-01-07 01:22:52 -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 cb69377b06 Remove Radar until next release. 2010-09-21 10:11:16 -06:00
Mitchell Hashimoto bae6c57230 Expose test helpers [closes GH-162] 2010-09-15 09:19:38 -06:00
Mitchell Hashimoto d5fbf29ec0 Plugins. Documentation coming shortly. 2010-09-14 23:10:51 -06:00
Mitchell Hashimoto 0ee21998f6 New BoxCollection class to keep track of all boxes. 2010-09-11 10:17:26 -07:00
Mitchell Hashimoto 260f1dcec4 Refined some tests to use real Vagrantfiles instead of mocks 2010-09-03 19:25:48 -07:00
Mitchell Hashimoto 59e1e43c74 Autoload the util classes. HashWithIndifferentAccess for data store 2010-09-03 09:33:15 -07:00
Mitchell Hashimoto 4d87f198d7 Vagrant::DataStore which will be used soon for the dotfile in the project directory 2010-09-01 22:00:59 -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 f697ca543e Extremely basic Radar integration 2010-09-01 19:46:11 -07:00
Mitchell Hashimoto 3da94252b5 Get rid of util.rb. No longer used. 2010-09-01 14:30:31 -07:00
Mitchell Hashimoto e7f06d7fb7 Remove ExceptionCatcher since exceptions are the way to report errors now 2010-09-01 10:04:37 -07:00
Mitchell Hashimoto a7197b3566 Autoload errors. If nothing bad happens, all those error classes don't use any memory :) 2010-09-01 07:15:37 -07:00
Mitchell Hashimoto e28947f18d Use I18n gem for string database. Refactor exceptions to use I18n. 2010-08-26 21:56:38 -07:00
Mitchell Hashimoto 3da5fc87a3 Add NamedBase for commands which take a name for multivm (optionally) 2010-08-24 23:50:20 -07:00
Mitchell Hashimoto 2eb09c7aa2 Helpers to get target VMs in commands from parameters 2010-08-24 17:49:22 -07:00
Mitchell Hashimoto 004ba551a6 Moved errors out into its own file so that vagrant.rb doesn't get too cluttered 2010-08-24 11:18:29 -07:00