Commit Graph

3474 Commits

Author SHA1 Message Date
Simon Vetter 40eb978931 fix checksum verification for downloaded boxes (fixes #4665)
This makes sure that config.vm.box_download_checksum and
config.vm.box_download_checksum_type get passed to
Vagrant::Action.action_box_add with other options on
box download/import.
2015-01-20 14:28:29 +01:00
mbrodala cca19f8241 Check plugin name with version spec in has_plugin
If one passes a version spec to `Vagrant.has_plugin?`, the actual plugin name is ignored and any installed plugin which matches the version spec makes the check pass. Fix this by also checking for plugin name match in addition to the requested version spec.
2015-01-20 08:37:22 +01:00
Shawn Neal 522bf9ff8b Fix issue 3031
Sometimes in use ports can raise a Errno::EACCES exeptions on Windows hosts.
2015-01-16 08:03:37 -08:00
Seth Vargo a438e85418 Make with_clean_env a class method
Fixes #5021
2015-01-05 19:07:04 -05:00
Seth Vargo d2874064f4 Use .key? instead of .has_key? 2015-01-05 18:29:01 -05:00
Seth Vargo 2bd22c9663 Turn on Atlas debug logging if Vagrant is logging 2015-01-05 15:51:19 -05:00
Mitchell Hashimoto 6aeae27889 core: just don't use ** to avoid symbol/strings mixup
/cc @sethvargo
2015-01-05 12:37:58 -08:00
Mitchell Hashimoto c4502737c8 Revert "Symbolize and stringify keys in options hash"
This reverts commit 1699c92eec.
2015-01-05 12:35:31 -08:00
Seth Vargo 1699c92eec Symbolize and stringify keys in options hash 2015-01-05 10:48:39 -05:00
Mitchell Hashimoto 2385305f6f core: Don't encode! since string might be frozen 2014-12-10 09:27:00 -08:00
Seth Vargo 2e4f854725 Vagrant Cloud -> Atlas 2014-12-08 17:42:29 -08:00
Seth Vargo 6b48199346 Infer push name when only one strategy is defined, support multiple strategies 2014-12-08 11:35:15 -08:00
Seth Vargo c8bdf53c7e Rename push environment to env 2014-12-08 11:35:12 -08:00
Seth Vargo 35b7e28011 Do not use UNSET_VALUE in plugin (it uses components) 2014-12-08 11:35:11 -08:00
Seth Vargo 8e2f18761f Remove unused methods from vagrantfile.rb 2014-12-08 11:35:10 -08:00
Seth Vargo e5b10aa86b Collect push_configs in the Plugin Manager 2014-12-08 11:35:10 -08:00
Seth Vargo 413565f961 Simplify the API for Environment#push
The API has a precondition that `name` is not nil
2014-12-08 11:35:10 -08:00
Seth Vargo 3871154a74 Ignore options that come back from the plugin for now 2014-12-08 11:35:10 -08:00
Seth Vargo 988518a6ba Make Environment#pushes its own method 2014-12-08 11:35:10 -08:00
Seth Vargo 03b8105571 Super primitive implementation of Environment#push 2014-12-08 11:35:10 -08:00
Seth Vargo b6c5ca6b7a Add Push command and tests 2014-12-08 11:35:10 -08:00
Seth Vargo d79a0d52dd Do not use Enumerable in Registry
Calling methods like #first in Registry is misleading because it returns
a different result than registry.get(registry.keys.first).
2014-12-08 11:35:10 -08:00
Seth Vargo c0b107ff69 Add Registry#empty? to check if a registry has any items 2014-12-08 11:35:10 -08:00
Seth Vargo 2b03838fba Make Registry enumerable
Registry already responds to #each, so including the Enumerable module
gives us nice methods like #select and #collect fo' free!
2014-12-08 11:35:10 -08:00
Seth Vargo bc4bbb9fc0 Add #length and #size methods to Registry 2014-12-08 11:35:10 -08:00
Seth Vargo 60a8472891 Use a pushes registry instead of data hash 2014-12-08 11:35:09 -08:00
Seth Vargo 72affa0a10 Accept a list of options in #push signature 2014-12-08 11:35:09 -08:00
Seth Vargo 5b9240ad8a Add Push to the PLUGIN_COMPONENTS 2014-12-08 11:35:09 -08:00
Seth Vargo 87b4e1f2cc Accept an environment in the push config 2014-12-08 11:35:09 -08:00
Seth Vargo a93fff103f Add base skeleton for `vagrant push` 2014-12-08 11:35:09 -08:00
Seth Vargo 9242e39a23 Revert "Merge pull request #4861 from obfusk/fix-tmpdir-delete"
This reverts commit 00e388a897, reversing
changes made to d1691c21c7.
2014-12-02 12:32:31 -05:00
Felix C. Stegerman 023e4b8c23 force rm tempfiles (no rescue nil); use right var 2014-11-24 16:59:15 +01:00
Felix C. Stegerman aca273c996 fix broken tempdir removal 2014-11-24 02:26:54 +01:00
Seth Vargo 1d23fb75a2 Merge pull request #4801 from mitchellh/sethvargo/with_clean_env
Add Env.with_clean_env for resetting the Ruby and Rubygems environment
2014-11-10 19:38:41 -05:00
Mitchell Hashimoto f8a2322459 core: only delete state if not created on initialize only
/cc @sethvargo
2014-11-10 16:29:19 -08:00
Seth Vargo f86189a2fe Add Env.with_clean_env for resetting the Ruby and Rubygems environment 2014-11-10 12:00:23 -05:00
Matt Wrock dc628cd722 fixes infinite loop in machine state call if provider calls machine.action 2014-11-06 08:51:47 -08:00
Rob Kinyon 14b84a4a76 Added a --plugin-clean-sources parameter that will allow for
only those sources that are defined by the user to be used.
2014-10-28 21:53:41 -04:00
Mitchell Hashimoto cb6f3e526a Fix failing test 2014-10-24 15:51:52 -07:00
Mitchell Hashimoto 7b5e5668c5 core: add option to not lock for Machine#action [GH-4574] 2014-10-24 15:47:37 -07:00
Mitchell Hashimoto 533004e932 core: Package copies private key 2014-10-24 10:31:23 -07:00
Mitchell Hashimoto 94b2a8a56b communicators/ssh: insert random key, remove insecure key 2014-10-24 09:58:18 -07:00
Mitchell Hashimoto f4dec575ed core: Vagrant::Util::Keypair for generating keypairs 2014-10-24 09:33:44 -07:00
Mitchell Hashimoto 37a4000722 providers/virtualbox: more descriptive error if empty version [GH-4657] 2014-10-24 09:20:08 -07:00
Mitchell Hashimoto 370ca050db Merge pull request #3707 from takekazuomi/fix/master/encodeissue
fix subprocess external encode issue.
2014-10-23 23:18:19 -07:00
Mitchell Hashimoto 7d6f9a60b2 core: ability to set env var for silent internal upgrade [GH-3870] 2014-10-23 22:39:58 -07:00
Mitchell Hashimoto fbd568a03e core: load ".vagrantplugins" in root path [GH-3775] 2014-10-23 19:58:57 -07:00
Mitchell Hashimoto 6ea8dc8e20 core: cleaner output of what provisioner is running if named 2014-10-23 18:47:03 -07:00
Mitchell Hashimoto 97f9948fce core: provisioners are defined differently now 2014-10-23 18:40:14 -07:00
Mitchell Hashimoto 9d8c85e966 core: provision-with works with provisioner IDs [GH-2850] 2014-10-23 18:27:02 -07:00
Mitchell Hashimoto cba76c3b68 core: VirtualBox is no longer the fallback, not hardcoded anywhere
This commit finally removes all traces of VirtualBox defaults from
Vagrant core. Vagrant now completely relies on its automated provider
detection to pick the best and most relevant provider that is available
on the system and for a specific development environment.

A "vagrant up" on one development environment might prefer VirtualBox,
another might prefer Docker. As a result of this commit (plus the few
prior), the developer doesn't need to know anymore and doesn't need to
specify a `--provider` flag. Vagrant just figures out the correct
provider.

Yay. :)
2014-10-23 16:32:36 -07:00
Mitchell Hashimoto b7478e09f3 core: clean up default logic 2014-10-23 15:59:27 -07:00
Mitchell Hashimoto 59dbe51ef2 core: Call default_provider with the machine for commands 2014-10-23 15:53:22 -07:00
Mitchell Hashimoto 768d453739 core: Environment#default_provider can look into machines 2014-10-23 15:52:42 -07:00
Mitchell Hashimoto 4d85e0e145 core: fix failig test around choosing default provider 2014-10-23 15:37:28 -07:00
Mitchell Hashimoto ad758bf69a core: prefer providers in the Vagrantfile [GH-3812] 2014-10-23 15:32:54 -07:00
Gilles Cornu 097886b2ce core: fully revert stuff from ssh_info memoization
5036d16461 only partially reverted
89a4a29d65.

