Commit Graph

1612 Commits

Author SHA1 Message Date
Mitchell Hashimoto 4e649cc987 Upgrade V1-style dotfile to V2
See the code and comments for details on how this is done. As usual, we
are very careful about this so as not to inadvertently destruct real
user data.
2012-12-26 22:41:42 -08:00
Mitchell Hashimoto cd969e1e05 Remove the dotfile_name configuration option.
The dotfile is gone now so the configuration option is obselete
2012-12-26 21:45:24 -08: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 3baa31460f Store machine ID in "id" file in data directory.
Instead of storing an "active" hash in the local_data of an Environment,
we now place the ID of a machine in the "id" file of the machine data
directory. This file is read upon re-instantiation in order to load the
proper state.
2012-12-26 21:45:23 -08:00
Mitchell Hashimoto cc18492c7a Local data path introduced
The local data path is set to the `ROOT_DIR/.vagrant` by default and is
a directory where Vagrant can store environment-local state. This can be
overriden on a per-Environment basis using the `local_data_path`
option.
2012-12-26 21:45:23 -08:00
Mitchell Hashimoto 8fe0f86dbd The --provider flag for `up` now actually does something. 2012-12-23 21:23:08 -08:00
Mitchell Hashimoto 3808ea377f Upgrade all other default configurations to V2 2012-12-23 16:29:26 -08:00
Mitchell Hashimoto 6478139cee Move config.vm.customize to VirtualBox specific option 2012-12-23 16:29:25 -08:00
Mitchell Hashimoto dffbf6eb09 Allow COnfirm calls to be forced by specifying a force_key 2012-12-23 16:29:25 -08:00
Mitchell Hashimoto 50d7b0aba4 Fix bug where Call didn't propagate recovery. Warden has no recovery.
The issue here is that when a middleware failed and a recovery sequence
started, it would halt at the "call" step because the "Call" didn't
properly recover the child sequence.

