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