Related to #4670.
2014-10-23 23:01:33 +02:00
Mitchell Hashimoto f0a73c7c05 core: call #state in any #action call [GH-4513] 2014-10-23 12:20:16 -07:00
Mitchell Hashimoto 4827469dee core: recognize more complex content types for json [GH-4525] 2014-10-23 11:26:56 -07:00
Mitchell Hashimoto 46b3ea64d1 core: retry download without continue if byte range not supported
[GH-4479]
2014-10-23 11:06:29 -07:00
Mitchell Hashimoto 2856df79ac core: Vagrant.has_plugin? can take version requirements [GH-4650] 2014-10-23 10:52:02 -07:00
Mitchell Hashimoto b5642e0671 Merge pull request #4573 from mkuzmin/fix-server-url
config.vm.box_server_url setting is ignored
2014-10-23 09:39:33 -07:00
Mitchell Hashimoto a6c0989bc6 Revert "Merge pull request #4616 from crypt1d/master"
This reverts commit aec69c4627, reversing
changes made to 88754d2904.
2014-10-23 09:30:46 -07:00
Mitchell Hashimoto aec69c4627 Merge pull request #4616 from crypt1d/master
Consider the host_ip value when handling port collisions
2014-10-23 09:26:31 -07:00
Mitchell Hashimoto 5036d16461 update CHANGELOG 2014-10-23 09:15:47 -07:00
Mitchell Hashimoto 381f1332c8 Merge pull request #4670 from gildegoma/dry-check-ssh-perms
Check SSH key permissions in machine.ssh_info
2014-10-23 09:14:31 -07:00
Mitchell Hashimoto 4e9c82f364 core: ignore capability error [GH-4684] 2014-10-22 21:10:36 -07:00
Anduin Withers 855bda8c26 Fix typo that prevents "vagrant box add --cert certfile -name foo URL" from working. 2014-10-22 23:19:15 -04:00
Mitchell Hashimoto 0e29dd5668 commands/rsync: handle proxy machines [GH-4066] 2014-10-22 16:17:39 -07:00
Mitchell Hashimoto cff57c8d01 core: trigger machine_id_changed for reload [GH-3963] 2014-10-22 12:07:49 -07:00
Mitchell Hashimoto 7988f0fb7c Fix broken unit tests 2014-10-22 09:44:48 -07:00
Mitchell Hashimoto 58f7310444 providers/virtualbox: detect conflict in name [GH-4681] 2014-10-21 15:56:32 -07:00
Seth Vargo 2f529d47e7 VMWare -> VMware 2014-10-21 18:37:53 -04:00
Gilles Cornu 89a4a29d65 Memoize machine.ssh_info when ready for connection 2014-10-20 17:45:02 +02:00
Gilles Cornu 4e81be879c Check SSH key permissions in machine.ssh_info
With this change, any caller of machine.ssh_info is assured that best
efforts will be done to fix possible wrong permissions on the private
key files.

Fix #4652
2014-10-20 17:33:06 +02:00
Julien Vey d7493892f4 Allow SSH LogLevel to be overridden 2014-10-15 08:25:29 +02:00
crypt1d ca1456ff82 initial changes for forwarding port modifications 2014-10-10 13:01:04 +02:00
Michael Kuzmin bdef7efb2d Fix for ignored `config.vm.box_server_url` setting.
https://github.com/mitchellh/vagrant/pull/4282 introduced new setting to set alternate vagrant cloud server URLs, but it doesn't work actually.

 This PR helps to process the value correctly.
2014-09-29 22:36:37 +04:00
mpoeter c20624bfdc Add support for linked clones for VirtualBox. 2014-09-09 19:17:04 +02:00
Ray Ruvinskiy 5a7e00c5b1 Add HTTPS download options to `box update` and `box outdated`
Vagrant::Box.load_metadata did not provide a way to specify the HTTPS
download options that could be specified when downloading boxes
(ca cert, ca path, client cert, insecure). As a result, while it was
possible to add a box whose metadata file needed to be downloaded with one of
those options specified, it was impossible to check for updates. The following
changes have been made to address the situation:

1. Create a DownloadMixins module to provide the --insecure, --cacert, --capth,
   and --cert command line options to all of `vagrant box add`,
   `vagrant box update`, and `vagrant box outdated`.
2. Extend `Vagrant::Box.has_update?` and `Vagrant::Box.load_metadata` to accept
   said download options.
3. Extend `box outdated` and `box update` commands to pass download options
   down.
4. Extend `Vagrant::Builtin::Action::BoxCheckOutdated` to honour download
   options.
5. Options specified on the command line take precedence over options specified
   in the machine configuration, if any.
6. Fix bug in `vagrant box add` where client cert was being passed down using
   the wrong environment key.
7. Unit test coverage in update_test and box_check_outdated_test.

Resolves #4420
2014-09-07 23:57:34 -04:00
Mitchell Hashimoto 52e1b4ed5a core: more logging 2014-09-02 09:15:32 -07:00
Mitchell Hashimoto 890e988ccd core: Be more explicit about requiring version 2014-09-02 09:11:37 -07:00
Mitchell Hashimoto 140a1b8d4b commands/version: use checkpoint data 2014-09-01 15:23:46 -07:00
Mitchell Hashimoto 09d2b6fd86 core: add Checkpoint 2014-09-01 15:06:51 -07:00
Mitchell Hashimoto 083dce5c61 Revert "core: guard against SSH to localhost:22 [GH-4070]"
This reverts commit 62561f2844.

This broke WinRM. Will fix in a future version.
2014-08-30 22:55:13 -07:00
Mitchell Hashimoto 8cd2e58194 core: better messaging around box add not existing [GH-4414] 2014-08-29 13:17:40 -07:00
Mitchell Hashimoto 4138179207 commands/plugin: error if windows with space in dir [GH-4351] 2014-08-29 12:16:40 -07:00
Mitchell Hashimoto be6665864d communicators/ssh: nicer errors for SSH exceptions [GH-4367] 2014-08-29 11:40:50 -07:00
Mitchell Hashimoto a0b95cb927 core: content-type is case insensitive for metadata check [GH-4369] 2014-08-29 11:27:50 -07:00
Mitchell Hashimoto d1d8ce7d52 core: vagrant provision triggers sentinel creation [GH-4393] 2014-08-29 10:26:44 -07:00
Mitchell Hashimoto 7fe5b70d51 Merge pull request #4341 from databus23/patch-2
core: selecting for duration of timeout can cause hang
2014-08-29 09:52:33 -07:00
Mitchell Hashimoto 22438a481c Update CHANGELOG 2014-08-29 09:49:38 -07:00
Mitchell Hashimoto 417c2b7c7b Merge pull request #4387 from BackSlasher/allow-sudo
Ignoring SSHKeyBadOwner if user is root (uid 0)
2014-08-29 09:48:34 -07:00
Mitchell Hashimoto 023ed006bf core: better bundler errors 2014-08-29 08:20:21 -07:00
Veres Lajos 4ef996dca9 typofixes - https://github.com/vlajos/misspell_fixer 2014-08-25 20:12:25 +01:00
Nitzan Raz 8cca8535e7 Ignoring SSHKeyBadOwner if user is root (uid 0)
Allows using `sudo vagrant up` without `chown`ing the insecure private key
2014-08-25 12:55:42 +03:00
Fabian Ruff c72c8dce40 Selecting for duration of timeout can cause hang
When specifying a timeout, the subprocess used to select for timeout seconds on the stdout, stderr pipes.

This creates a race condition and can cause the `Subprocess#execute` to hang for the full timeout interval if the process has already exited and no more output is send to the pipes.

