Commit Graph

3315 Commits

Author SHA1 Message Date
Mitchell Hashimoto fd0661c20e Merge branch 'guest-capabilities-system'
This replaces the old "guest" sysetm with a new "guest + capabilities" system.
This introduces two new abstractions to replace the old system:

1. Guests - These are responsible for simply detecting the guest OS.
2. Guest Capabilities - These are specific tasks that a guest OS are
  capable of performing. For example, "mount_virtualbox_shared_folders" or
  "configure_networks"

This new system improves the old system because the old system hardcoded
all capabilities of guests into a single static class. This system allows
dynamically adding new capabilities as they're needed and testing for
their existence.

This means it is now possible for the Chef provisioner (as an example)
to run the "install_chef" capability if it exists, allowing guests to handle
installing Chef. COOL! If the capability doesn't exist, Chef can ignore it,
error, etc. Plugins can dynamically add new capabilities to existing operating
systems.

AWESOME!
2013-04-04 12:58:16 -07:00
Mitchell Hashimoto 296d32c099 Update CHANGELOG 2013-04-04 12:58:07 -07:00
Mitchell Hashimoto 7b9e5fd4a7 Include should be extend for class methods 2013-04-04 12:25:40 -07:00
Mitchell Hashimoto 439499fc11 Solaris capabilities 2013-04-04 12:25:10 -07:00
Mitchell Hashimoto 5e09577a76 Lots more guest capabilities converted 2013-04-04 12:09:40 -07:00
Mitchell Hashimoto 2c362d4d28 FreeBSD capabilities 2013-04-04 11:56:42 -07:00
Mitchell Hashimoto 8bf9fb17b1 Remove freeBSD config because it isn't used anymore 2013-04-04 11:50:05 -07:00
Mitchell Hashimoto 0e4e347308 Fedora capabilities 2013-04-04 11:49:26 -07:00
Mitchell Hashimoto 7f33081387 Convert arch to capabilities 2013-04-04 11:39:58 -07:00
Mitchell Hashimoto 0fbe9b0aca Ubuntu change_host_name cap 2013-04-03 23:53:17 -07:00
Mitchell Hashimoto 22f3ea6606 Remove the linux config, not used anyways 2013-04-03 23:50:12 -07:00
Mitchell Hashimoto d490c840df Tests passing for halt capability change 2013-04-03 23:48:44 -07:00
Mitchell Hashimoto 067f431ee9 Better debugging on searching for capabilities 2013-04-03 23:46:39 -07:00
Mitchell Hashimoto 2f232e0175 Halt and mount NFS are caps 2013-04-03 23:33:20 -07:00
Mitchell Hashimoto 61d2f9f96f SetHostname uses new cap system 2013-04-03 23:18:12 -07:00
Mitchell Hashimoto 511522e9ae Remove unused keys 2013-04-03 23:15:31 -07:00
Mitchell Hashimoto 63f28a9011 Nicer error messages for new linux caps 2013-04-03 23:14:24 -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 819ef46fca Tests for registering guest capabilities 2013-04-03 22:43:35 -07:00
Mitchell Hashimoto c5c15fdaa6 Machine#guest returns the proper guest detected 2013-04-03 22:40:30 -07:00
Mitchell Hashimoto f48b0796a5 Forward arguments down to capability 2013-04-03 22:20:45 -07:00
Mitchell Hashimoto cf3c1b73d2 Guest#capability to execute capabilities 2013-04-03 22:19:20 -07:00
Mitchell Hashimoto 06a9968ec4 Guest#capability? for testing for capabilities 2013-04-03 22:03:03 -07:00
Mitchell Hashimoto 52f3847b0a Laying the foundation for the new guest plugin 2013-04-03 21:47:57 -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 52a2f48b20 Provider-specific configuration overrides via 2nd block param
Example:

Vagrant.configure("2") do |config|
  # ...

  config.vm.provider :virtualbox do |p, vb_config|
    vb_config.vm.box = "virtualbox_box"
  end
end
2013-04-03 14:57:14 -07:00
Mitchell Hashimoto acd494d148 Get rid of debug exception 2013-04-03 12:50:04 -07:00
Mitchell Hashimoto 749b7b7d70 Update SSH config to be more modern 2013-04-03 12:49:59 -07:00
Mitchell Hashimoto 932f15665b Fix downloader tests 2013-04-03 12:04:58 -07:00
Mitchell Hashimoto 0f0c0b0396 Add max redirects for download 2013-04-03 12:01:12 -07:00
Mitchell Hashimoto 5e2549fe8b Add "--insecure" flag for downloader 2013-04-03 11:57:40 -07:00
Mitchell Hashimoto 58b7c65a69 Remove the downloaders 2013-04-03 11:45:46 -07:00
Mitchell Hashimoto a9f269af24 Tests for GH-1478 2013-04-03 08:31:43 -07:00
Mitchell Hashimoto 47925e1c42 Update CHANGELOG 2013-04-03 08:31:43 -07:00
Mitchell Hashimoto 8ccdd152b8 Update cHANGELOG 2013-04-03 08:31:43 -07:00
Mitchell Hashimoto ab19b506bd Get rid of unnecessary variable 2013-04-03 08:31:43 -07:00
Mitchell Hashimoto d1eccbf98f SafeChdir all the things for thread safety 2013-04-03 08:31:43 -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 368dddd950 Allow only one Environment#batch to run at a time per env 2013-04-03 08:31:42 -07:00
Mitchell Hashimoto df93a221e1 Up command now uses Environment#batch 2013-04-03 08:31:42 -07:00
Mitchell Hashimoto d6a84b5ca4 Environment#batch and forcing disable through env var 2013-04-03 08:31:42 -07:00
Mitchell Hashimoto 54f7930b84 Run "up" in a batch action so it parallelizes 2013-04-03 08:31:42 -07:00
Mitchell Hashimoto 3d8271a3a2 BatchAction for running actions in parallel 2013-04-03 08:31:42 -07:00
Mitchell Hashimoto 7446b3c4ef Make the Basic/Colored UI objects threadsafe 2013-04-03 08:31:42 -07:00
Mitchell Hashimoto 7b0745abcc UI objects use "scopes" now 2013-04-03 08:31:42 -07:00
JD Harrington 8cd74fee16 Allow override of default_provider
Set the VAGRANT_DEFAULT_PROVIDER environment variable to override the
value of default_provider.
2013-04-03 08:31:42 -07:00