An additional issue was that a Warden had no "recover" method, meaning
embedded Wardens wouldn't recover their stacks properly.
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto a6e0d3908f Create a "dummy" provider for tests 2012-12-23 16:29:24 -08:00
Mitchell Hashimoto ac7958a43b Environment#primary_machine takes a provider argument. Use it. 2012-12-23 16:29:24 -08:00
Mitchell Hashimoto 128c06e78d Environment#default_provider 2012-12-23 16:29:24 -08:00
Mitchell Hashimoto 1ee470a551 Begin work on supporting provider-specific configuration
This works by registering a `config` with `:provider => true` with the
same name as your provider. Vagrant will then automatically configure
the provider when `config.vm.provider` is used.
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto 99c5cddb7d V2 config supports the concept of an "UNSET" value when doing merges
This value should be used as a default, and allows the parent `merge`
method to "just work" most of the time.
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto 819140bbc2 Don't error if box doesn't exist on load 2012-12-23 16:29:23 -08:00
Mitchell Hashimoto 0ec639c8e1 BoxCollection#find should only find V1 box when searching for vbox 2012-12-23 16:29:23 -08:00
Mitchell Hashimoto e2dd0b0cf2 Get machine tests passing again with new environment 2012-12-23 16:29:23 -08:00
Mitchell Hashimoto f2b91d26fd Load the configuration per machine, so that provider boxes work
Boxes are provider-specific, and we don't know the provider until
Environment#machine is called, so we need to build up the machine
configuration during this time.
2012-12-23 16:29:23 -08:00
Mitchell Hashimoto 0180ed849d Move config loader order out from an ivar into a param for the #load
method
2012-12-23 16:29:23 -08:00
Mitchell Hashimoto 1559f7b7a7 Get rid of the old Environment#vms calls. Use #machine everywhere. 2012-12-23 16:29:23 -08:00
Mitchell Hashimoto 5002b8d9c2 Fix failing test on 1.8.7 2012-12-20 22:05:05 -08:00
Mitchell Hashimoto 2ef6ff10f0 Cache the machine objects created in Environment#machine.
Each machine and provider backing should be represented by only one
machine.
2012-11-07 22:08:06 -08:00
Mitchell Hashimoto 67855be77b Add the Environment#machine method
This will eventually replace the Environment#vms method. Because of the
introduction of providers, the environment doesn't know what the backing
of the machines will be (and they're _machines_ now, not _vms_).
Instead, users of Environment will now call `#machine` on the
environment to retrieve a machine with the given backing provider as it
needs it.
2012-11-07 21:45:09 -08:00
Mitchell Hashimoto f52f8ecc97 Get tests passing again, use V2 config in tests. 2012-11-07 20:06:55 -08:00
Mitchell Hashimoto 53860f90ab V2 loader now properly upgrades V1 configuration.
This is done by calling the `upgrade` method on the _old_ configuration
classes. The old configuration classes are given the complete new
configuration and can set whatever settings they need to on it.
2012-11-07 20:01:39 -08:00
Mitchell Hashimoto 253b433864 Support configuring the version for test plugins. 2012-11-06 21:32:26 -08:00
Mitchell Hashimoto 02e499da47 Update tests to create V2 plugins 2012-11-06 21:19:27 -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 efa0a6b8c2 Clean up tests a bit more 2012-11-04 08:10:48 -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 59d5c5ed92 Add support for "upgrade safe" config classes to plugins.
These are classes that use NO core classes of Vagrant, and are therefore
safe to load for upgrades. i.e. a V2 core can load a V1 config class
that is deemed upgrade safe without crashing Vagrant.
2012-11-03 21:39:06 -07:00
Mitchell Hashimoto 68923ff556 Additional tests for the plugin manager. 2012-11-03 21:30:22 -07:00
Mitchell Hashimoto c803b0508a Much cleaner plugin part querying syntax.
Before we were manually going over every plugin and getting each piece,
all over the place. Now we have a central manager that will give us all
the pieces we want. There is still some cleanup to do here but this is
much better overall.
2012-11-03 21:25:28 -07:00
Mitchell Hashimoto 6ca671e2b8 Don't allow registry to be given value in non-block form 2012-11-03 20:46:24 -07:00
Mitchell Hashimoto 6df6f6764f Remove plugin activation. It really isn't necessary.
It was only used in a couple places and it isn't necessary since you can
do the loading within the actual blocks themselves.
2012-11-03 20:29:34 -07:00
Mitchell Hashimoto 5cf737d4fc Remove the buildbot stuff, we'll move away from it. 2012-11-03 13:47:57 -07:00
skim bad38ca935 fixes an exception issue when a non-directory appears in the boxes dir 2012-09-25 21:13:38 -05:00
Nate Smith 50c04ac927 `box.url` can use `file://` URI 2012-08-24 09:53:50 -04:00
Mitchell Hashimoto 1cdd69bc91 All tests passing 2012-08-19 19:17:19 -07:00
Mitchell Hashimoto 47fe278667 `vagrant box add` works again. Box verification remove temporarily.
The built-in middleware sequences will now be hardcoded onto
Vagrant::Action. Other plugins can hook into these sequences to provide
verification and so on. So the VirtualBox plugin will hook into that
action sequence and add verification.
2012-08-18 16:13:14 -07:00
Mitchell Hashimoto b659191a02 `vagrant up`! 2012-08-14 22:38:41 -07:00
Mitchell Hashimoto 85a499ffb8 Properly handle the case that VM doesn't exist for the VB driver. 2012-08-14 20:27:28 -07:00
Mitchell Hashimoto 2fc18f7207 `destroy` gets a little farther, and properly halts the VM 2012-08-13 23:18:50 -07:00
Mitchell Hashimoto 296878cff5 Add basic loop detection for distro_dispatch 2012-08-12 19:03:22 -07:00
Mitchell Hashimoto f9752d78d8 Properly resolve and load the guest class impl for Machines 2012-08-12 18:35:19 -07:00
Mitchell Hashimoto 28f341ec75 Begin working on the #guest method for Machine instances 2012-08-12 16:46:00 -07:00
Mitchell Hashimoto de0865b9e2 Test to ensure that the environment hash is returned from Machine#action
This will allow methods that call into the action to use any results
that might be set onto the environment hash by any of the middleware.
2012-08-11 20:33:09 -07:00
Mitchell Hashimoto 64afd578b3 Just always return the SSH communicator for machines for now.
In the future we'll actually find a matching communicator but for now
since we're just focusing on machine abstraction, we just return SSH.
2012-08-08 21:57:08 -07:00
Mitchell Hashimoto 5ae3e0e80c Allow the definition of communicators in plugins 2012-08-08 21:52:25 -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 b1ced46d7c SSHExec raises proper exception if SSH is not yet ready 2012-08-06 10:29:25 -07:00
Mitchell Hashimoto 8d50c4774e Tests for SSHExec, and forward in the ssh options 2012-08-05 18:37:41 -07:00
Mitchell Hashimoto e0ec679838 `vagrant ssh` with full console works with new provider.
This works by now calling the `:ssh` action on the provider. This action
is allowed to do whatever it pleases, but should at some point probably
call the `SSHExec` built-in middleware.

The `SSHExec` built-in middleware was added. This uses the information
returned by `Machine#ssh_info` and uses the `Vagrant::Util::SSH` helper
to exec into the remote machine. The provider should do any work upfront
in verifying that the machine is ready to be SSHed into.
2012-08-05 13:45:24 -07:00
Mitchell Hashimoto a1145615d0 Machine#action supports passing in extra env vars for action runner 2012-08-05 13:16:08 -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 1a2a8b49c0 Provider API to return SSH info, must implement `ssh_info`.
Since SSH is such a critical part of Vagrant, each provider must
implement a method that returns the proper way to SSH into the machine.
2012-08-05 12:41:05 -07:00
Mitchell Hashimoto 9db982f7a4 Expose the provider via the machine object. 2012-08-04 11:16:31 -07:00
Mitchell Hashimoto d8cb02d55d Load the machine ID prior to initializing the provider 2012-08-03 14:22:17 -07:00
Mitchell Hashimoto e5f250121a Call now only yields the environment 2012-07-27 19:34:46 -07:00
Mitchell Hashimoto 118377e6f0 Destroy sequence asks the user for confirmation. 2012-07-27 19:29:40 -07:00
Mitchell Hashimoto e20326d577 Added the Confirm built-in middleware
This middleware asks the user a question and expects a Y/N answer. This
middleware can be used with the Call middleware.
2012-07-27 19:16:44 -07:00
Mitchell Hashimoto 556a53d48d You can no longer set env vars on Builders via `use` 2012-07-27 19:05:35 -07:00
Mitchell Hashimoto 90517a0f9b The `Call` built-in middleware allows for conditional MW sequences.
Read the documentation for more information.
2012-07-26 23:56:47 -07:00
Mitchell Hashimoto 5eed3b8417 Building up the `destroy` action again using new provider API.
This shows me moving the built-in middleware sequences to the provider
and how I'm organizing all that.
2012-07-26 22:39:27 -07:00
Mitchell Hashimoto 44b4b9dfef Move drivers to the VirtualBox plugin. Use Machine class.
This starts the transition of replacing VM with Machine. Machine still
isn't ready to fully replace VM but by moving it now, I'm able to find
the spots that need to be fixed. At this point `vagrant status` works
with the new provider interface.
2012-07-24 21:32:38 -07:00
Mitchell Hashimoto 912998ef31 Fill in the provider API a bit more to what it is. 2012-07-16 15:24:51 -07:00
Mitchell Hashimoto 8f0375d7f3 Machines can call actions on their providers. 2012-07-16 14:12:58 -07:00
Mitchell Hashimoto 8fc5591b8e Machine queries state from the provider 2012-07-16 10:57:17 -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 3519bf0372 Add the "provider" API to the V1 plugin. 2012-07-15 11:17:58 -07:00
Mitchell Hashimoto 436da57cc4 Add the #action API to the provider plugin 2012-07-14 17:04:06 -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 cc076e5ee5 Box#repackage to repackage a box. 2012-07-11 18:36:22 -07:00
Mitchell Hashimoto 798ffc93bd BoxCollection#add throws an UpgradeRequired exception if a V1 box
already exists
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto 1d197d84c3 BoxCollection#add transparently upgrades V1 boxes to V2
This means that V1 boxes can be added to a V2 box collection without
issue.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto 623ecb3e3d Environment attempts to upgrade box on config load.
If a V1 box is encountered when Vagrant loads the configuration, then it
will be upgraded on the fly.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto 7595f0078e BoxCollection#add provider argument is optional
In the case that not provider is given then whatever provider the box
represents will be added to the system. Ideally, a provider will be
given, but if not, Vagrant still does a "best effort" to install the
box.
2012-07-11 18:36:22 -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 e7bed7c2ff Raise an exception if an invalid tar file is added. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto a35f6a175d Exception when you attempt to add a box when a V1 box conflicts. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto 9e33d16ca1 Adding a box that already exists should result in an exception. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto 9cb0015b6e Test that an added box provider must match expected. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto c2151681ec Box collection can add a new box. This is the happy path only. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto ffd5ac5af4 BoxCollection can now upgrade V1 boxes to V2 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto 2eaa850853 Box2 reads the metadata.json file. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto cd6c60775c Use the V1 box helper for a test. 2012-07-11 18:36:20 -07:00
Mitchell Hashimoto 4386ff9887 BoxCollection#all returns all boxes, including V1 boxes 2012-07-11 18:36:20 -07:00
Mitchell Hashimoto 9d1924811e Box collection can detect V1 boxes and throws an exception
The exception notifies the caller that the box needs to be upgraded. The
upgrade process is not yet done but is coming ina  future commit.
2012-07-11 18:36:20 -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 194cd2145d Fix some nondeterminism in tests with GCing tempfiles.
Before, the tempfile "f" could be GC'd before the path was used,
resulting in failed tests because when it is GC'd the tempfile is
removed. We now store the tempfile in an instance variable so that it
isn't even available for GC until after the test is finished running.
2012-06-26 15:06:04 -07:00
Mitchell Hashimoto 798704c6d2 Move the loader into the Config::V1 namespace. 2012-06-26 15:06:03 -07:00
Mitchell Hashimoto 41bc8e7454 Move Config::V1::Base to Vagrant::Plugin::V1::Config 2012-06-24 17:06:11 -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 f26024f771 Test Tempdir class cleans itself up 2012-06-24 00:03:28 -07:00
Mitchell Hashimoto 37c54c7b20 Use a temporary directory for the VAGRANT_CWD when running tests
Tests before were picking up a Vagrantfile in the Vagrant source
directory, which can cause some funny failures. This ensures that each
test run will actually establish a new temporary CWD so that a
Vagrantfile is hopefully never found.
2012-06-23 23:56:39 -07:00
Mitchell Hashimoto 7a299ae2de Configuration loader can handle upgrading.
The basic process for this is to:

1. Load the configuration using the proper loader for that version. i.e.
   if you're loading V1 config, then use the V1 loader.
2. If we just loaded a version that isn't current (imagine we're
   currently at V3), then we need to upgrade that config. So we first
   ask the V2 loader to upgrade the V1 config to V2, then we ask the V3
   loader to upgrade the V2 config to V3. We keep track of warnings and
   errors throughout this process.