This race is happening with a higher probability if the subprocess is generating a lot of output.
2014-08-12 21:00:02 +02:00
Mitchell Hashimoto e198652e75 core: don't load curlrc [GH-4328] 2014-08-10 20:49:53 -07:00
Mitchell Hashimoto 04835ae612 core: clean up Bundler tempfiles [GH-4103] 2014-08-08 16:48:53 -07:00
Mitchell Hashimoto 15f1823d5c core: box names with colons work on Windows [GH-4100] 2014-08-08 14:47:17 -07:00
Mitchell Hashimoto 62561f2844 core: guard against SSH to localhost:22 [GH-4070] 2014-08-08 11:58:53 -07:00
Mitchell Hashimoto 7cce4cbc90 core: lock machine action on VF name too [GH-4065] 2014-08-08 11:39:49 -07:00
Mitchell Hashimoto e673c3251c core: forgot error for last commit 2014-08-08 11:24:39 -07:00
Mitchell Hashimoto 0da5d7b650 communicators/ssh: clean error on max session [GH-4044] 2014-08-08 09:11:25 -07:00
Mitchell Hashimoto 7f5f720e0a core: Machine#reload 2014-08-06 16:46:31 -07:00
Mitchell Hashimoto ac0d213c9b core: fix crash case with provisioners [GH-4281] 2014-08-06 13:00:29 -07:00
Mitchell Hashimoto 145af54cec core: preserve downloaded file in more cases [GH-4301] 2014-08-06 11:23:02 -07:00
Mitchell Hashimoto d5c548a5c0 Merge pull request #4090 from mitchellh/improve-checksum-verification-performance
core: Improved box checksum verification performance
2014-08-06 10:29:15 -07:00
Mitchell Hashimoto 2cdcc29902 provisioners/chef: put global lock around knife exec 2014-08-06 10:24:05 -07:00
Mitchell Hashimoto 9748b5d2fa Merge pull request #4159 from vassilevsky/windows-encodings
core: windows encoding fixes
2014-08-06 10:01:06 -07:00
Franz Pletz 6def193567 Add config.vm.box_server_url setting
This commits adds a new config setting `config.vm.box_server_url` to set
the URL of a local VagrantCloud instance in the Vagrantfile. If the
environment variable `VAGRANT_SERVER_URL` is set, it will still be
preferred.
2014-08-01 14:38:55 +02:00
Fabian Ruff 47de3225dd Subprocess: respect listeners on final yield 2014-07-31 11:32:25 +02:00
Elan Ruusamäe f6448e5553 Update shared_helpers.rb
typo fix
2014-07-27 11:46:18 +03:00
Ilya Vassilevsky ad54e14d65 Encode directory names to filesystem encoding for proper comparison
Dir.entries have filesystem encoding (ANSI in Windows).
Path fragments have terminal encoding (DOS).
2014-07-08 19:01:43 +04:00
Ilya Vassilevsky 764be49b55 Encode string representation of Environment object for seamless printing 2014-07-08 18:58:58 +04:00
Shawn Neal 9c20014a85 Improved box checksum verification performance
When adding large boxes verifying the checksum took noticably longer than expected because the Ruby GC was needlessly working overtime.
2014-06-23 19:17:37 -07:00
Mitchell Hashimoto 4f0e527f5d core: don't delete data dir if no data dir [GH-4017] 2014-06-12 11:30:10 -07:00
Kalman Hazins bb052366f7 Change symbols inside hashes to 1.9 JSON-like syntax 2014-05-22 12:35:12 -04:00
Mitchell Hashimoto 07dbe40e98 Merge pull request #3848 from shtouff/feat-capath
added capath option to curl Downloader
2014-05-20 20:50:26 -07:00
Mitchell Hashimoto f369c13e25 hosts/linux: niceer error if rdesktop not found 2014-05-20 19:58:12 -07:00
Mitchell Hashimoto 5798538b0c core: don't port collision detect UDP [GH-3859] 2014-05-20 19:35:10 -07:00
Rémi Paulmier 00a2670406 added capath option to curl Downloader 2014-05-19 18:08:23 +02:00
Mitchell Hashimoto 6353c765ae core: cygwin_path only uses cygpath in cygwin [GH-3804] 2014-05-17 12:07:43 -07:00
Mitchell Hashimoto e107202050 core: WaitForCommunicator always asks for state
This forces global-status to be up-to-date typically
2014-05-17 11:55:12 -07:00
Mitchell Hashimoto 5e9cef4efd core: only set ID on machine if data dir [GH-3827] 2014-05-17 11:41:22 -07:00
Mitchell Hashimoto 47d85d830d core: don't double-include package in tar [GH-3637] 2014-05-10 10:36:38 -07:00
Mitchell Hashimoto ca6e2393bd core: providers can choose to not be defaultable [GH-3742] 2014-05-09 16:02:09 -07:00
Mitchell Hashimoto 9c684ad2b7 core: retry acquire of dotlock [GH-3735] 2014-05-09 10:28:37 -07:00
Mitchell Hashimoto 190ba4cd27 core: can add box with name of directory [GH-3732] 2014-05-09 09:24:29 -07:00
Mitchell Hashimoto 4e52facebc core: properly yield in locker 2014-05-08 09:57:52 -07:00
Mitchell Hashimoto 86aef2249b core: don't lock machines on SSH access 2014-05-08 09:55:23 -07:00
Takekazu Omi 7da9648089 fix subprocess external encode issue. https://github.com/mitchellh/vagrant/issues/3706
in io.rb
 subprocess resuts convert external encoding to utf-8

in subprocess.rb
 command line argument convert utf-8 to  external encoding
2014-05-08 17:59:45 +09:00
Mitchell Hashimoto d1a26bf8ca core: add more logging to check box outdated 2014-05-07 17:21:17 -07:00
Alex Rodionov 34ec385c81 core: public_send vs send when merging configs
This fixes the problem when config keys collide with Kernel/Object
methods (private). An example is `exec` which is used in vagrant-exec
plugin.

Compare:

> old.send :exec
ArgumentError: wrong number of arguments (0 for 1+)
> old.public_send :exec
=> #<Vagrant::Config::V2::DummyConfig:0x007fe212cc05c8>
2014-05-07 19:02:21 +07:00
Mitchell Hashimoto d4087db7c5 core: no active machines if there is no vagrant env 2014-05-06 13:36:42 -07:00
Mitchell Hashimoto 45fc89877c core: MachineIndex valid test is better 2014-05-05 21:50:51 -07:00
Mitchell Hashimoto 5d94ab9e60 core: if state ID is NOT_CREATED_ID, destroy machine state 2014-05-05 21:44:34 -07:00
Mitchell Hashimoto d526dd54fe core: MachineIndex#valid? checks state and ID again 2014-05-05 21:29:40 -07:00
Mitchell Hashimoto bc4d91fb73 core: Environment#cwd should expand path to full path 2014-05-05 21:17:48 -07:00
Brian Pitts 4d90fdfec5 Check usability of nfs on host 2014-05-03 16:09:08 -05:00
Mitchell Hashimoto 51ffa4181c core: Show message when checksumming box [GH-3623] 2014-05-03 09:17:49 -07:00
Mitchell Hashimoto 604ae6caa3 communicators/ssh: detect if config.ssh.shell is non-functional [GH-3040] 2014-05-01 21:35:02 -07:00
Mitchell Hashimoto 4a53b138a0 core: Allow insecure RubyGems for plugins [GH-3610] 2014-05-01 21:14:47 -07:00
Mitchell Hashimoto 169a829cd8 core: dup the provider options so we can't overwrite them 2014-05-01 10:06:03 -07:00
Mitchell Hashimoto 52bb68ba73 core: Fix some tests, revert a change 2014-05-01 10:03:49 -07:00
Mitchell Hashimoto cca9bffa90 core: Can exclude providers 2014-05-01 09:50:35 -07:00
Mitchell Hashimoto ab9f91568e core: more intuitive logic around default providers 2014-05-01 09:46:40 -07:00
Mitchell Hashimoto a9dfb6b3bd core: default provider chosen by usability and prority 2014-05-01 09:40:52 -07:00
Mitchell Hashimoto 429bd73495 core: provider has default priority of 5 2014-05-01 09:26:36 -07:00
Adam Spiers 36e924b73e add support for bundler >= 1.6.x
bundler changed their API for Bundler::UI in 1.6.0 via this commit:

  https://github.com/bundler/bundler/commit/5e38e2d7

This caused various issues, e.g.

  https://github.com/mitchellh/vagrant/issues/3451
  https://github.com/test-kitchen/test-kitchen/issues/401

which will hopefully be resolved by teaching vagrant to cope with both
API versions.
2014-04-30 23:32:16 +01:00
Mitchell Hashimoto d90bc9889a core: Lock in plugin install of a specific version 2014-04-29 16:53:12 -07:00
Mitchell Hashimoto 92df8cf6ae Handle a lot of TODOs 2014-04-29 16:50:58 -07:00
Mitchell Hashimoto 0bb523ebb0 providers/docker: use ssh_run if asking for stdin on execute 2014-04-29 16:27:22 -07:00
Mitchell Hashimoto 68fe0b4258 core: Fix bug where if outputting empty string, would output nothing 2014-04-27 18:19:44 -07:00
Mitchell Hashimoto 03e18d1668 core: better logging around locks 2014-04-27 17:21:46 -07:00
Mitchell Hashimoto 5eeaff1662 whitespace 2014-04-27 16:36:43 -07:00
Mitchell Hashimoto a1af2d920f core: MachineIndex entry invalid if machine with name not in Vagrantfile 2014-04-27 16:35:54 -07:00
Mitchell Hashimoto 8c8099aebc Merge pull request #3551 from benesch/3550
core: return {} if cached synced folders file missing [GH-3550]
2014-04-27 15:55:25 -07:00
Nikhil Benesch 54e580149a core: return {} if cached synced folders file missing [GH-3550]
A missing synced folders cache indicates an empty cache, not a failure
that should be handled by the caller. The cache file is missing from
data dirs created by an earlier version of Vagrant.

