Commit Graph

869 Commits

Author SHA1 Message Date
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
James Turnbull 6548bc9324 Adds a basic Puppet provisioner to Vagrant
This uses the Puppet binary and assumes a .pp file will be present
on the host machine.

By default it looks for manifests in the `manifests` directory (in the same root as
wherever your Vagrantfile is located). The default file uses the name of the box
being configured, for example `lucid.pp`.  Both options are configurable.
2010-12-07 16:57:00 -08:00
Mitchell Hashimoto 54f86f236c Test to verify solaris system 2010-12-07 16:52:18 -08:00
Mitchell Hashimoto 331e0841e5 Box collection reloads after downloading during CheckBox. [closes GH-229] 2010-11-30 20:19:24 -08:00
Ches Martin 8bff03fb80 BaseVMNotFoundError -> BaseVMNotFound and test [closes GH-200] 2010-11-03 21:35:39 -07:00
Mitchell Hashimoto ef50361f95 Nicer error message when box is not found. [closes GH-195] 2010-10-21 17:50:41 -07:00
Mitchell Hashimoto 39407694e3 Validate only certain command sequences [closes GH-188] 2010-10-13 18:59:25 -07:00
Mitchell Hashimoto 82d73ebe3c General validation middleware 2010-10-13 18:40:12 -07:00
Mitchell Hashimoto 6337cefb8b Disable Vagrantfile validation completely on load. see coming commits... 2010-10-12 21:08:33 -07:00
Mitchell Hashimoto 341e7916f4 Port collision type mismatches fixed. [closes GH-185] 2010-10-09 01:21:52 -07:00
Mitchell Hashimoto ebf1fa2fb1 Check if file exists on root path traversal [closes GH-182] 2010-10-08 18:23:38 -07:00
Mitchell Hashimoto f90016bb6f Only validate on the second-pass of loading configuration 2010-10-08 10:52:34 -07:00
Mitchell Hashimoto 5fcf10d6cd Validations to assure base MAC address is set 2010-10-08 10:44:19 -07:00
Mitchell Hashimoto c6b0fae318 Load sub-VM configuration on first-pass, allowing box loading for sub-VMs. [closes GH-166] [closes GH-181] 2010-10-08 10:34:33 -07:00
Mitchell Hashimoto 48e5f4fb86 Vagrantfiles with only one `config.vm.define` are now considered multi-VM. 2010-10-08 09:50:34 -07:00
Mitchell Hashimoto ba9cb19808 Configuration only validates on final Vagrantfile proc, allowing multi-VM to work correctly 2010-10-08 09:44:17 -07:00
Mitchell Hashimoto e36a9d3a0c Nice error message given if ".vagrant" is a directory and therefore can't be accessed. [closes GH-172] 2010-10-06 18:57:39 -07:00
Mitchell Hashimoto 12b769ce14 Removed final global test helper from test/test_helper.rb 2010-10-03 18:48:41 -07:00
Mitchell Hashimoto 3fe785ab72 Removed `mock_vm` test helper, which is unnecessary 2010-10-03 18:45:09 -07:00
Mitchell Hashimoto e5be4cc2b0 Removed unused test code 2010-10-03 18:37:03 -07:00
Mitchell Hashimoto eaaf55ea8a `up --no-provision` works again. This disables provisioning during the process. 2010-10-03 18:34:33 -07:00
Mitchell Hashimoto cf823cadb5 Action warden doesn't do recovery process on `SystemExit` exceptions, allowing double ctrl-C to work properly again. 2010-10-01 10:08:38 -07:00
Mitchell Hashimoto 3e54150f71 Box add checks if box exists before the download [closes GH-170] 2010-10-01 09:24:58 -07:00
Mitchell Hashimoto 61314c5e21 Only check for box directory if it is set during unpackage recovery [related to GH-170] 2010-10-01 09:20:18 -07:00
Mitchell Hashimoto bad251a20d NFS no longer attempts to clean exports file if VM is not created, which caused a stack trace during recovery. 2010-09-30 01:16:45 -07:00
Mitchell Hashimoto ed645417c7 Basic validation added for Chef configuration (both solo and server). 2010-09-30 01:09:36 -07:00
Mitchell Hashimoto 465392f99c config.vagrant validation tests 2010-09-30 00:55:00 -07:00
Mitchell Hashimoto 588ead6e45 Top config class is now available in all `Vagrant::Config::Base` subclasses. Useful for validation. 2010-09-30 00:50:50 -07:00
Mitchell Hashimoto c5b81b5998 SSH gives error message if `ssh` binary is not found. [closes GH-161] 2010-09-29 23:47:17 -07:00
Mitchell Hashimoto 0fcc1150c5 Revert "Instead of using Kernel#system, use custom piped solution"
This reverts commit 171f4184c0.
2010-09-29 23:38:07 -07:00
Mitchell Hashimoto 171f4184c0 Instead of using Kernel#system, use custom piped solution 2010-09-27 18:26:42 -07:00
Mitchell Hashimoto ea6904761f Check box action no longer needs to load_box! 2010-09-27 13:42:53 -07:00
Mitchell Hashimoto 1199c89a4a Fix issues with Ruby 1.8.7 where Vagrant wouldn't even run 2010-09-27 12:10:17 -07:00
Mitchell Hashimoto 85bbb5dd87 Switch config to not implicitly use I18n. 2010-09-21 20:38:19 -06:00
Mitchell Hashimoto b909adde1c Since I18n isn't automatic for UI class, get rid of _ prefix on options 2010-09-21 18:14:18 -06:00
Mitchell Hashimoto d003cc4f32 UI methods no longer automatically translate. Makes it easier for plugin developers. 2010-09-21 18:12:24 -06:00
Mitchell Hashimoto f0294039e1 Load config files (only) early so plugins are loaded from Vagrantfiles 2010-09-21 01:47:50 -06:00
Mitchell Hashimoto 3b735e545f Change VM loading to be lazy loaded so config can be loaded without VMs 2010-09-21 01:27:36 -06:00
Mitchell Hashimoto e3ff9c7ac3 Resource logger now logs to a "logs" directory in the home path 2010-09-20 09:58:19 -06:00
Mitchell Hashimoto 7d89d011fb Tests passing again due to config.vm.customize change earlier 2010-09-20 09:47:01 -06:00
Mitchell Hashimoto f37710a4bd Remove logger helper from action environment class 2010-09-20 09:44:51 -06:00
Mitchell Hashimoto ba8307712d Don't require root path to load an environment. (Makes `vagrant box` commands work again without a Vagrantfile) 2010-09-16 18:14:41 -06:00
Mitchell Hashimoto bae6c57230 Expose test helpers [closes GH-162] 2010-09-15 09:19:38 -06:00
Mitchell Hashimoto 90aaf5cb5e Command helpers `target_vms` now takes an optional string for the VM name 2010-09-15 08:38:56 -06:00
Mitchell Hashimoto d5fbf29ec0 Plugins. Documentation coming shortly. 2010-09-14 23:10:51 -06:00
Mitchell Hashimoto 036edfcc2a Only destroy the VM if the exception raised is not a Vagrant error 2010-09-14 00:48:31 -06:00
Mitchell Hashimoto 7c42300002 Expose the exception which triggers recovery methods through the "vagrant.error" environmental hash 2010-09-13 23:43:37 -06:00
Mitchell Hashimoto d5ad387f27 New `vagrant package` option `--vagrantfile` and changed semantics of `--include` (see CHANGELOG) 2010-09-12 23:20:13 -06:00
Mitchell Hashimoto 4b8878f5f7 Import uses the string path, rather than the pathname 2010-09-12 16:37:43 -06:00
Mitchell Hashimoto 714c94780c On import, only run destroy action if VM is created 2010-09-12 16:34:49 -06:00
Mitchell Hashimoto 7d73bec776 Disable networks only if VM is created 2010-09-12 16:31:38 -06:00
Mitchell Hashimoto e11d3bd4f7 Only halt if created and running 2010-09-12 16:29:35 -06:00
Mitchell Hashimoto 4335adc8f4 Only discard state if the VM is created 2010-09-12 16:26:32 -06:00
Mitchell Hashimoto 02cfb60387 Verify box with a string path, not pathname 2010-09-12 15:39:37 -06:00
Mitchell Hashimoto 79b303a1fc Send string, not pathname, to Minitar for decompression 2010-09-12 14:00:48 -07:00
Mitchell Hashimoto 5ce43a8ae0 Utilize pathname when available instead of doing just a File.join 2010-09-11 10:42:03 -07:00
Mitchell Hashimoto 2026bb0b1c Remove unnecessary class methods on Box class. Move commands over to use "boxes" on env 2010-09-11 10:33:49 -07:00
Mitchell Hashimoto 761da0de63 Remove method calls to "Box.find" and remove method 2010-09-11 10:21:35 -07:00
Mitchell Hashimoto 0ee21998f6 New BoxCollection class to keep track of all boxes. 2010-09-11 10:17:26 -07:00
Mitchell Hashimoto 4b17ac0f89 Environment#home_path is a Pathname object for easier manipulation 2010-09-11 09:18:33 -07:00
Mitchell Hashimoto 86465a36c0 Change method by which configuration classes register themselves to be cleaner 2010-09-11 09:02:55 -07:00
Mitchell Hashimoto f8e7431899 Retry SSH connect a few times before admitting defeat. 2010-09-09 00:28:21 -07:00
Mitchell Hashimoto a0ed4d0da8 Get rid of "mock_action_data" use "action_env" instead 2010-09-08 23:56:35 -07:00
Mitchell Hashimoto 16f3a3face Test helper `mock_environment` completely gone 2010-09-08 23:51:09 -07:00
Anko painting 650ff4b734 Allow downloading via a proxy if http_proxy environment variable is set. [closes GH-157] 2010-09-08 22:11:53 -07:00
Mitchell Hashimoto 73c223c885 Remove most of the remaining mock_environment calls. Only one remains. 2010-09-07 11:51:10 -07:00
Mitchell Hashimoto 8164644615 Converted most "mock_environment" tests to "vagrant_env" which uses real filesystem 2010-09-07 11:41:52 -07:00
Mitchell Hashimoto 3cca2f1bb4 Config loading test is now powered by real Vagrantfiles, rather than mocks 2010-09-07 11:30:48 -07:00
Mitchell Hashimoto 5f6e3acf40 Require root path on environment load 2010-09-07 10:52:58 -07:00
Mitchell Hashimoto 446d1155fe Add ruby-debug for tests in the Gemfile for MRI (both 1.8 and 1.9 version) 2010-09-07 01:19:11 -07:00
Mitchell Hashimoto 9a0834d263 Make environment tests fast again 2010-09-07 01:03:27 -07:00
Mitchell Hashimoto 5a13347fb4 Fix issue with local data store not being properly cleared for VM destruction 2010-09-07 01:02:11 -07:00
Mitchell Hashimoto 88fedb419e Update Environment#dotfile_path to take advantage of new Pathname object 2010-09-07 00:28:21 -07:00
Mitchell Hashimoto fe593c88b8 Environment#cwd and Environment#root_path are now pathname objects for more robust usage 2010-09-07 00:25:52 -07:00
Mitchell Hashimoto 84389580d6 Only run Environment#load! once 2010-09-07 00:07:22 -07:00
Mitchell Hashimoto 1478818939 Run "environment_load" action on environment load 2010-09-06 23:36:48 -07:00
Mitchell Hashimoto 1a5836ee23 Don't clear registered actions hash in tests ever 2010-09-06 19:52:46 -07:00
Mitchell Hashimoto f85401481b Create the tmp path when running tests so they pass 2010-09-06 18:29:49 -07:00
Mitchell Hashimoto 4342c87473 No need to reload the VMs hash if has a parent environment. 2010-09-06 00:09:29 -07:00
Mitchell Hashimoto ed48170b24 Remove environment "vm_name" property since it was redundant 2010-09-05 23:11:27 -07:00
Mitchell Hashimoto 23c08f2daa Configuration validation for the most common problems added 2010-09-05 11:26:38 -07:00
Mitchell Hashimoto 9cc64fcb34 Configuration classes can now be validated. Nice error message shown in case of failure. 2010-09-05 11:02:48 -07:00
Mitchell Hashimoto ad5ecf1c7f Remove unused code in Config 2010-09-05 10:18:05 -07:00
Mitchell Hashimoto 52a32820db Change the way the config is loaded to be all in one step 2010-09-05 01:13:35 -07:00
Mitchell Hashimoto ce9ff73ea4 Show proper syntax error for Vagrantfiles [closes GH-155] 2010-09-04 14:33:53 -07:00
Mitchell Hashimoto 53aaa4f264 Environment is lazy loaded for `vagrant` binary. 2010-09-04 11:10:20 -07:00
Mitchell Hashimoto f24094bba8 Converted more tests to new vagrant env helpers and removed unused code in ResourceLogger 2010-09-04 10:47:22 -07:00
Mitchell Hashimoto 260f1dcec4 Refined some tests to use real Vagrantfiles instead of mocks 2010-09-03 19:25:48 -07:00
Mitchell Hashimoto 3470d98fca Load the root path on demand. 2010-09-03 14:59:16 -07:00
Mitchell Hashimoto f85579a4de Give a nice error message if there is a syntax error in Vagrantfile [closes GH-154] 2010-09-03 14:23:47 -07:00
Mitchell Hashimoto 9590928553 If the data store is empty, delete the backing file 2010-09-03 12:05:29 -07:00
Mitchell Hashimoto e4cb2749a1 Clean nil and 'empty?' values in a data store prior to commiting 2010-09-03 12:02:44 -07:00
Mitchell Hashimoto b8a4188fa3 Config class is now responsible for loading configuration. Cleans up environment. 2010-09-03 11:16:38 -07:00
Mitchell Hashimoto 0a8540996c Action environment uses new indifferent hash util 2010-09-03 09:39:30 -07:00
Mitchell Hashimoto 3c3c9aedc9 Data store is a hash with indifferent access 2010-09-03 09:35:07 -07:00
Mitchell Hashimoto 59e1e43c74 Autoload the util classes. HashWithIndifferentAccess for data store 2010-09-03 09:33:15 -07:00
Mitchell Hashimoto 0f70812142 Load the host on demand in the environment 2010-09-03 00:48:38 -07:00
Mitchell Hashimoto 01df63ef6e Lazy load the environment "actions." Removes one more load from the environment load chain 2010-09-03 00:35:18 -07:00
Mitchell Hashimoto f72979df79 Added global data hash to environment. "system"-wide data bag for vagrant 2010-09-03 00:21:57 -07:00
Mitchell Hashimoto d65194d66e Only initialize a logger on the parent environment 2010-09-02 21:24:59 -07:00
Mitchell Hashimoto a84ea6a5b8 Load data store keys as symbols, not strings. 2010-09-02 21:19:44 -07:00
Mitchell Hashimoto 52e3c4d3b3 Persisting a VM uuid is now implicitly done by Vagrant::VM 2010-09-02 21:12:11 -07:00
Mitchell Hashimoto 2d80c32479 Remove the ActiveList. This will make a comeback using DataStore in the future. 2010-09-02 13:00:47 -07:00
Mitchell Hashimoto d74d95d0cd Get rid of exceptions/ folder. 2010-09-02 11:56:04 -07:00
Mitchell Hashimoto 9002b22fac Data store is now a hash and lazy load the local data store on the environment 2010-09-02 11:47:19 -07:00
Mitchell Hashimoto 4d87f198d7 Vagrant::DataStore which will be used soon for the dotfile in the project directory 2010-09-01 22:00:59 -07:00
Mitchell Hashimoto 43cdcb7808 Config can now be deserialized as well as serialized to JSON 2010-09-01 21:01:15 -07:00
Mitchell Hashimoto d2d2404961 Split config classes out into multiple files for better organization 2010-09-01 20:37:11 -07:00
Mitchell Hashimoto 71101c9d3d Raise interrupt error earlier so the rescue chain actually gets called 2010-09-01 14:58:22 -07:00
Mitchell Hashimoto 60c20565b2 Replace straight abort on interrupt with clean exit via exception 2010-09-01 14:50:15 -07:00
Mitchell Hashimoto a13f587bc0 Environment#error! removed (along with error? and so on) 2010-09-01 14:37:37 -07:00
Mitchell Hashimoto 3da94252b5 Get rid of util.rb. No longer used. 2010-09-01 14:30:31 -07:00
Mitchell Hashimoto bb97b388f9 Convert VM errors to I18n exceptions 2010-09-01 14:26:53 -07:00
Mitchell Hashimoto ae6e42dbbc Scope SSH errors to proper exception classes 2010-09-01 10:47:34 -07:00
Mitchell Hashimoto e7f06d7fb7 Remove ExceptionCatcher since exceptions are the way to report errors now 2010-09-01 10:04:37 -07:00
Mitchell Hashimoto 364233527e SSH no longer raises ActionException. Raises VagrantError 2010-09-01 10:00:49 -07:00
Mitchell Hashimoto 786a0f443a Provisioners raise exceptions 2010-09-01 09:36:22 -07:00
Mitchell Hashimoto f85821c268 Refactor VagrantError to be more flexible so not as many subclasses will be needed 2010-09-01 08:27:29 -07:00
Mitchell Hashimoto cf91f578fb Downloaders now raise exceptions instead of erroring environment 2010-09-01 07:22:14 -07:00
Mitchell Hashimoto a7197b3566 Autoload errors. If nothing bad happens, all those error classes don't use any memory :) 2010-09-01 07:15:37 -07:00
Mitchell Hashimoto 39663f6f11 Finish replacement of "env.error!" with exceptions in VM actions 2010-09-01 07:13:37 -07:00
Mitchell Hashimoto b72cf4c57c Convert NFS to new Warden style with 'recover' method 2010-08-30 20:09:26 -07:00
Mitchell Hashimoto aa00d15206 Few more VM actions converted to exceptions. Lots of errors gone. 2010-08-30 20:07:50 -07:00
Mitchell Hashimoto 72c3340336 About 1/3rd of the VM actions raise exceptions now 2010-08-30 19:39:11 -07:00
Mitchell Hashimoto 98bce8f836 General package action raises exceptions instead of using env.error 2010-08-28 13:54:59 -07:00
Mitchell Hashimoto 3e1ccf0c4f Convert box actions to raise exceptions rather than error environment 2010-08-28 12:31:55 -07:00
Mitchell Hashimoto ccc45ebd7a Begin moving from error_and_exit to exceptions. Fail hard! 2010-08-28 12:23:40 -07:00
Mitchell Hashimoto 354a82a177 Make some minor changes to warden to reduce the array reversals 2010-08-28 00:00:21 -07:00
Mitchell Hashimoto efbfd335ad Remove the ErrorHalt middleware, since Warden takes care of this on a larger scale 2010-08-27 23:50:14 -07:00
Mitchell Hashimoto 21e4477c39 Rip out unison syncing. It never got to see the light of day. Just didn't work out. (NFS replaced it) 2010-08-27 23:31:38 -07:00
Mitchell Hashimoto 7ddff513f0 Shell UI tests. Added option to not translate. Updated non-translated strings. 2010-08-27 23:27:35 -07:00
Mitchell Hashimoto 1d29ba31fa I18nified all the VM actions 2010-08-27 19:46:50 -07:00
Mitchell Hashimoto 0b03502bf2 Converted final error_and_exit in ssh.rb to exceptions 2010-08-27 00:05:40 -07:00
Mitchell Hashimoto bab369e856 SSHAuthenticationFailed error 2010-08-27 00:01:27 -07:00
Mitchell Hashimoto 500a63c269 Fix some bugs in the SSH tests, replace one error_and_exit with an exception 2010-08-26 23:51:30 -07:00
Mitchell Hashimoto 58237db675 Remove unused methods in environment and their translations 2010-08-26 23:30:24 -07:00
Mitchell Hashimoto afab53bf9f Scope errors into the Errors namespace. VirtualBox version errors converted to I18n 2010-08-26 23:21:28 -07:00
Mitchell Hashimoto e28947f18d Use I18n gem for string database. Refactor exceptions to use I18n. 2010-08-26 21:56:38 -07:00
Mitchell Hashimoto 6d15a1dd64 Moved the resource name to a helper method in environment 2010-08-26 20:22:20 -07:00
Mitchell Hashimoto aaac5fbf1e Get rid of all Ruby warnings in Vagrant 2010-08-25 23:21:23 -07:00
Mitchell Hashimoto a699122260 No more logger usage for outputting to the shell 2010-08-25 22:38:24 -07:00
Mitchell Hashimoto 9ab5a7c2b1 Switch the actions over to using the new UI objects. 2010-08-25 22:13:55 -07:00
Mitchell Hashimoto e74bce8b10 Factor out the command environment initialization 2010-08-25 21:49:19 -07:00
Mitchell Hashimoto 98087243a7 Support for aliasing commands 2010-08-25 16:09:51 -07:00