3. Finally, we have a current config, so we merge it into the in-process
   configuration that is being loaded.
2012-06-23 19:56:31 -07:00
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 70fb804128 Configuration versions can finalize config after loading
This is useful so that it can take a look at the final loaded
configuration object and possibly make some tweaks to the configuration
object. The use case this was built for was so that config V1 can verify
that there is always at least a single VM defined as a sub-VM, the
"default" VM.
2012-06-23 12:27:32 -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 1a6ae81aa9 Require what to be notified for with block and Subprocess.execute
There was an issue before where the stdin buffer would always have space
so it would always yield that block and Ruby would spin at 100%. Now we
require all callers to say what they want to listen for. This drops
CPU down to almost nothing.

See GH-832
2012-06-01 17:02:12 +02: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 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 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 0d6248394c Tests for the Easy command base 2012-05-06 10:01:50 -07:00
Ryan LeCompte 2355a4b9a6 fix support for multiple unique easy commands 2012-05-06 01:47:43 -07:00
Mitchell Hashimoto 4cc3fb05df Passing unit tests 2012-05-05 22:32:19 -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 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 13a27eb723 More test cleanups 2012-05-01 22:10:10 -07:00
Mitchell Hashimoto 9b20173dfb Clean up some of the SSH key tests 2012-05-01 22:08:30 -07:00
Sean Wolfe 024f492cb3 Added spec to test the ssh key file permission changing. 2012-05-01 14:05:22 -07:00
Mitchell Hashimoto 30dd638e3c Remove legacy unit tests. 2012-04-19 21:45:17 -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 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 b38fb5e974 Loader uses the new configuration classes 2012-04-18 17:03:34 -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 d08a65e7f7 IsPortOpen utility 2012-03-23 10:26:29 -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 1b0a6a0895 Make unit tests pass from the safe_puts changes 2012-03-22 13:42:41 -07:00
Christian Rigdon b4e24c91f5 Add encrypted databag options to chef-solo 2012-03-13 16:27:11 -06: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 7b9f64f577 Allow data store to work even if file path is nil 2012-02-25 10:41:06 -08:00
Mitchell Hashimoto 2c823e98bd Fix crashing bug with `primary_vm` on Environment 2012-02-24 10:27:34 -08:00
Mitchell Hashimoto ba42fffed0 Convert line endings to Unix-style [GH-727] 2012-02-10 18:07:59 -08:00
Bob Van Zant ae62c9bd68 Convert example host only IPs to RFC1918 2012-02-08 14:50:33 -08:00
Mitchell Hashimoto 3eff28ac0d Don't strip color codes with ANSI escape code remover 2012-02-05 13:30:21 +01:00
Mitchell Hashimoto 912e4974db Registry will now cache result values.
This is actually required so that we can do things like this
in plugins:

Vagrant.actions[:up].insert(Foo, Bar)
2012-01-28 17:31:50 -08:00
Mitchell Hashimoto d1e78f791d Remove test warnings, add ANSI escape code remover 2012-01-23 19:24:32 -08:00
Mitchell Hashimoto d487e286f4 Don't merge config keys that start with __.
This allows config classes to store internal state somehow.
2012-01-19 20:54:09 -08:00
Mitchell Hashimoto be97cec8b5 Allow shell expansions in shared folder guest paths again [GH-656] 2012-01-19 20:14:05 -08:00
Mitchell Hashimoto bdb591bc0f Tests that boolean configs are merged up properly [GH-651] 2012-01-18 18:51:15 -08:00
Mitchell Hashimoto 52a464a62c Push a failing acceptance test as a reminder of a missing feature 2012-01-13 00:07:23 -08:00
Mitchell Hashimoto 1380bc6ae7 Basic package acceptance tests 2012-01-12 23:52:25 -08:00
Mitchell Hashimoto 4cfabc690b Fix a failing unit test 2012-01-11 23:57:19 -08:00
Mitchell Hashimoto 7ddee76c00 Passing acceptance tests again 2012-01-11 23:21:07 -08:00
Mitchell Hashimoto f0b77d2f30 Additional fixes + tests for shell expansion [GH-633] 2012-01-11 22:56:15 -08:00
Mitchell Hashimoto 60b6d9ca9f Clarify comment on test 2012-01-11 22:16:00 -08:00
Mitchell Hashimoto 863ebe2d2f Custom merging for VM config 2012-01-11 22:12:49 -08:00
Mitchell Hashimoto 51353d51fc Test base merge 2012-01-11 21:31:19 -08:00
Mitchell Hashimoto bfb52ba7dc Top merges things in each key one by one by calling `merge` 2012-01-11 21:22:55 -08:00
Mitchell Hashimoto d13dd482b5 Some Config::Top class tests 2012-01-11 21:09:52 -08:00
Mitchell Hashimoto 008132b3cb Run each config proc only once 2012-01-11 20:59:21 -08:00
Mitchell Hashimoto 7c9c6e34ce Change caching behavior of config procs for the config loader 2012-01-11 16:58:40 -08:00
Mitchell Hashimoto 638881614a Test that multiple provisioners can be used 2012-01-10 22:04:31 -08:00
Mitchell Hashimoto bb2a473549 Added a `--provision-with` flag to specify provisioners to use. [GH-367] 2012-01-10 22:03:22 -08:00
Mitchell Hashimoto 566a751d6f Test that --no-provision works. 2012-01-10 21:29:26 -08:00
Mitchell Hashimoto f89479f3aa Basic host only network test 2012-01-10 21:25:36 -08:00
Mitchell Hashimoto 836468a51e Test the `:create` flag on shared folders 2012-01-10 21:20:24 -08:00
Mitchell Hashimoto 29ced979a2 Test for DNA json in Chef Solo 2012-01-10 21:14:16 -08:00
Mitchell Hashimoto 18cdcb4330 Acceptance tests for chef solo, fixed a bug it found. 2012-01-10 21:08:43 -08:00
Mitchell Hashimoto f264932430 Move network tests out into a module so other tests can use it 2012-01-10 20:47:26 -08:00
Mitchell Hashimoto 0c0d456db2 Add `--force` flag to `box add` [GH-631] 2012-01-10 20:37:33 -08:00
Mitchell Hashimoto 7eafb5fc1f Acceptance test that we can't add boxes with the same name 2012-01-10 18:45:38 -08:00
Mitchell Hashimoto d430d62941 Test overriding ports works properly 2012-01-08 23:29:40 -08:00
Mitchell Hashimoto 29eb419c86 Port forwarding tests pass again 2012-01-08 23:17:29 -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 97f7fa633d Re-implement how networking is done internally 2012-01-02 19:51:38 -08:00
Mitchell Hashimoto 43fcca3dcb Retryable test 2011-12-26 17:38:47 -08:00
Mitchell Hashimoto 15a625275e HashWithIndifferentAccess test 2011-12-26 17:27:56 -08:00
Mitchell Hashimoto 91562e2111 FileChecksum test 2011-12-26 17:24:44 -08:00
Mitchell Hashimoto f65a6c3c6f `vagrant ssh -c` stderr now goes to stderr on the host as well 2011-12-26 10:03:12 -08:00
Mitchell Hashimoto e07280593d `vagrant ssh -c` will now exit with the same exit status of the command [GH-598] 2011-12-26 09:58:10 -08:00
Mitchell Hashimoto d80ff0a27f Pull out port collision detection/correction into the CheckPortCollision middleware 2011-12-25 10:13:08 -08:00
Mitchell Hashimoto 4e547becab Tests passing for GH-602 2011-12-25 09:57:20 -08:00
Mitchell Hashimoto fc9bda08cd Failing test for port collision on `resume` [GH-602] 2011-12-25 09:29:22 -08:00
Mitchell Hashimoto 919f7adaa3 Port collision with SSH test. 2011-12-24 22:25:02 -08:00
Mitchell Hashimoto 1f0720dfc2 Clean up the port forwarding test a bit 2011-12-24 21:40:08 -08:00
Mitchell Hashimoto f7275f5113 Test port forwarding basics 2011-12-24 17:59:10 -08:00
Mitchell Hashimoto 963bdff9fd Use Vagrant::Util::Subprocess for acceptance tests 2011-12-22 21:46:43 -08:00
Mitchell Hashimoto 40fdab3de8 DataStore tests and slight modifications 2011-12-22 21:18:59 -08:00
Mitchell Hashimoto e3426211bc Vagrant::Action::Warden unit tests 2011-12-22 20:41:01 -08:00
Mitchell Hashimoto 3cd262ed75 Unit tests for Vagrant::Action::Builder 2011-12-22 20:17:45 -08:00
Mitchell Hashimoto dfeafa3776 Fix halt issues and acceptance test associated with it 2011-12-22 13:38:30 -08:00
Mitchell Hashimoto 703f455d5a `vagrant version` is gone, so remove the acceptance test for it 2011-12-18 13:51:58 -08:00
Mitchell Hashimoto a8f5ed1863 Require vagrant environments for some commands. 2011-12-18 13:26:15 -08:00
Mitchell Hashimoto c2e3a3050a Ruby 1.8.7 compatibility 2011-12-17 20:22:46 -08:00
Mitchell Hashimoto e71007d47e `vagrant destroy` 2011-12-17 11:05:49 -08:00
Mitchell Hashimoto b292008f3b Change parse_options a bit to automatically add help and detect invalid options 2011-12-17 09:25: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 eda286b476 Config classes are registered via a registry now 2011-12-15 20:32:33 -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 2d0769ee4a Stub a test out for chef solo 2011-12-14 19:06:44 -08:00
Mitchell Hashimoto 9e4475cb77 Test running shell scripts inline 2011-12-14 19:02:10 -08:00
Mitchell Hashimoto 6dbade0fc6 Get shell provisioning working again, acceptance test to prove it 2011-12-13 23:45:56 -08:00
Mitchell Hashimoto d6b325e887 Clean up TODOs in acceptance tests 2011-12-13 23:19:50 -08:00
Mitchell Hashimoto 668bab0ba9 Better host loading scheme 2011-12-11 23:22:44 -08:00
Mitchell Hashimoto b8d40ea463 Registry is enumerable 2011-12-11 18:29:42 -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 42a5e02db4 Clean up test load paths 2011-12-11 15:53:11 -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 e15b974c15 Fix more tests to expect error messages on stderr 2011-12-10 13:50:46 -08:00
Mitchell Hashimoto c41e758a0a box acceptance tests passing again 2011-12-10 13:35:03 -08:00
Mitchell Hashimoto 5c6ca57409 Throw an error if a box already exists when calling box.add 2011-12-10 13:09:03 -08:00
Mitchell Hashimoto 739d5ffb5f Lazy load attributes for runners. Get box repackage working. 2011-12-09 20:24:34 -08:00
Mitchell Hashimoto d9321ed4d4 Box destroy works again 2011-12-09 18:06:34 -08:00
Mitchell Hashimoto d92f3d8c6d Box add works again with new env stuff 2011-12-09 17:33:30 -08:00
Mitchell Hashimoto aeb6533607 Fix issue with Tempfile in test being deleted 2011-12-09 17:26:06 -08:00
Mitchell Hashimoto 56663b5952 Remove dependence on Vagrant::Environment on downloaders 2011-12-09 15:18:43 -08:00
Mitchell Hashimoto 3c8261f4ac Add :ui to the globals for the action runner 2011-12-09 14:50:42 -08:00
Mitchell Hashimoto b31c3d458c Action runner supports global parameters 2011-12-09 14:44:43 -08:00
Mitchell Hashimoto bbb8f0ac2c Integrate new action runner/registry into Vagrant::Environment 2011-12-09 14:39:39 -08:00
Mitchell Hashimoto daf711fd80 Separate Vagrant::Action into Runner and Registry 2011-12-09 14:22:03 -08:00
Mitchell Hashimoto 5bfcbcba66 Remove step stuff. Failed experiment for now. Too radical for point release. 2011-12-09 13:40:49 -08:00
Mitchell Hashimoto 2c73de0043 The proper enter/exit sequence is called for multisteps 2011-12-06 18:45:37 -08:00
Mitchell Hashimoto 822226cae4 MultiStep does not allow composing steps that do not work together 2011-12-06 18:31:07 -08:00
Mitchell Hashimoto 73761dc92a MultiStep should do input/output validation 2011-12-06 18:19:18 -08:00
Mitchell Hashimoto 7d3746b292 Multistep can now take parameters from any arbitrary step prior. 2011-12-06 09:46:57 -08:00
Mitchell Hashimoto 5b87165e97 Multistep tests pass again. 2011-12-05 21:08:31 -08:00
Mitchell Hashimoto c5eae41fd8 Revamp Step to be more like a Python with-context 2011-12-05 21:05:41 -08:00
Mitchell Hashimoto 683bbdaa3c Implement multistep 2011-12-04 18:09:18 -08:00
Mitchell Hashimoto 49d299956f Add the "Step" abstraction 2011-12-04 17:14:21 -08:00
Mitchell Hashimoto 8801bc7b1b Starting to revamp BoxCollection to not depend on env 2011-12-04 11:39:44 -08:00
Mitchell Hashimoto e2977e8948 Make VM names symbols again, since they're accessed often. 2011-12-03 19:33:44 -08:00
Mitchell Hashimoto 1921ce17e8 Propery load box configuration 2011-12-03 19:17:08 -08:00
Mitchell Hashimoto 99982fb26e VM-specific configuration now works. 2011-12-03 19:05:50 -08:00
Mitchell Hashimoto 73a672cff1 load_config! is kind of working again.
Specifically: Global configuration load appears to be working. More
unit tests should reveal if proper VM configuration is loading.
2011-12-03 18:31:17 -08:00
Mitchell Hashimoto cb5f6b57f4 Remove Vagrant 0.8.0 transition code. 2011-12-03 18:11:24 -08:00
Mitchell Hashimoto 02cc1447dc Configuration files are only loaded once 2011-12-03 17:42:16 -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 1355487a04 Environment UI class can now be set through the environment init 2011-12-03 16:07:34 -08:00
Mitchell Hashimoto fe442faefa Move unit tests into the unit_legacy folder 2011-12-03 15:44:08 -08:00
Mitchell Hashimoto c37f16b754 Remove final logger reference 2011-12-01 21:56:56 -08:00
Mitchell Hashimoto 282bf37350 Get the tests passing 2011-12-01 21:56:55 -08:00
Mitchell Hashimoto 27c4d61e67 Upgrade to childprocess 0.2.3 and remove our hacky with_env_changes 2011-11-27 16:11:07 -07:00
Mitchell Hashimoto 0279cc1edf Do not buffer output for tests 2011-11-27 11:16:24 -07:00
Mitchell Hashimoto 1155983307 Get unit tests passing again 2011-11-25 23:55:17 -07:00
Darrin Wortlehock 4c01a87ab3 Adding support for 'no_proxy' environment variable to suppress proxy in http downloader 2011-11-24 21:54:35 -07:00
Mitchell Hashimoto c2ef1329aa Get tests passing for GH-508 2011-11-24 21:52:31 -07:00
Mitchell Hashimoto db491e1f9b Modify unit tests a bit 2011-11-24 21:31:30 -07:00
Mitchell Hashimoto 7e276cf4d8 Basic resume tests 2011-11-24 16:28:28 -07:00
Mitchell Hashimoto d03744c5e1 Test that `vagrant up` also works for resuming 2011-11-24 16:21:21 -07:00
Mitchell Hashimoto f9653bf8d2 Some suspend tests 2011-11-24 16:15:45 -07:00
Mitchell Hashimoto 2dc9bad97d Fix missing variable in tests 2011-11-24 14:15:36 -07:00
Mitchell Hashimoto 87767e24d0 Fix test harness where blocking could occur on IO read.
We had issues with the CI where some tests would sometimes hang
on cleanup when it would call VBoxManage, even with a timeout.
My only assumption is that this is happening as it waits on `readline`,
so we do a `read_nonblock` which will help immensely.
2011-11-24 14:13:22 -07:00
Mitchell Hashimoto 1eb3845405 CI: Schedule each unit/acceptance pair by platform it is testing 2011-11-22 23:07:33 -08:00
Mitchell Hashimoto fba9f7c473 Test that a VM can be brought back up after halting 2011-11-22 21:47:10 -08:00
Mitchell Hashimoto 1ed1650fb6 `vagrant halt` acceptance tests 2011-11-22 19:34:25 -08:00
Mitchell Hashimoto 5e4dffb7e1 Test: Don't worry if VBoxManage failed. 2011-11-22 19:28:21 -08:00
Justin Brown dcef64fa0d Remove the chef dependency on the default 'v-root' shared folder. 2011-11-22 19:03:52 -08:00
Mitchell Hashimoto 8651127ead Add tag for the bug that a test addresses 2011-11-22 18:46:43 -08:00
Mitchell Hashimoto 5d684b9001 Reload the configuration for all VMs after downloading a box. Fixes GH-564 2011-11-21 22:39:12 -08:00
Mitchell Hashimoto bac87f2478 Complete the test (still failing) 2011-11-21 22:09:51 -08:00
Mitchell Hashimoto d71a78eacf Failing acceptance test for GH-564 2011-11-21 21:55:03 -08:00
Mitchell Hashimoto 315733703a Tempfile no longer needed in isolated env 2011-11-21 21:18:15 -08:00
Mitchell Hashimoto 203056a0db Switch posix-spawn to childprocess for better cross-OS support 2011-11-21 21:16:51 -08:00
Mitchell Hashimoto 2174d02439 Add TODOs to the destroy test 2011-11-20 13:42:06 -08:00
Mitchell Hashimoto 3a18119774 Fix failing destroy test for requiring a VM 2011-11-20 13:39:54 -08:00
Mitchell Hashimoto 38d28800be Destroy acceptance tests 2011-11-20 13:37:01 -08:00
Mitchell Hashimoto cebd66d8e6 Test: Add a timeout to cleaning up the VM environment 2011-11-20 10:44:09 -08:00
Mitchell Hashimoto 224c981846 Test: Add "timeout" parameter to execute in tests 2011-11-20 10:38:41 -08:00
Mitchell Hashimoto 0036d1e131 Custom builders for each OS type 2011-11-19 21:30:51 -08:00
Mitchell Hashimoto 1e6918cb2b buildbot: Enable IRC bot 2011-11-19 21:02:20 -08:00
Mitchell Hashimoto dd92f32c3a buildbot: Set timeout to 3600 seconds for acceptance tests 2011-11-19 20:35:48 -08:00
Mitchell Hashimoto 627fa4295f buildbot: Better failure styling on CI 2011-11-19 17:36:43 -08:00
Mitchell Hashimoto 96639d78d4 buildbot: Add style for failed builds 2011-11-19 17:32:54 -08:00
Mitchell Hashimoto 9dd0aab37f Remove unused build steps 2011-11-19 16:45:00 -08:00
Mitchell Hashimoto a6cee79633 Buildbot: Update waterfall headers 2011-11-19 13:33:08 -08:00
Mitchell Hashimoto 2ef8206ff2 buildbot: Another slight styling update to change page 2011-11-19 13:31:21 -08:00
Mitchell Hashimoto 21c403965b buildbot: Update change page 2011-11-19 13:30:10 -08:00
Mitchell Hashimoto b11db62677 buildbot: Homepage styling 2011-11-19 13:19:48 -08:00
Mitchell Hashimoto 40c1169d4c Buildbot: Design for slaves pages 2011-11-19 13:04:46 -08:00
Mitchell Hashimoto efa29f1859 buildbot: Start redesigning the CI 2011-11-19 12:55:04 -08:00
Mitchell Hashimoto 9ee301c525 Buildbot: Make the acceptance tests dependent on the unit tests passing 2011-11-13 20:57:51 -08:00
Mitchell Hashimoto 98919fbec5 Add buildsteps and builders for acceptance tests 2011-11-13 20:42:22 -08:00
Mitchell Hashimoto a8909cbb0b Acceptance tests now take a "box_directory" instead of paths to individual boxes 2011-11-13 13:49:21 -08:00
Mitchell Hashimoto bb06a20843 Add `rake acceptance:boxes` to download required boxes for tests 2011-11-13 13:37:30 -08:00
Mitchell Hashimoto b62d7c317c Generalize the builder creation methods a bit to prepare for dependent builders 2011-11-12 16:51:00 -08:00
Mitchell Hashimoto 5d98c5cab7 Buildbot: Require user auth for forcing builds 2011-11-12 16:09:30 -08:00
Mitchell Hashimoto c0f3e6b954 CI: Fix deploy to work properly 2011-11-12 15:53:52 -08:00
Mitchell Hashimoto a090eb36fb Don't allow any commands on the Vagrant CI right now 2011-11-12 15:52:27 -08:00
Mitchell Hashimoto 7d63b4d0ab Deploy/setup scripts for the buildmaster 2011-11-12 15:51:26 -08:00
Mitchell Hashimoto e1a4287ef5 Add choices to a vendor/ directory 2011-11-12 13:27:29 -08:00
Mitchell Hashimoto aeae640c34 Buildbot: Add a scheduler for the master branch to run 2011-11-12 13:18:19 -08:00
Mitchell Hashimoto 5974fbcb16 Buildbot: Enable github hook 2011-11-12 13:14:16 -08:00
Mitchell Hashimoto 49135dfd24 Buildbot runs unit tests! Yay! 2011-11-12 13:06:37 -08:00
Mitchell Hashimoto 44540f369d Add buildbot code for what will become the Vagrant CI 2011-11-12 10:20:07 -08:00
Mitchell Hashimoto 60a350f9c7 Test that `vagrant up` works if Vagrantfile is in a parent directory 2011-11-11 00:19:46 -08:00
Mitchell Hashimoto f0aa19f696 Test shared folders for basic up tests 2011-11-11 00:10:42 -08:00
Mitchell Hashimoto 7a07a78bf1 Shared contexts for Vagrant command similarities 2011-11-10 21:54:58 -08:00
Mitchell Hashimoto 8787c4b876 Acceptance tests: Get rid of remaining "assert" statements 2011-11-08 23:09:04 -08:00
Mitchell Hashimoto 4443a323e5 Create the output matcher, switch to RSpec style matchers 2011-11-08 23:03:15 -08:00
Mitchell Hashimoto 87bc6ec63f RSpec is coming in for acceptance tests. More details follow...
RSpec was chosen to be used for acceptance tests for many reasons:

* The tests are actually much cleaner now. It is clearer to see what
  is being tested, and what is being used for setup.
* Matcher transition will be coming soon. This will really clean up
  a lot of the "assert" boilerplate all over. There was a lot of repetition
  in this area.
* Shared examples will help greatly for testing common error cases
  for many commands.
* The test runner for RSpec is simply much better. Being able to specify
  the exact test to run by line, for example, is a great help.
2011-11-06 23:47:23 -08:00
Mitchell Hashimoto 699c67c1aa Test: Able to pass a command to execute via `vagrant ssh` command 2011-11-06 22:35:53 -08:00
Mitchell Hashimoto 2796c441ea Add more SSH tests 2011-11-06 22:21:02 -08:00
Mitchell Hashimoto 3412a11c51 Move `vagrant ssh` test into ssh_test.rb 2011-11-06 22:17:27 -08:00
Mitchell Hashimoto 641a581d6b Rename the up test 2011-11-06 22:15:59 -08:00
Mitchell Hashimoto dba2a4e3e7 Check that VirtualBox isn't running at the beginning of the acceptance tests 2011-11-06 19:21:29 -08:00
Mitchell Hashimoto 2c607ca4f4 Wait for VBoxSVC to disappear between tests. 2011-11-06 19:20:14 -08:00
Mitchell Hashimoto 2febc9fcff Isolated environment removes virtual machines after run. 2011-11-06 18:45:49 -08:00
Mitchell Hashimoto 797f124e6d Test: `vagrant up` should bring up a machine ready for SSH 2011-11-06 18:28:05 -08:00
Mitchell Hashimoto e86628c023 test: `vagrant up` should fail if no Vagranfile is found 2011-11-06 18:23:06 -08:00
Mitchell Hashimoto a80e579af7 Add a bunch of test TODOs 2011-11-06 13:44:44 -08:00
Mitchell Hashimoto 421a1fb341 First "up" based acceptance test. Multiple fixes to test harness.
* First test that uses "vagrant up"
* Allow interaction with processes executed during `execute` so that
  we can enter input into STDIN and receive data from STDOUT in
  real time.