Fixes #3550.
2014-04-26 15:39:25 -04:00
Mitchell Hashimoto 1a08c4def5 core: Box#in_use? as an API 2014-04-25 02:02:49 -07:00
Mitchell Hashimoto 4fb9832589 core: clean up the lock cleanup code, tests 2014-04-25 01:33:25 -07:00
Mitchell Hashimoto 0ed3c5174b core: delete environment lock files 2014-04-24 23:13:08 -07:00
Mitchell Hashimoto 84f889e801 core: more liberally release port leases 2014-04-24 22:59:17 -07:00
Mitchell Hashimoto f2a2d93042 Revert "core: can't add boxes from network shares [GH-3279]"
This reverts commit 41636a8a9c.

Conflicts:
	CHANGELOG.md
2014-04-24 22:50:27 -07:00
Mitchell Hashimoto 6870de3f6d core: add Vagrant.latest_version 2014-04-24 20:09:32 -07:00
Mitchell Hashimoto e40b5d6cd3 core: environment_loaded doesn't load full env 2014-04-23 06:33:46 -07:00
Mitchell Hashimoto 85f4a4d5ee commands/box/remove: if box is in use, warn user, ask for confirmation 2014-04-23 06:13:16 -07:00
Mitchell Hashimoto a1e6d0a85e core: Environment#action_runner sets machine_index 2014-04-22 17:15:33 -07:00
Mitchell Hashimoto e985308e9a core: MachineIndex::Entry#valid? method and tests 2014-04-22 17:09:44 -07:00
Mitchell Hashimoto 2660252ede core: Store the actual box data, not just the name 2014-04-22 16:46:11 -07:00
Mitchell Hashimoto 519c8af971 core: MachineIndex stores the box associated with a machine when ID is set 2014-04-22 15:26:56 -07:00
Mitchell Hashimoto ce08a37d5f Very quiet mode for development 2014-04-21 13:56:39 -07:00
Mitchell Hashimoto ee99f42e45 core: only output error on batch action if not forked 2014-04-21 13:56:36 -07:00
Mitchell Hashimoto 4ced49bf0d core: Batch action says immediately when error occurred 2014-04-21 13:56:35 -07:00
Mitchell Hashimoto d96c5a81af core: Log around process locks 2014-04-21 13:56:34 -07:00
Mitchell Hashimoto 7829e9b167 core: FP collision leaser should compare ints 2014-04-21 13:56:24 -07:00
Mitchell Hashimoto 49693a6af7 core: Move FP collision leaser code to sep method so it works with alt impl 2014-04-21 13:56:22 -07:00
Mitchell Hashimoto bd7b458cbe core: forwarded port collision repair leases chosen ports [GH-2966]
In addition to checking if a port is open, we now check if a port is
"leased", which we do for a period of 60 seconds. This gives the provider
time to actually put the port into use.
2014-04-21 13:56:20 -07:00
Mitchell Hashimoto 862414af12 core: lock around machine actions 2014-04-21 13:56:09 -07:00
Mitchell Hashimoto d2e2ccb625 core: A function for diffing synced folders 2014-04-21 13:55:56 -07:00
Mitchell Hashimoto 81df70eee0 providers/docker: support building Dockerfiles 2014-04-21 13:55:54 -07:00
Mitchell Hashimoto 623386f13c core: port collision detector can swap open port checker 2014-04-21 13:55:38 -07:00
Mitchell Hashimoto fe0db9a63e core: nicer way to assure array for pviate key path 2014-04-21 13:55:34 -07:00
Mitchell Hashimoto af7f55f47e core: When disabling, only disable the proper folders 2014-04-21 13:55:33 -07:00
Mitchell Hashimoto 05572955f6 core: log when disabling a synced folder 2014-04-21 13:55:32 -07:00
Mitchell Hashimoto 4df8636c38 core: instantiate all keys in a V2 config prior to merging
This forces everything to get a new instance, so we don't accidentally
overwrite any values across multiple machines.
2014-04-21 13:55:30 -07:00
Mitchell Hashimoto cd38f891da providers/docker: disable synced folders on destroy 2014-04-21 13:55:27 -07:00
Mitchell Hashimoto 704ff98200 providers/docker: only sync folders if they're not already there 2014-04-21 13:55:26 -07:00
Mitchell Hashimoto cabacae4cb core: return nil if cached synced folders file doesn't exist 2014-04-21 13:55:24 -07:00
Mitchell Hashimoto 4557ece4df core: SyncedFolders middleware saves what it synced 2014-04-21 13:55:23 -07:00
Mitchell Hashimoto 794cd4f287 core: MixinSyncedFolders have methods for save/reading from cache 2014-04-21 13:55:22 -07:00
Mitchell Hashimoto 10e51eb141 providers/docker: initial sync folders working through proxy VM 2014-04-21 13:55:20 -07:00
Mitchell Hashimoto 3c9219b8c9 core: Builtin SyncedFolders accepts alternate config 2014-04-21 13:55:18 -07:00
Mitchell Hashimoto 0153e0ccbb core: Machine#action_raw for calling raw callables 2014-04-21 13:55:17 -07:00
Mitchell Hashimoto d8bdb62ed4 core: MixinSyncedFolders lets a custom config through 2014-04-21 13:55:15 -07:00
Mitchell Hashimoto e119a5714a core: add "disable" method for synced folders, deprecate "prepare" 2014-04-21 13:55:09 -07:00
Mitchell Hashimoto 901d3c3558 core: MachineIndex sets paths to nil if empty 2014-04-21 13:55:06 -07:00
Mitchell Hashimoto 98af7c7992 core: Machine sets the local data path of the machine index 2014-04-21 13:55:04 -07:00
Mitchell Hashimoto 646f0fa907 core: MachineIndex preserves the local data path for an env 2014-04-21 13:55:02 -07:00
Mitchell Hashimoto e947960c09 providers/docker: use a custom communicator to go through host VM 2014-04-21 13:54:56 -07:00
Mitchell Hashimoto aa1abdd1c4 core: SSHExec middleware can have ssh info overridden 2014-04-21 13:54:53 -07:00
Mitchell Hashimoto 2add94ee28 core: BatchAction can run arbitrary code 2014-04-21 13:54:46 -07:00
Mitchell Hashimoto 144c874b5a providers/docker: process-level lock on copying default Vagrantfile 2014-04-21 13:54:40 -07:00
Mitchell Hashimoto dc2f729fd3 core: Environment#lock is more useful now 2014-04-21 13:54:39 -07:00
Mitchell Hashimoto 32c9707aa1 core: MachineIndex cleans up machine lock files 2014-04-21 13:54:38 -07:00
Mitchell Hashimoto 8c7ab333a0 Squash the f-docker-hostmachine branch.
Initial work

commands/up: make sure all names to with_target_vms are strings

providers/docker: create a docker host VM if needed

providers/docker: executor abstraction for driver to eventually support remote

providers/docker: vagrant executor

providers/docker: support creating the machine

providers/docker: status works if host VM is gone

providers/docker: use start fence to get real docker output

core: Call preserves stack ordering

core: support Message post option

providers/docker: Guard some features with HasSSH checks

providers/docker: much better messaging around create/destroy

providers/docker: output the container ID on create

providers/docker: copy the hostmachine Vagrantfile to the data dir

providers/docker: should make host machine before any up action

providers/docker: HandleBox before the host machine

providers/virtualbox: functional_vboxsf to disable vboxsf

providers/virtualbox: synced folder usable method should take 2 args

providers/docker: default machine name to :default
2014-04-21 13:54:33 -07:00
Mitchell Hashimoto d42d62ead1 core: MachineIndex#vagrant_env should silence warnings 2014-04-21 13:54:32 -07:00
Mitchell Hashimoto 2b07dec059 core: Use the MachineIndex#vagrant_env method 2014-04-21 13:54:31 -07:00
Mitchell Hashimoto a4addd0e25 core: MachineIndex keeps track of Vagrantfile name 2014-04-21 13:54:30 -07:00
Mitchell Hashimoto 09ff31e3a3 commands/global-status: add --prune flag 2014-04-21 13:54:29 -07:00
Mitchell Hashimoto df4dfc36e7 MachineIndex lock is a monitor to allow recursion 2014-04-21 13:54:28 -07:00
Mitchell Hashimoto 5f5d3d5ef0 core: MachineIndex more aggressively reloads data 2014-04-21 13:54:27 -07:00
Mitchell Hashimoto 9b22ccbd32 core: MachineIndex updates existing entry if name, provider, path match 2014-04-21 13:54:25 -07:00
Mitchell Hashimoto 72030d2180 Note provisioners that don't work on Windows guests 2014-04-21 13:54:02 -07:00
Mitchell Hashimoto 0dc40e1680 core: MachineIndex can have extra data attached to it 2014-04-21 13:53:38 -07:00
Mitchell Hashimoto 1c29c39f1b core: generalize the autostart stuff so we don't have a bunch of specials 2014-04-21 13:53:35 -07:00
Mitchell Hashimoto 9dd9fff637 core: check if provider is usable when requesting a machine 2014-04-21 13:53:10 -07:00
Mitchell Hashimoto bc2e3727a9 core: Add usable? check to providers 2014-04-21 13:53:07 -07:00
Mitchell Hashimoto aad8e7f80d core: provision "once" or "always" [GH-2421] 2014-04-21 13:52:30 -07:00
Mitchell Hashimoto c4a4b998df core: Test eager loading of WinRM 2014-04-21 13:51:51 -07:00
Mitchell Hashimoto d608e0bdfd Eager load WinRM
/cc @sneal - How is this? It is dirty, but at least then it doesn't have
a global performance impact on Vagrant if you're not using WinRM
2014-04-21 13:51:50 -07:00
Mitchell Hashimoto cddd878656 core: Don't set index uuid file if data dir is nil 2014-04-21 13:51:28 -07:00
Mitchell Hashimoto b38876ac50 core: pass along the UI class so we don't get a silent UI 2014-04-21 13:51:26 -07:00
Mitchell Hashimoto 4349800374 core: Silence ruby warnings when loading external machines 2014-04-21 13:51:25 -07:00
Mitchell Hashimoto a0e9f46251 core: commands can use the IDs from anywhere to control 2014-04-21 13:51:24 -07:00
Mitchell Hashimoto 9a16af10ad core: Use Machine#state wherever possible so we update the index 2014-04-21 13:51:23 -07:00
Mitchell Hashimoto 48cf2c38f7 core: MachineIndex is enumerable 2014-04-21 13:51:21 -07:00
Mitchell Hashimoto 13a4db391a core: Machine updates state cache when querying state 2014-04-21 13:51:20 -07:00
Mitchell Hashimoto 44e379e961 core: Machine sets index entries on ID sets 2014-04-21 13:51:19 -07:00
Mitchell Hashimoto 8a6bdbf710 core: Environment#machine_index 2014-04-21 13:51:17 -07:00
Mitchell Hashimoto a29f5d7e01 core: Add MachineIndex#delete 2014-04-21 13:51:16 -07:00
Mitchell Hashimoto 69a290eb9d core: replace "-" in UUIDs with "" 2014-04-21 13:51:15 -07:00
Mitchell Hashimoto ac032db6a6 core: MachineIndex has precision locking for entries 2014-04-21 13:51:14 -07:00
Mitchell Hashimoto 016afc7922 core: Basic MachineIndex class, starting point 2014-04-21 13:51:13 -07:00
Mitchell Hashimoto f07ee5754a core: Configurable communicator 2014-04-21 13:51:02 -07:00
Ramon de la Fuente f6a5e20688 Add autostart as an option for vagrant boxes
Added specs for the environment and vagrantfile. Added a methd to retrieve
autostart_machine_names. Changed the plugin up/command to use autostart_machine_names
when no argument was given to the command.
2014-04-21 13:50:57 -07:00
Mitchell Hashimoto e05bfa979e core: remove temp file when done with box 2014-04-17 08:58:38 -07:00
Mitchell Hashimoto ec35190cfc core: use process.alive? to avoid exceptions 2014-04-13 14:24:25 -07:00
Mitchell Hashimoto 00962c7c2a commands/box/repackage: better error if box not found 2014-04-12 18:00:33 -07:00
Mitchell Hashimoto 2cb6a21a5a core: Fix tests, which found broken logic in synced folders 2014-04-11 16:28:38 -07:00
Mitchell Hashimoto 2b47478d6a core: all symlinks for synced folders are expanded [GH-3444] 2014-04-11 16:21:12 -07:00
Mitchell Hashimoto 3aad85fa30 style 2014-04-11 09:56:35 -07:00
Mitchell Hashimoto cd2c99972b core: No need to map! here 2014-04-11 09:32:25 -07:00
Mitchell Hashimoto 44d7c6849d Merge pull request #3441 from berendt/sort_versions_and_print_listing
commands/box/remove: sort versions and print them as listing
2014-04-11 09:32:08 -07:00
Christian Berendt 8dffbe5db8 sort versions and print them as listing
before this patch:

```
$ vagrant box remove --box-version 0.2.9 berendt/ubuntu-14.04-amd64
You requested to remove the box 'berendt/ubuntu-14.04-amd64' version '0.2.9' with
provider 'virtualbox', but that specific version of the box is
not install. Please double-check and try again. The available versions
for this box are:

0.2.11, 0.2.10
```

after this patch:

```
You requested to remove the box 'berendt/ubuntu-14.04-amd64' version '0.2.9' with
provider 'virtualbox', but that specific version of the box is
not install. Please double-check and try again. The available versions
for this box are:

 * 0.2.10
 * 0.2.11
```
2014-04-11 11:39:38 +02:00
Christian Berendt c43bd27ffe print version when removing a specific box
Example:

$ vagrant box remove --box-version 0.2.9 berendt/ubuntu-14.04-amd64
Removing box 'berendt/ubuntu-14.04-amd64' with provider 'virtualbox' in version '0.2.9'...
2014-04-11 10:05:03 +02:00
Mitchell Hashimoto 41636a8a9c core: can't add boxes from network shares [GH-3279] 2014-04-09 14:15:26 -07:00
Mitchell Hashimoto d8ec7b02c4 commands/package: Nicer error if includes has symlinks [GH-3200] 2014-04-09 10:52:33 -07:00
Mitchell Hashimoto e748aadf4f core: give users chance to quit for upgrade [GH-3212] 2014-04-09 09:58:30 -07:00
Mitchell Hashimoto 1bef7dec61 Add comment to clarify 2014-04-05 09:37:59 -07:00
Mitchell Hashimoto 1cd266da9d core: randomize perm test filename 2014-04-05 09:36:55 -07:00
Mitchell Hashimoto 5f12126d32 core: network issues don't halt Vagrant during box update check [GH-3391] 2014-04-05 09:25:03 -07:00
Mitchell Hashimoto 0e46c5d9de core: Raise predictable error if box metadata downlaod fails 2014-04-05 09:20:03 -07:00
Mitchell Hashimoto 5b360d0990 core: BoxCollection#find version constraint can benil 2014-04-02 19:50:44 -07:00
Mitchell Hashimoto d1caf8c624 core: Allow direct box adding again 2014-04-02 19:45:49 -07:00
Mitchell Hashimoto 3371c37162 TemplateRenderer can take a new root [GH-3231] 2014-04-02 09:53:20 -07:00
Mitchell Hashimoto a1d9121852 synced_folders/smb: verify PowerShell v3 is running or later [GH-3257] 2014-04-02 09:45:42 -07:00
Mitchell Hashimoto 32d86ca42b core: don't allow version for old-style box [GH-3260] 2014-04-02 09:32:34 -07:00
Mitchell Hashimoto af7a589231 core: outdated check checks local boxes [GH-3321] 2014-04-02 08:37:03 -07:00
Mitchell Hashimoto 36ad327ec1 core: ignore if box doesn't exist on update check [GH-3326] 2014-04-02 08:24:38 -07:00
Mitchell Hashimoto 097dd2917c core: better error when adding box with malformed version [GH-3332] 2014-04-01 22:48:52 -07:00
Mitchell Hashimoto 8c8c6c132c core: lock prerelease gems 2014-04-01 22:28:33 -07:00
Mitchell Hashimoto 9c570adbd7 Merge pull request #3301 from mitchellh/fix-issue-3285
core: fix prerelease gem versions
2014-04-01 22:25:43 -07:00
Mitchell Hashimoto b6259c2ae9 core: Ignore if temporary box file doesn't exist when adding 2014-04-01 22:18:49 -07:00
Mitchell Hashimoto 666b270e0b core: can add boxes with spaces in paths [GH-3306] 2014-04-01 22:18:37 -07:00
Mitchell Hashimoto 7d0cbcb686 Merge pull request #3318 from ecoleman/patch-1
core: properly escape path in cygwin bash check
2014-04-01 22:02:29 -07:00
Mitchell Hashimoto 8195f7faab core: add test for removing box version [GH-3364]
/cc @berendt - Added a test
2014-04-01 21:47:51 -07:00
Christian Berendt 7d38d78fee handle exception when removing a non existinga box version
When trying to remove a not existing version of an existing box an
exception is thrown. The exception should be handled and some message
(box version 0.1.2 not available) should be printed.