* Fix some issue with `waitpid2`, which actually speeds up all tests
  quite a bit.
2011-11-06 13:30:49 -08:00
Mitchell Hashimoto f83c1b3c27 Fix regression introduced with cab1e4e 2011-11-05 15:19:03 -07:00
Mitchell Hashimoto 66761ae3ff Comments on the Output class 2011-11-05 15:01:00 -07:00
Mitchell Hashimoto bb09b249b6 Use output helpers instead of direct regex's in tests.
We're not trying to test the format of the output, we're trying
to test the meaning of the output, so hide that state away in
another class.
2011-11-05 14:59:17 -07:00
Mitchell Hashimoto 55f2ac3f54 Isolated env will log output of command as it comes. Update tests. 2011-11-05 14:44:24 -07:00
Mitchell Hashimoto bb4f7b6418 `vagrant init` acceptance tests 2011-11-05 14:09:18 -07:00
Mitchell Hashimoto 56d4a7f14e Digest/SHA1 not required here 2011-11-05 13:30:57 -07:00
Mitchell Hashimoto 08daf11580 Add loggers to acceptance tests 2011-11-03 23:07:51 -07:00
Mitchell Hashimoto 9a551837d6 Tests for removing and repackaging a box 2011-11-03 23:05:06 -07:00
Mitchell Hashimoto d9d8029783 Test that adding an invalid box results in an error 2011-11-03 22:22:19 -07:00
Mitchell Hashimoto d0e191a96c Make some changes to have tests run on 1.8.7 2011-11-03 22:12:51 -07:00
Mitchell Hashimoto cab1e4e49b Make the file download the default for `vagrant box add`. Tests. 2011-11-03 21:56:38 -07:00
Mitchell Hashimoto c9cf2867ea Some `vagrant box` tests 2011-11-03 21:38:15 -07:00
Mitchell Hashimoto 78f8705c5b Make the `vagrant` tests cleaner 2011-11-03 21:38:07 -07:00
Mitchell Hashimoto f741d81582 Fix color tests 2011-11-02 23:37:19 -07:00
Mitchell Hashimoto 974c180d8f Tests that color and --no-color work properly 2011-11-02 23:16:29 -07:00
Mitchell Hashimoto d753b750e9 Do not output color if stdout is not a TTY 2011-11-02 21:59:35 -07:00
Mitchell Hashimoto 2bd0b76fd2 Set isolated environment working dir to the proper directory 2011-11-02 21:55:54 -07:00
Mitchell Hashimoto b3e4efb786 Basic box tests 2011-11-02 21:42:09 -07:00
Mitchell Hashimoto a19fa6a07c Cleanup temporary directory after running 2011-11-02 21:41:41 -07:00
Mitchell Hashimoto 4c6f8d2b52 Setup isolated environment to setup a custom HOME directory as well 2011-11-02 21:38:48 -07:00
Mitchell Hashimoto ec38417abb Add more acceptance tests for printing the Vagrant version 2011-11-02 21:15:53 -07:00
Mitchell Hashimoto 4c9ad26115 Acceptance tests starting code is in. Version is an example. 2011-11-02 21:09:38 -07:00
Justin Brown 0c2fc0cae2 Make init respect the env's cwd. 2011-10-30 22:48:35 -07:00
Mitchell Hashimoto 245bcf436f Have tests pass on Ruby 1.8.x 2011-10-30 22:23:36 -07:00
Ticean Bennett dab80649b8 Added Basic Auth support to HTTP downloader. 2011-10-14 18:37:24 +02:00
Mitchell Hashimoto 7219f3d05b Show warning if forwarding port less than 1024 [closes GH-487] 2011-09-11 23:56:02 -07:00
Samer Abukhait 99646735d0 Don't do the port threshold check if running under root 2011-09-11 23:26:55 -07:00
Mitchell Hashimoto 1cfef2734a Fix crashing bug if .vagrant is invalid. [closes GH-496] 2011-09-11 23:23:17 -07:00
Mitchell Hashimoto ce5d989384 Moving unit tests to test/unit 2011-08-28 23:10:32 -07:00
Mitchell Hashimoto 327a6f9d94 Add a check for VM accessibility before every action 2011-08-28 20:32:22 -07:00
Mitchell Hashimoto bf32fb4de8 Args can now be specified to the shell provisioner [closes GH-475] 2011-08-28 00:01:23 -07:00
Mitchell Hashimoto 8ff269c341 Chef solo roles_path and data_bag_path should be a string 2011-08-02 23:30:57 -07:00
Mitchell Hashimoto ed8bf34153 Chef client accepts nil run list to load run list from server [closes GH-429] 2011-07-25 21:33:36 -07:00
Mitchell Hashimoto 3f9534ae7d Tests passing from Puppet update 2011-07-22 23:56:04 -07:00
Mitchell Hashimoto 14ca7ecc24 Better validation for networking configuration 2011-07-22 23:53:19 -07:00
Mitchell Hashimoto 16c21ed9d1 More terse test 2011-07-22 23:07:44 -07:00
Jeff Rafter 64ae5bcdf9 Rework indexes on chef solo provisioner to fix roles, data_bags [closes GH-425] 2011-07-22 23:02:16 -07:00
Mitchell Hashimoto 270da0da80 Failing test case for #407 2011-07-22 22:57:04 -07:00
Mitchell Hashimoto 6300bebe72 Disable SSH caching for now 2011-07-21 14:55:03 -07:00
Mitchell Hashimoto 0dacd78b10 Add `forwarded_port_destination` to find SSH port by that instead of key. [closes GH-375] 2011-07-10 22:41:35 -07:00
Mitchell Hashimoto 8248679fab Fix bug with loading Vagrantfiles with new case changing 2011-07-10 16:08:39 -07:00
Mitchell Hashimoto 0db2ec9d43 Remove ResourceLogger and PlainLogger 2011-07-10 15:35:45 -07:00
Mitchell Hashimoto 442584fbac Change default home directory to ~/.vagrant.d [closes GH-333] 2011-07-09 18:55:33 -07:00
Mitchell Hashimoto 52c5c79edf Retry connection on Net::SSH::Disconnect [closes GH-313] 2011-07-09 17:02:41 -07:00
Mitchell Hashimoto 5143556065 Standardize on Util::Platform 2011-07-09 16:51:04 -07:00
Mitchell Hashimoto 1aed9f0f38 Remove leopard/tiger checking and just retry exec using safe_exec 2011-07-09 16:37:12 -07:00
Mitchell Hashimoto 874a9763f5 Only one copy of Vagrant can run at any given time. [closes GH-364]
This is to protect against issues with VirtualBox overwriting
each other.
2011-07-09 16:21:38 -07:00
Mitchell Hashimoto 24337b0ca4 vagrantfile now is lowercase. backwards compatible, though. [closes GH-399] 2011-07-09 15:18:52 -07:00
Mitchell Hashimoto 0b02deb37a Share folders go into the modify pipeline 2011-07-08 12:07:27 -07:00
Mitchell Hashimoto d797e48389 Clear shared folders uses new modify pipeline 2011-07-08 12:05:18 -07:00
Mitchell Hashimoto 79c46b4ec1 Forward ports now uses modify pipeline 2011-07-08 12:04:01 -07:00
Mitchell Hashimoto 027b22eca0 Clear forwarded ports to the modify pipeline 2011-07-08 12:02:35 -07:00
Mitchell Hashimoto 6b2feae0e8 Create single interal modify block to sync VM modifications 2011-07-08 11:59:29 -07:00
Mitchell Hashimoto f3c44fba2f Clear shared folders now in the context of a single write lock 2011-07-08 00:26:28 -07:00
Mitchell Hashimoto 60708873e4 Clear forwarded ports is now done in context of customize block 2011-07-08 00:20:15 -07:00
Mitchell Hashimoto 268f7f7bc2 Improved lock-reducing of forwarded ports action 2011-07-08 00:03:33 -07:00
Mitchell Hashimoto 2492f479d5 Tests passing from recent action changes 2011-07-07 23:58:42 -07:00
Mitchell Hashimoto d77738b37f Cache SSH connections to VMs. 2011-07-07 23:15:19 -07:00
Mitchell Hashimoto e625dba5ab Multiple Chef provisioners no longer overwrite cookbook folders. [closes GH-407] 2011-07-07 22:49:58 -07:00
Mitchell Hashimoto 729d62d1ea Chef solo no longer overwrites share folders when multiple provisioners exist 2011-07-07 21:38:07 -07:00
Mitchell Hashimoto 5ae483ef85 Provisioners now properly share folders again 2011-07-07 10:38:32 -07:00
Mitchell Hashimoto 19eaddcd3a Action to call `cleanup` method on provisioners during destroy. 2011-07-06 23:02:19 -07:00
Mitchell Hashimoto 1de152ae36 Move provisioning prepare up into the `call` method 2011-07-06 22:50:49 -07:00
Mitchell Hashimoto bdc316f4ef Provisioner configuration no longer cleared when box is downloaded during an `up`. [closes GH-308] 2011-07-06 22:08:37 -07:00
Mitchell Hashimoto 8733a745ce Can now specify owner/group of shared folders. [closes GH-350] 2011-07-05 23:53:23 -07:00
Mitchell Hashimoto dcaca22810 Show nice error message for bad HTTP downloads [closes GH-403] 2011-07-05 22:48:02 -07:00
Mitchell Hashimoto c27d857387 Rename :chef_server to :chef_client. [GH-359] 2011-07-03 17:20:06 -07:00
Jamie Winsor 7c89ef3de2 Add support for Chef encrypted data bags: http://wiki.opscode.com/display/chef/Encrypted+Data+Bags
Add two configuration options to chef_server provision:
  encrypted_data_bag_secret_key_path - the location of your encrypted secret key on your local machine
  encrypted_data_bag_secret - the location you wish to place the key on the target machine and the value of Chef::Config[:encrypted_data_bag_secret]. Default value of "/etc/chef/encrypted_data_bag".
2011-07-02 21:20:22 -07:00
Mitchell Hashimoto 1e33aa9ab4 Get the tests passing for the Chef provisioner 2011-06-16 18:07:11 -06:00
Mitchell Hashimoto 338b3ac094 Run Chef commands in a single command [GH-390] 2011-06-16 18:04:55 -06:00
Maksim Horbul 23bb514100 provide absolute paths for solo.rb and dna.js in order to make it work correctly with the restart cookbook https://github.com/dreamcat4/site-cookbooks/tree/COOK-245/restart/ 2011-06-13 14:08:21 -07:00
Mitchell Hashimoto c117dba4ab Refactor and tests for GH-342 (chef enhancements) 2011-05-16 12:49:05 -07:00
Mitchell Hashimoto f30ef2b8a9 Merge https://github.com/rcreasey/vagrant 2011-05-16 12:37:21 -07:00
Ryan C. Creasey d0000e9f49 adding tests for providing data bags into the vm. 2011-05-12 08:06:57 -07:00
Mitchell Hashimoto b8c2b6cde4 Fix test incompat with Ruby 1.8.6 2011-05-12 00:04:11 -07:00
Pat Collins 5f751d5a77 Provide a method to specify a Chef environment in a Vagrantfile. 2011-05-11 23:31:36 -07:00
Mitchell Hashimoto 234c47a3a7 Retryable can take multiple exceptions to retry on 2011-04-19 22:24:52 -07:00
Dimitri Aivaliotis 6f9387adc6 added :file_cache_path and :file_backup_path as configurable parameters
removed deprecated :file_store_path parameter
2011-02-25 19:33:01 -08:00
Mitchell Hashimoto 3c45df0a88 Can now configure what shell to sudo with (default: bash) 2011-02-08 23:06:05 -08:00
Mitchell Hashimoto 22f085dc5d Tests for mac address setting on host only network 2011-02-08 19:42:32 -08:00
Mitchell Hashimoto 6d6ca39795 Host only networking only doesn't work on 64-bit Windows 2011-01-29 21:03:27 -08:00
Mitchell Hashimoto 8d55bdcae5 Style tweaks and tests added for changing host name 2011-01-28 17:41:48 -08:00
Mitchell Hashimoto 1e931eaba6 chmod and execute shell provisioning script in a single session 2011-01-25 11:43:25 -08:00
Mitchell Hashimoto 75e283c81a New `shell` provisioner which uploads and executes a script as root on VM 2011-01-23 12:00:50 -08:00
Mitchell Hashimoto 2821dcee7f SSH commands which use sudo compatible with sudo < 1.7.0 2011-01-21 23:38:42 -08:00
Mitchell Hashimoto 59fa9ac46b net-ssh 2.1.0. Adds "IdentitiesOnly" support for net-ssh, fixing problems. 2011-01-19 22:00:38 -08:00
Mitchell Hashimoto 9673b7eaee Remove config.ssh.port, it actually never did anything 2011-01-14 00:36:49 -08:00
Mitchell Hashimoto 66bf56a073 Fix issue with puppet mounting shared folder as subfolder of another, causing spurious folder creation on the host 2011-01-14 00:21:20 -08:00
Mitchell Hashimoto 302f9ff0bb Puppet provisioner can mount/configure module paths from local directory 2011-01-13 21:02:26 -08:00
Mitchell Hashimoto db20f399fb Improved puppet config validation 2011-01-13 17:27:39 -08:00
Mitchell Hashimoto 8d24f779f0 Provisioner config object should have access to the top config 2011-01-13 16:54:34 -08:00
Mitchell Hashimoto 3051174dfe Chef server config validation testing 2011-01-12 17:00:01 -08:00
Mitchell Hashimoto 2a5070dad7 All provisioners are now RVM-friendly 2011-01-12 16:57:19 -08:00
Mitchell Hashimoto 93d241f4ce Puppet is now RVM friendly 2011-01-12 16:28:45 -08:00
Mitchell Hashimoto 8482eeff0b net-ssh-shell support for shell-based SSH interactions 2011-01-12 15:21:54 -08:00
Mitchell Hashimoto a4a02675ad Add a nice full error message for the old-style provisioner setting 2011-01-12 01:19:21 -08:00
Mitchell Hashimoto 047f9970fe Support hash based options for provisioners 2011-01-12 01:02:53 -08:00
Mitchell Hashimoto 4e5a7aa6bf Fix order-dependent test 2011-01-12 00:14:16 -08:00
Mitchell Hashimoto 658affe8cd Provisioner config tests, fixed some bugs 2011-01-11 23:11:51 -08:00
Mitchell Hashimoto a91ad4d89f Fixed provisioners to the new conventions. Tests passing! 2011-01-11 22:37:09 -08:00
Mitchell Hashimoto cddccab9ae Provision action works again 2011-01-11 22:13:09 -08:00
Mitchell Hashimoto 85b8ccc2ec Provisioners now register themselves with their shortcut name 2011-01-11 19:52:55 -08:00
Mitchell Hashimoto 766607db49 Raise an error message if host only networking is not supported 2011-01-09 13:34:37 -08:00
Mitchell Hashimoto d00f314eb9 Systems can now respond to `distro_dispatch` to return specific distro systems 2011-01-09 13:06:26 -08:00
Mitchell Hashimoto 25ea67a9f7 Get rid of Ruby 1.8.7 warning in tests 2011-01-08 21:22:16 -08:00
Mitchell Hashimoto 8ce95318c7 Remove check for OSE version, since with VirtualBox 4 this distinction no longer exists. 2011-01-07 01:32:21 -08:00
Mitchell Hashimoto 9a158cf45a Set VAGRANT_HOME env var to change vagrant home directory 2011-01-06 19:21:23 -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
James Turnbull 3849355ef6 Basic Puppet Server provisioner 2011-01-06 13:33:22 -08:00
Mitchell Hashimoto 496f68fd6a Move SSH::Session to its own file 2011-01-05 16:45:05 -08:00
Petyo Ivanov b9e24090e9 Add X11 ssh forwarding option (off by default). 2011-01-04 20:17:04 -08:00
Mitchell Hashimoto e0c716e454 Fix automount select to accept key/val instead of just val 2011-01-04 20:10:34 -08:00
Mitchell Hashimoto c1e0504c66 Improve the file downloader test to use a real file 2010-12-31 22:00:11 -06:00
Mitchell Hashimoto fb8f0c010b Reload config after downloading box during `up` [closes GH-231] 2010-12-31 21:41:05 -06:00
Mitchell Hashimoto e12d96d4df Only automount NFS folders which have guest path specified 2010-12-31 02:24:49 -06:00
Mitchell Hashimoto c1be64ae61 Shared folders with no guest path are not automounted [closes GH-184] 2010-12-31 02:19:27 -06:00
Mitchell Hashimoto 82d26f29e8 Tests passing for shared folder mount changes. 2010-12-30 21:06:21 -06:00
Mitchell Hashimoto 681c4a1233 Fix tests dealing with VirtualBox 4 version checks 2010-12-30 21:04:23 -06:00
Mitchell Hashimoto e19788701e Don't disable networks on halt/destroy. 2010-12-24 19:02:11 -08:00
Mitchell Hashimoto c32ab0442c Change the mechanism by which useless host only networks are detected and destroyed 2010-12-24 18:57:44 -08:00
Mitchell Hashimoto 4d8e3dc1bf Make this test actually test something 2010-12-24 18:41:18 -08:00
Mitchell Hashimoto 2018fd8645 "vbox-prev" bug still exists, but filename changes for VB4 2010-12-24 18:35:46 -08:00
Mitchell Hashimoto e4488c415e Update destroy to use new API for VB4 2010-12-24 15:19:31 -08:00
Mitchell Hashimoto 2358130c0e Show error if host only networking on Windows 2010-12-21 19:52:41 -08:00
Mitchell Hashimoto e98db8dc86 Determine SSH on main thread for up? to fix issues with multi-thread access on JRuby 2010-12-19 10:27:07 -08:00
Mitchell Hashimoto 59ae5747d0 Use timeout library instead of threads to check for VM boot 2010-12-18 18:50:59 -08:00
Brian P O'Rourke e1ed00f14c Enumerate vms according to definiton order. 2010-12-14 22:24:02 -08:00
Mitchell Hashimoto d0e3cf1210 config.puppet.options can be a string as well 2010-12-14 21:57:12 -08:00
Brice Figureau 6b46949550 Allow passing options to the Puppet provisioner
This allows for instance to pass the --modulepath options like this:

config.vm.puppet.options = ["--modulepath","modules"]

Which would call puppet with "--modulepath modules".

Signed-off-by: Brice Figureau <brice@daysofwonder.com>
2010-12-14 21:53:57 -08:00
Brice Figureau 446ab32e0e Allow to recursively include files when packaging a box
This allows to bundle with a box a set of puppet manifests or chef cookbooks.
This supports both shell globbing and recursive copy of full directories.

Usage:

vagrant package ... --include=manifests
This would bundle the whole manifests/ directory

vagrant package ... --include=id*
This would bundle all files with prefix id in the produced box

Signed-off-by: Brice Figureau <brice@daysofwonder.com>
2010-12-14 21:51:33 -08:00