With this patch the exception is handled correctly by using a newly
introduced exception BoxRemoveVersionNotFound.

Example output:

You requested to remove the box 'berendt/alpine-2.7.5-amd64' with provider
'virtualbox' in version '0.0.2'. The box 'berendt/alpine-2.7.5-amd64'
exists but not in the specified version '0.0.2'.
Please double-check and try again.

The available versions for this box are: 0.1.0

Fixes issue #3344
2014-03-31 20:32:34 +02:00
Eric Coleman f32a865abd Properly escape path in cygwin bash check
Quick attempt at properly fixing #3304
2014-03-25 18:36:05 -04:00
Shawn Neal 0a2992b92d Fixed issue 3285
When using prerelease gems we need to ensure we store the gem version otherwise Bundler won't use the correct gem version since prerelease gems are not available by default. By storing the gem version for prerelease gems, we allow Bundler to properly resolve prerelease gems and not give potentially confusing errors to Vagrant users using prerelease plugins.
2014-03-21 08:15:24 -07:00
Mitchell Hashimoto 846f942ff0 core: check for data_dir [GH-3208] 2014-03-14 14:04:00 -07:00
Jonas Stendahl d7320399e2 Fixed broken PowerShell scripts execution [GH-3192] 2014-03-14 12:42:28 +01:00
Mitchell Hashimoto 024056fc66 Set the Bundler UI only if we enable it [GH-3193] 2014-03-13 14:18:33 -07:00
Mitchell Hashimoto 513efa6739 core: Downloads with user/pass use curl -u flag [GH-3183] 2014-03-13 08:53:18 -07:00
Mitchell Hashimoto 8634cc309b core: error earlier if adding a path that doesn't exist 2014-03-12 20:33:12 -07:00
Mitchell Hashimoto 621369ebba core: Execute PowerShell scripts even with spaces in dir [GH-3100] 2014-03-12 19:49:45 -07:00
Mitchell Hashimoto 5863ffdf7b core: Windows paths work for box add [GH-3132] 2014-03-11 11:27:35 -07:00
Mitchell Hashimoto 49471ffbf6 core: output when upgrading home path 2014-03-11 11:06:38 -07:00
Mitchell Hashimoto eb9b85c388 core: UI#ask with no echo works even if noecho not supported [GH-3119] 2014-03-11 09:58:49 -07:00
Mitchell Hashimoto 2a93b6c396 core: Assume box isn't metadata if > threshold [GH-3107] 2014-03-11 08:44:05 -07:00
Mitchell Hashimoto 122319834c core: Setup the tmp_path before calling setup_home_path [GH-3095] 2014-03-10 15:09:09 -07:00
Mitchell Hashimoto b6830639dd core: EINVAL is not a metadata URL 2014-03-10 14:33:30 -07:00
Mitchell Hashimoto ee23b87eb6 core: Private boxes authenticate metadata box URLs too 2014-03-09 19:24:54 -07:00
Mitchell Hashimoto 04a19e05ca synced_folders/rsync: convert to proper unix-style path [GH-3086] 2014-03-09 18:22:00 -07:00
Mitchell Hashimoto c6b07e10c9 core: Cygwin path conversion must replace slashes first 2014-03-07 22:56:47 -08:00
Mitchell Hashimoto 914d177346 core: Fix misleading wording in pre-rubygems [GH-3078] 2014-03-07 10:44:00 -08:00
Mitchell Hashimoto 4c9e6e46b2 provisioners/salt: don't use exteranl deep_merge [GH-2348] 2014-03-07 09:18:34 -08:00
Mitchell Hashimoto adc8151a4a core: the provision sentinel should be backwards compatible 2014-03-06 09:25:29 -08:00
Mitchell Hashimoto 79df69392f core: initialize synced folder class only once [GH-3067] 2014-03-06 08:35:21 -08:00
Mitchell Hashimoto 6fefef7538 core: packaging works again 2014-03-05 13:37:15 -08:00
Mitchell Hashimoto 7f2fe524b3 core: use default color by default (not white) 2014-03-05 10:19:53 -08:00
Mitchell Hashimoto 3348b5d7a6 core: set default server URL 2014-03-05 07:20:52 -08:00
Mitchell Hashimoto c098a3296b core: safer dup checks for synced folders 2014-03-03 20:38:59 -08:00
Mitchell Hashimoto 4437bcd77f core: better error if attempting to uninstall system plugin 2014-03-03 15:05:32 -08:00
Mitchell Hashimoto b5637da6c4 core: plugin manager marks system gems as system 2014-03-03 14:55:34 -08:00
Mitchell Hashimoto 7710fd16fa core: load system plugins if they are installed 2014-03-03 09:44:29 -08:00
Mitchell Hashimoto 616bf15df5 core: Vagrant.installer_embedded_dir 2014-03-03 09:37:22 -08:00
Bernhard Morgenstern 9f612402e9 Read box file in binary mode for checksum 2014-03-02 02:31:29 +01:00
Mitchell Hashimoto a858257ffe core: duplicate URL array when authing so we don't mess up original 2014-03-01 12:32:58 +01:00
Mitchell Hashimoto 5018e4d8a4 core: checksums supported when adding box from metadata 2014-03-01 12:03:22 +01:00
Mitchell Hashimoto 23bd397cb8 core: BoxMetadata supports checksums 2014-03-01 11:59:16 +01:00
Mitchell Hashimoto ce350fe872 core: box checksums just work properly again for direct box adds 2014-03-01 11:54:37 +01:00
Mitchell Hashimoto 7926f7f051 core: box URLs can be authenticated by hooking 2014-03-01 11:38:04 +01:00
Mitchell Hashimoto 736bd8d34e core: remove unused variable from Message builtin 2014-02-28 05:17:52 -06:00
Mitchell Hashimoto c735e81e4d core: expand IsState to support inversions 2014-02-27 08:13:12 -08:00
Mitchell Hashimoto e93038fd0e providers/hyperv: suspend/resume 2014-02-27 08:13:11 -08:00
Mitchell Hashimoto 784a5b2e32 providers/hyperv: all sorts of tests to verify Windows/admins 2014-02-27 08:12:51 -08:00
Mitchell Hashimoto a1958ee12f providers/hyperv: shuffle things around 2014-02-27 08:12:48 -08:00
Mitchell Hashimoto 6b17783688 synced_folders/nfs: unavailable on Windows 2014-02-27 08:11:50 -08:00
Mitchell Hashimoto 5f1caf3ada core: re-ask if confirmation bad input [GH-3027] 2014-02-26 08:01:45 -08:00
Mitchell Hashimoto dfee3f8445 core: default URL will be https 2014-02-25 21:39:32 -08:00
Mitchell Hashimoto b8676a65dd core: Vagrant.server_url should default if empty 2014-02-25 21:39:05 -08:00
Lucas Heinlen e530108b6a Do not to_s the machine id if it is nil
When destroying a machine, the machine id is set to nil, the to_s causes it to be set to empty string.  This can cause inconsistent behavior in anything (such as plugins) that tests the machine id.
2014-02-24 15:43:58 -05:00
Mitchell Hashimoto 4c070a04d2 core: if can't communicate, force halt right away 2014-02-23 22:25:59 -08:00
Mitchell Hashimoto 8bb0094113 Avoid locking in trap context 2014-02-23 22:22:18 -08:00
Mitchell Hashimoto a667893cbf provisioners/shell: error if invalid encoding [GH-3000] 2014-02-23 21:50:53 -08:00
Mitchell Hashimoto 399a3e48da core: provisioner sentinel should check machine ID 2014-02-23 21:23:31 -08:00
Mitchell Hashimoto 0e3b3d654d Depend on ChildProcess 0.5.0, fix bugs 2014-02-18 11:15:19 -08:00
Mitchell Hashimoto 4f89bdb947 core: disable parallelization if only one action 2014-02-15 16:37:27 -08:00
Mitchell Hashimoto 4e90aa7824 core: copy all sub-directories in a box properly
This avoids an Errno::EACCES on windows, although I'm really unsure why.
2014-02-15 15:55:33 -08:00
Mitchell Hashimoto a4f64d0148 core: ui can hide details 2014-02-13 21:09:02 -08:00
Mitchell Hashimoto d2d96a0726 core: keep process group for SSH childprocess 2014-02-13 16:45:45 -08:00
Mitchell Hashimoto 5fb64dfca2 core: use Process#wait since childprocess bug is fixed 2014-02-13 07:40:33 -08:00
Mitchell Hashimoto 8bfb4bda2b core: make sure any Subprocess exits no matter what 2014-02-12 21:35:54 -08:00
Mitchell Hashimoto 42fa0a6540 core: poll for process exit on SSH#exec with subprocess 2014-02-12 21:31:05 -08:00
Mitchell Hashimoto 79581df71b core: chomp the version so we can echo into it 2014-02-12 15:01:12 -08:00
Mitchell Hashimoto 2c72c32df0 core: Modify Bundler settings to work with restricted permissions
This includes two changes:

1. Change the Vagrant requirement to use the "= VERSION" constraint.
   The "path:" previously requires write permission in the directory
   of the gemspec, which we don't have in installers.

2. Set a BUNDLE_APP_CONFIG and BUNDLE_PATH setting. By setting this,
   Bundler won't ask for sudo password. Bundler never actually needs it;
   it is just overly aggressive in thinking it does.
2014-02-12 14:24:17 -08:00
Mitchell Hashimoto 06a7c88316 core: HandleBox keeps the same machine instance 2014-02-11 16:06:03 -08:00
Mitchell Hashimoto c280af0b9c core: keep the same UI when handling a box URL 2014-02-11 16:03:25 -08:00
Mitchell Hashimoto 2550a76edb core: Machine can set box 2014-02-11 13:31:50 -08:00
Mitchell Hashimoto dd9dd5127c Merge pull request #2948 from gnawhleinad/master
command/*: clean up usage
2014-02-10 09:02:32 -08:00
Mitchell Hashimoto 342fba8182 core: Ui::Prefixed values instance-level opts 2014-02-08 15:15:06 -08:00
Mitchell Hashimoto e6ca9d6f81 core: Ui::Prefixed can take prefix_spaces option 2014-02-08 15:14:21 -08:00
Mitchell Hashimoto 2d7c161f49 core: Ui#dup works properly 2014-02-08 15:11:51 -08:00
Mitchell Hashimoto 86454ddac9 core: Environment#lock tests 2014-02-08 14:50:52 -08:00
Mitchell Hashimoto 1e50e7aca1 core: Prefixed UI only requests bolding if not specified at instance-level 2014-02-08 14:26:26 -08:00
Mitchell Hashimoto efc1bf50dd core: Machine#with_ui 2014-02-08 14:03:31 -08:00
gnawhleinad fbcac2978e clean up usage 2014-02-08 00:20:50 -08:00
Mitchell Hashimoto 2846850306 core: HandleBox reloads machine from proper Vagrantfile 2014-02-07 11:51:04 -08:00
Mitchell Hashimoto 46a42eb9c2 core: when loading box metadata, specify JSON header 2014-02-07 10:51:57 -08:00
Mitchell Hashimoto b9aa2acddc core: request JSON type when getting the metadata URL 2014-02-07 10:33:08 -08:00
Mitchell Hashimoto d4c753c48d core: download metadata with JSON accept header 2014-02-07 10:30:25 -08:00
Mitchell Hashimoto 8e9ceeaf5c core: Machine has reference to Vagrantfile 2014-02-07 09:16:55 -08:00
Mitchell Hashimoto 66f722ef68 core: Alphabetize functions and comment better in Environment 2014-02-06 21:36:57 -08:00
Mitchell Hashimoto 8af67cf241 core: update docs for Vagrant::Environment 2014-02-06 21:33:28 -08:00
Mitchell Hashimoto 3533256cd7 core: Vagrantfile can create machines, Environment#machine uses that 2014-02-06 21:31:11 -08:00
Mitchell Hashimoto 506e1a433f core: Vagrantfile#machine_config returns more info now 2014-02-06 21:04:59 -08:00
Mitchell Hashimoto e2403c093d core: Vagrantfile class now adheres to box_version 2014-02-06 20:17:24 -08:00
Mitchell Hashimoto 7549704c5b core: Environment#config_global is gone! 2014-02-06 20:12:16 -08:00
Mitchell Hashimoto e3a67f7ab6 core: Environment uses the new Vagrantflie class 2014-02-06 20:12:15 -08:00
Mitchell Hashimoto 99346cc516 core: add Vagrantfile class, tests 2014-02-06 20:11:12 -08:00
Mitchell Hashimoto cac0fdb490 core: Add the default server URL 2014-02-05 21:20:37 -08:00
Mitchell Hashimoto becc349846 core: handle native windows paths like 'c:\foo.box'
[GH-2081]
2014-02-05 21:20:35 -08:00
Mitchell Hashimoto 751b4da2c6 core: if box is unversioned, check update does nothing 2014-02-05 21:20:32 -08:00
Mitchell Hashimoto 647563edaf core: shorthand boxes must be foo/bar formatted, better errors 2014-02-05 21:20:31 -08:00
Mitchell Hashimoto 433e789a99 core: set URL to opaque if there is no path 2014-02-05 21:20:30 -08:00
Mitchell Hashimoto b194525521 core: output a newline after ask with no echo 2014-02-05 21:20:28 -08:00
Mitchell Hashimoto 1a7b78e00e core: UI supports not echoing 2014-02-05 21:20:27 -08:00
Mitchell Hashimoto 7a6d1a3ff1 commands/box: update command can update a specific box now 2014-02-05 21:20:23 -08:00
Mitchell Hashimoto 43157fba18 core: output the version that is added with BoxAdd 2014-02-05 21:20:20 -08:00
Mitchell Hashimoto 61a1082d65 core: BoxCheckOutdated is *much* simpler, unified logic, tests 2014-02-05 21:20:18 -08:00
Mitchell Hashimoto bfca65b098 core: better output for BoxCheckOutdated 2014-02-05 21:20:16 -08:00
Mitchell Hashimoto ea06202903 core: get rid of unnecessary lines 2014-02-05 21:20:15 -08:00
Mitchell Hashimoto b5157df2cc core: BoxCheckOutdated only runs if told to 2014-02-05 21:20:14 -08:00
Mitchell Hashimoto 8cc16d14fa core: BoxCheckOutdated checks locally 2014-02-05 21:20:13 -08:00
Mitchell Hashimoto d78194654d core: ability to hide success UI 2014-02-05 21:20:12 -08:00
Mitchell Hashimoto e537e02d9d core: BoxCheckOutdated can check if a box is outdated 2014-02-05 21:20:11 -08:00
Mitchell Hashimoto f2509f5c65 commands/box: outdated command to find outdated boxes 2014-02-05 21:20:10 -08:00
Mitchell Hashimoto b81686e2c9 core: BoxAdd adds the metadata URL 2014-02-05 21:20:08 -08:00
Mitchell Hashimoto bd9f375263 core: Box can store a metadata URL 2014-02-05 21:20:07 -08:00
Mitchell Hashimoto e9afe386c1 core: remove BoxUpgradeRequired exception 2014-02-05 21:20:06 -08:00
Mitchell Hashimoto d278fb2661 core: catch ENOENT as not a metadata URL 2014-02-05 21:20:04 -08:00
Mitchell Hashimoto 2ea6f92a6c core: Cleaner output for BoxAdd 2014-02-05 21:20:03 -08:00
Mitchell Hashimoto fa77d6810f core: BoxAdd expands URL paths 2014-02-05 21:20:02 -08:00
Mitchell Hashimoto 8ab3ae1bef core: BoxAdd UI looks better 2014-02-05 21:20:00 -08:00
Mitchell Hashimoto f0607c6df0 core: BoxAdd supports multiple URLs properly 2014-02-05 21:19:59 -08:00
Mitchell Hashimoto 38248c240c core: BoxAdd errors if name doesn't match metadata 2014-02-05 21:19:58 -08:00
Mitchell Hashimoto b23ad41c40 core: HandleBox reloads the box 2014-02-05 21:19:57 -08:00
Mitchell Hashimoto f2c4adc4ee core: use symbol names for providers everywhere 2014-02-05 21:19:56 -08:00
Mitchell Hashimoto e316e10552 core: make sure the env has the UI in it for adding boxes 2014-02-05 21:19:55 -08:00
Mitchell Hashimoto a115750401 core: HandleBox works with metadata boxes 2014-02-05 21:19:52 -08:00
Mitchell Hashimoto b2fa785d07 core: Environment loads proper version of box 2014-02-05 21:19:51 -08:00
Mitchell Hashimoto d08866e9f3 core: nicer error if shorthand can't be found 2014-02-05 21:19:49 -08:00
Mitchell Hashimoto 1bd3275b3b core: output the expanded URL 2014-02-05 21:19:48 -08:00
Mitchell Hashimoto 5aba445cac core: shorthand box adds wor 2014-02-05 21:19:47 -08:00
Mitchell Hashimoto f9fe025d10 core: helper to get the server URL 2014-02-05 21:19:46 -08:00
Mitchell Hashimoto 7b8002eba7 core: don't prefix ask statements 2014-02-05 21:19:45 -08:00
Mitchell Hashimoto b71cde6b99 core: make box add UI much icer 2014-02-05 21:19:44 -08:00
Mitchell Hashimoto c7fc9d1d46 core: BoxRemove works, tests 2014-02-05 21:19:42 -08:00
Mitchell Hashimoto 8ef13b037c core: add a space to the question; 2014-02-05 21:19:40 -08:00
Mitchell Hashimoto f9c9559320 core: ask what provider to use if multiple providers 2014-02-05 21:19:38 -08:00
Mitchell Hashimoto e38ce34e56 core: make the BoxAdd UI look a bit better 2014-02-05 21:19:37 -08:00
Mitchell Hashimoto acc57a3c18 core: clarify output for boxadd error message 2014-02-05 21:19:36 -08:00
Mitchell Hashimoto 0fceed6ff4 core: BoxAdd uses the proper path on Unix 2014-02-05 21:19:35 -08:00
Mitchell Hashimoto 05eeefbe36 core: Fix Downloader tests 2014-02-05 21:19:34 -08:00
Mitchell Hashimoto c31feb0e94 core: fix missing interpolation for boxcollection 2014-02-05 21:19:33 -08:00
Mitchell Hashimoto 8f0f0506d6 core: BoxAdd requires name if old-style box 2014-02-05 21:19:32 -08:00
Mitchell Hashimoto 09e8666296 core: BoxAdd now works with HTTP URLs 2014-02-05 21:19:31 -08:00
Mitchell Hashimoto 03b22ab9a1 core: add the box_added to the middleware 2014-02-05 21:19:30 -08:00
Mitchell Hashimoto 1ca7f86f76 core: verify providers with direct box adding 2014-02-05 21:19:29 -08:00
Mitchell Hashimoto 75cffe53d1 core: BoxAdd checks if box already exists for metadata
unless force
2014-02-05 21:19:28 -08:00
Mitchell Hashimoto c1989603be core: adding from metadata wlil force if specified 2014-02-05 21:19:27 -08:00
Mitchell Hashimoto 2a08302145 core: BoxAdd can add old boxes (happy path) 2014-02-05 21:19:26 -08:00
Mitchell Hashimoto 961d3607b9 core: add newline to end of download if windows 2014-02-05 21:19:24 -08:00
Mitchell Hashimoto adbcc9f34e core: delete the temporary file if adding succeeds 2014-02-05 21:19:23 -08:00
Mitchell Hashimoto ee139eb79d core: more output for box adding 2014-02-05 21:19:22 -08:00
Mitchell Hashimoto 5b075fa34e core: BoxAdd adds matching provider even if lower version 2014-02-05 21:19:20 -08:00
Mitchell Hashimoto 80194cde35 core: BoxMetadata#version can constrain by providers 2014-02-05 21:19:19 -08:00
Mitchell Hashimoto 7d44cd61c9 core: BoxAdd can add from metadata, version constraints, more 2014-02-05 21:19:18 -08:00
Mitchell Hashimoto 15aa91b073 core: can add/search boxes with slashes in name 2014-02-05 21:19:17 -08:00
Mitchell Hashimoto 8abcc6e5f2 core: BoxMetadata can read the JSON description 2014-02-05 21:19:15 -08:00
Mitchell Hashimoto e111b7a691 core: environment tests pass 2014-02-05 21:19:12 -08:00
Mitchell Hashimoto d87c414327 core: Box has a version field 2014-02-05 21:19:10 -08:00
Mitchell Hashimoto 87a85488d1 core: all box collection tests pass 2014-02-05 21:19:09 -08:00
Mitchell Hashimoto 4c1fa7359d core: BoxCollection can find with version constraints 2014-02-05 21:19:07 -08:00
Mitchell Hashimoto 77b5fa94b7 core: BoxCollection#all returns versions 2014-02-05 21:19:06 -08:00
Mitchell Hashimoto 6cddb92407 core: error if newer home dir version is detected 2014-02-05 21:19:05 -08:00
Mitchell Hashimoto b52d33e0af core: upgrade to v1.5 box dir format if it can 2014-02-05 21:19:04 -08:00
Mitchell Hashimoto 5253da79cd core: use a Monitor in BoxCollection 2014-02-05 21:19:03 -08:00
Mitchell Hashimoto a03bc763f9 core: tests around the environment setup_version 2014-02-05 21:19:01 -08:00
Mitchell Hashimoto f72db0c611 core: config raises NoMethodError on bad calls once finalized 2014-02-05 16:14:58 -08:00
Mitchell Hashimoto 5030a16f84 kernel/v2: default all configs properly, remove config/default.rb 2014-02-05 15:36:35 -08:00
Mitchell Hashimoto f63ef395f1 Merge branch 'rsync_install' of https://github.com/tmatilai/vagrant into tmatilai-rsync_install
Conflicts:
	plugins/guests/freebsd/plugin.rb
	plugins/guests/netbsd/plugin.rb
	plugins/guests/openbsd/plugin.rb
2014-02-03 12:12:49 +01:00
Mitchell Hashimoto 592c577b2e Merge pull request #2922 from tmatilai/file_provisioner_expand_path
provisioners/file: expand destination path if capable
2014-02-03 02:52:57 -08:00
Teemu Matilainen e634cdc824 guests: rename LinuxShellExpandFailed error to ShellExpandFailed
Make the error generic for all guests (`DarwinShellExpandFailed` didn't
even exist) and not tied to synced folder.
2014-02-02 17:26:54 -03:00
Mitchell Hashimoto 07389f26ed core: Force bundler usage if in Installer 2014-02-02 20:32:39 +01:00
Mitchell Hashimoto 3ed7b2618a Add new version.txt used to generate installers 2014-02-02 15:33:12 +01:00
Mitchell Hashimoto bc55081e9f core: execute the specified Vagrant executable in pre-rubygems.rb 2014-02-01 16:28:45 +01:00
Teemu Matilainen ee2ae94c25 synced_folders/rsync: Install `rsync` on guest if needed
Add new `rsync_installed` and `rsync_install` guest capabilities
to detect and install `rsync`.

Also copy `rsync_pre` capability to all Unix guests.
2014-01-31 02:12:57 -03:00
Mitchell Hashimoto 83b22de944 Merge pull request #2888 from obfusk/fix-mktmpdir
core: Clean up temp dir used by fs_case_sensitive?
2014-01-27 09:26:43 -08:00
Mitchell Hashimoto a924a7b48c core: provider capabilities 2014-01-26 14:15:06 -08:00
Felix C. Stegerman 5c3555b56b Clean up temp dir used by fs_case_sensitive? 2014-01-25 04:57:52 +01:00
Mitchell Hashimoto 0e9cac5b07 core: clear line with \033[K 2014-01-23 13:22:10 -08:00
Mitchell Hashimoto 00530303fb core: color success Ui green 2014-01-23 13:15:07 -08:00
Mitchell Hashimoto 2b9e7ca14e core: merge default synced folders ,don't override [GH-2873] 2014-01-21 20:13:08 -08:00
Mitchell Hashimoto e80552b6aa core: if synced folder type is blank, use default 2014-01-21 20:10:32 -08:00
Mitchell Hashimoto 06f1ebf752 core: add more tests for MachineReadable UI 2014-01-21 12:11:53 -08:00
Mitchell Hashimoto f2f58655e8 core: get rid of more references to scope, old terminology 2014-01-21 12:06:04 -08:00
Mitchell Hashimoto 26366d0673 core: remove BasicScope class, not used anymore 2014-01-21 12:04:32 -08:00
Mitchell Hashimoto a32e154e6e core: use cleaner UI abstractions 2014-01-20 17:18:36 -08:00
Mitchell Hashimoto fc86a10796 core: only bold when output is part of a machine 2014-01-20 16:37:06 -08:00
Mitchell Hashimoto 714c690d8b Merge pull request #2857 from mitchellh/f-ui-revamp
UI revamp
2014-01-20 16:22:36 -08:00
Carlos López 8d1cc513ec Fixed: dup string if frozen when formatting output for machine. 2014-01-19 14:34:32 +00:00
Mitchell Hashimoto 3f62addac2 core: make output white for now 2014-01-17 21:53:17 -08:00
Mitchell Hashimoto 0eec9aa599 core: extensive tests for Vagrant::UI classes 2014-01-17 21:31:07 -08:00
Mitchell Hashimoto ac2ca2537d core: Ui color should be red on errors, yellow on warnings 2014-01-17 21:03:05 -08:00
Mitchell Hashimoto 1b8f1a3864 core: convert more output to `output` method 2014-01-17 21:03:04 -08:00
Mitchell Hashimoto 5b449c8000 providers/virtualbox: many `detail` level output 2014-01-17 21:03:00 -08:00
Mitchell Hashimoto b557ee5625 core: align text and make sure its all lined up with prefixes 2014-01-17 21:02:59 -08:00
Mitchell Hashimoto f3d102e069 core: colorize VM output for each VM in a command 2014-01-17 21:02:58 -08:00