Commit Graph

3565 Commits

Author SHA1 Message Date
Seth Vargo 1166800b65 Use SSL and HTTPS links where appropriate 2016-01-25 13:14:54 -05:00
Mark Mickan 1378eebea9 Use pristine version string when constructing path to box
Without this change, the version string may be mutated when passed through
Gem::Version.new(version).to_s before being used to construct the box
directory.  This is a problem when using prerelease version numbers because,
for example, it will look for "~/.vagrant.d/boxes/1.0.0.pre.alpha.1" when it
should be looking for "~/.vagrant.d/boxes/1.0.0-alpha.1".
2016-01-20 10:22:00 +10:30
Peter Mosmans 4b889ee641 Fix for #6761 (fixes incomplete #6598) 2015-12-30 07:56:08 +10:00
Mitchell Hashimoto cf4b03d701 core: do not convert drive letters to UNC paths [GH-6598] 2015-12-24 12:36:14 -08:00
Mitchell Hashimoto 0de44a116b core: use env var for bundle retries [GH-6705] 2015-12-24 12:16:12 -08:00
Mitchell Hashimoto 06a1461081 Merge pull request #6662 from lukebakken/fixes/lrb/gh-4503-hyper-v-admin-privs
Fix for 4503
2015-12-14 15:56:55 -08:00
Mitchell Hashimoto 884782f3ce Merge pull request #6603 from mitchellh/sethvargo/cleanup_output
Only run cleanup tasks when they are defined on the provisioner
2015-12-14 15:41:17 -08:00
Mitchell Hashimoto 739d29e8fa Merge pull request #6612 from reedloden/virtualbox-checksum
Add checksum validation for the VirtualBox installs on Windows and OS X
2015-12-14 15:39:46 -08:00
Luke Bakken 57187c9f88 Add method to detect if a Windows user is a member of the "Hyper-V Administrators" group.
Modify Hyper-V provider to require a user to either be an Administrator or a member of "Hyper-V Administrators"
2015-12-10 07:04:39 -08:00
Seth Vargo 4e21dd78e4 Ignore case when comparing checksums
Fixes GH-6648
2015-12-07 10:30:46 -05:00
Mitchell Hashimoto 30d9e243bb fix failing tests 2015-12-02 18:03:08 -08:00
Mitchell Hashimoto 5c4e71e317 core: machine output provider info for the machine 2015-12-02 13:06:07 -08:00
Mitchell Hashimoto cee517d963 core: fix machine readable UI to contain target and have proper format 2015-12-02 13:06:07 -08:00
Reed Loden 7d81728e45 Add checksum validation for the VirtualBox installs on Windows and OS X
Use Vagrant::Util::FileChecksum to validate the downloaded VirtualBox
installers.

SHA-256 checksums for VirtualBox files are available at
https://www.virtualbox.org/download/hashes/5.0.10/SHA256SUMS.

Fixes #6611.
2015-11-28 00:04:41 -08:00
Seth Vargo 64ff69c64b Only run cleanup tasks when they are defined on the provisioner
This helps with some confusion caused in GH-2538, since the output says:

> Running cleanup tasks for 'shell' provisioner...

But that's actually not true. It is running the cleanup tasks iff the 
provisioner defined a cleanup task. This commit changes the 
provisioner_cleanup middleware to only run cleanup tasks if the subclass
defines a cleanup task.

The reason we can't just check if the provisioner `respond_to?` the
`cleanup` method is because the parent provisioner base class (which 
all provisioners inherit from) defines a blank cleanup method. This is
important because it means we never risk calling an unimplemented
cleanup function, and it also helps define the public API for a 
provisioner.
2015-11-26 13:11:51 -05:00
Timur Alperovich 5b910c186c Fix the resolution of SafeEnv.
Recent change broke bundler.rb due to incorrect scope resolution (the
error is: uninitialized constant Vagrant::Bundler::SafeEnv
(NameError).
2015-11-24 12:18:50 -08:00
Seth Vargo 8c3f833e8e Use the new presence helpers in the Chef provisioner 2015-11-23 18:33:47 -05:00
Seth Vargo 4c55c39b2d Add presence helpers 2015-11-23 18:04:18 -05:00
Mitchell Hashimoto 7f93868c86 Merge pull request #6567 from mitchellh/b-prune-folders
core: remove saved synced folders not from Vagrantfile
2015-11-23 10:06:51 -08:00
Mitchell Hashimoto 21cacb6eb8 core: file:/// for windows paths [GH-5288] 2015-11-23 09:53:28 -08:00
Mitchell Hashimoto 1405395d81 core: catch EINVAL on setting env vars [GH-6017] 2015-11-23 09:39:51 -08:00
Mitchell Hashimoto 4e1ba3a027 core: fix file URLs from cygwin on Windows [GH-5747] 2015-11-23 09:30:27 -08:00
Mitchell Hashimoto 104066c678 core: assume all windows shells now have TTYs 2015-11-23 09:10:33 -08:00
Mitchell Hashimoto d5fa7416ff core: more heuristics for determining Cygwin 2015-11-21 11:17:36 -08:00
Mitchell Hashimoto c471f37955 core: parse line numbers for Vagrantfile syntax errors on Win [GH-6445] 2015-11-20 15:34:52 -08:00
Mitchell Hashimoto b6f0b498e4 core: expand Windows short paths 2015-11-20 14:49:21 -08:00
Mitchell Hashimoto 9c1b014536 core: remove saved synced folders not from Vagrantfile 2015-11-20 10:25:09 -08:00
Mitchell Hashimoto 2ade66443e core: retry bundler network calls a few times [GH-6097] 2015-11-19 23:57:16 -08:00
Mitchell Hashimoto d3ab73cf4a core: when packaging, preserve generated key [GH-5780] 2015-11-19 18:18:51 -08:00
Seth Vargo 02a351841e Use an array instead of map 2015-11-19 16:32:43 -08:00
Eli Skeggs 2b9173e15a Support environment variable forwarding, fixes #4131
Signed-off-by: Eli Skeggs <eskeggs@globesherpa.com>
2015-11-19 16:25:54 -08:00
Mitchell Hashimoto 1ccd91aada Merge pull request #4473 from rtkrruvinskiy/https_metadata
Add HTTPS download options to `box update` and `box outdated`
2015-11-19 16:16:48 -08:00
Mitchell Hashimoto e0ef592544 core: retry if server doesn't support byte ranges on download [GH-4479] 2015-11-19 16:14:13 -08:00
Mitchell Hashimoto c541767949 core: add tests for box collection cleanup [GH-6002] 2015-11-19 15:59:58 -08:00
Mitchell Hashimoto ed9bc1e847 Merge branch '3570-box-data-left' of https://github.com/ievgenp/vagrant into ievgenp-3570-box-data-left 2015-11-19 15:45:47 -08:00
Seth Vargo eac1960d45 Fix some Ruby 2015-11-19 10:25:32 -08:00
Mitchell Hashimoto 2ffbe4e6e1 core: more robust WIndows admin check [GH-5616] 2015-11-18 20:27:07 -08:00
Mitchell Hashimoto be29915bed Merge pull request #6542 from mitchellh/b-dotfile
core: don't make dotfile path if no Vagrantfile
2015-11-18 18:10:19 -08:00
Mitchell Hashimoto 079ee6ea95 Merge pull request #6540 from mitchellh/b-non-http-head
core: don't do HEAD request for box on non-HTTP [GH-5477]
2015-11-18 18:09:31 -08:00
Mitchell Hashimoto 7c9fd58786 core: log if not checking box metadata 2015-11-18 18:09:18 -08:00
Mitchell Hashimoto 646414b347 core: don't make dotfile path if no Vagrantfile 2015-11-18 17:48:24 -08:00
Mitchell Hashimoto 7c49fd1418 core: fix crash on invalid checksum type [GH-6327] 2015-11-18 17:36:52 -08:00
Mitchell Hashimoto 891c47c742 core: don't do HEAD request for box on non-HTTP [GH-5477] 2015-11-18 16:52:40 -08:00
Mitchell Hashimoto 1a7937ed50 core: don't replace insecure key on base package [GH-5310] 2015-11-18 16:25:07 -08:00
Mitchell Hashimoto 0ce636d1a3 core: avoid locking in trap context 2015-11-18 16:07:49 -08:00
Mitchell Hashimoto 85f1e05e2a core: prune machine if non-existent CWD from index [GH-4742] 2015-11-18 15:48:59 -08:00
Mitchell Hashimoto 9ce26393bb Merge pull request #6479 from legal90/fix-fp-collision-handling
Bugfix: Remove redundant app call from action "handle_forwarded_port_collisions"
2015-11-18 15:13:40 -08:00
Mitchell Hashimoto 9e1a119a4b Merge pull request #6475 from nikelmwann/linux-host-use-xfreerdp
Prefer xfreerdp for RDP connections on Linux hosts.
2015-11-18 15:12:47 -08:00
Mitchell Hashimoto cccdb87388 Merge pull request #6407 from josephfrazier/patch-1
handle_forwarded_port_collisions.rb: fix typo: "Reparied" -> "Repaired"
2015-11-18 14:38:03 -08:00
Mitchell Hashimoto d69d7047b2 Merge pull request #6386 from legal90/fix-osx-nic-order
Fix network configuration in OS X (Darwin) guests
2015-11-18 14:33:51 -08:00
Mitchell Hashimoto 946d2fe154 Merge pull request #4738 from robkinyon/skip_default_sources
Added a --plugin-clean-sources parameter
2015-11-18 11:20:34 -08:00
Austin Schutz 96e4544949 use env.ui for action logging 2015-11-18 11:15:02 -08:00
Austin Schutz 566e21d3fc add machine readable logging, action starts/ends 2015-11-18 11:15:02 -08:00
Gilles Cornu c6ef73a6fa Merge 'gildegoma/2103-ansible-local-v2'
Resolve conflict in CHANGELOG.md
2015-11-10 23:05:29 +01:00
Christian Berendt 3f4a372d57 Remove all available versions of a box
This patch introduces a new parameter --all for the remove
command of the box plugin. Setting this parameter will remove
all available versions of a specific box.

Example usage:

```
$ vagrant box list
ubuntu/trusty64 (virtualbox, 20150427.0.0)
ubuntu/trusty64 (virtualbox, 20150430.0.0)
ubuntu/trusty64 (virtualbox, 20150506.0.0)
```

```
$ vagrant box remove ubuntu/trusty64
You requested to remove the box 'ubuntu/trusty64' with provider
'virtualbox'. This box has multiple versions. You must
explicitly specify which version you want to remove with
the `--box-version` flag. The available versions for this
box are:

 * 20150427.0.0
 * 20150430.0.0
 * 20150506.0.0
```

With the --all parameter it is possible to remove all versions at once.

```
$ vagrant box remove --all ubuntu/trusty64
Removing box 'ubuntu/trusty64' (v20150506.0.0) with provider 'virtualbox'...
Removing box 'ubuntu/trusty64' (v20150430.0.0) with provider 'virtualbox'...
Removing box 'ubuntu/trusty64' (v20150427.0.0) with provider 'virtualbox'...
```
2015-11-09 09:32:18 +00:00
Gilles Cornu 9bfdaf7e75 provisioners/ansible: introduce ansible_local
With this change, the existing host-based Ansible provisioner is
refactored to share a maximum of code with this new guest-based Ansible
provisioner.

At this stage of development, the existing unit tests are intentionally
modified as little as possible, to keep safe the existing funtionalities.

Other issues resolved by this changeset:
 - Display a warning when running from a Windows host [GH-5292]
 - Do not run `ansible-playbook` in verbose mode when the `verbose` option
   is set to an empty string.
2015-11-08 10:42:48 +01:00
Mitchell Hashimoto baea923e9c commands/up: automatically install providers 2015-11-05 13:58:15 -08:00
Mitchell Hashimoto 69d9bc0fe8 Environment can_install_provider and install_provider 2015-11-05 11:50:10 -08:00
Mitchell Hashimoto dad5962ebb hosts/darwin: support virtualbox install 2015-11-04 15:47:56 -08:00
Mitchell Hashimoto d4ddb3c2f3 commands/provider 2015-11-04 14:20:48 -08:00
Mikhail Zholobov c60e116121 Remove redundant app call from action "handle_forwarded_port_collisions"
This call should not be in the `handle` helper method. It is specified in the `call` method already.
2015-11-03 17:16:31 +02:00
Eric Winkelmann e687f81fce Re-word Linux RDP error to include `xfreerdp`.
Changed the name of the error LinuxRDesktopNotFound to
LinuxRDPClientNotFound and re-worded error text in
templates/locales/en.yml to include `xfreerdp` when listing supported
RDP clients.
2015-11-02 23:42:01 -08:00
Mitchell Hashimoto 32e981ce7c core: machine-readable output should include standard UI output
As a "ui" type
2015-10-26 18:10:26 -07:00
Joseph Frazier a59dc04b69 handle_forwarded_port_collisions.rb: fix typo: "Reparied" -> "Repaired" 2015-10-17 19:42:58 -04:00
Mitchell Hashimoto c17efbed75 core: ignore VAGRANT_DOTFILE_PATH if a child environment
This causes issues since the child environment almost certainly doesn't
share data with the parent. In a larger scope, we should find a way to
encode the data path somehow on `vagrant up`.
2015-10-16 10:28:30 -07:00
Mikhail Zholobov f930fa94af Move "cant_read_mac_addresses" error to the global space
Now it is used not only by Windows, but by Darwin guests as well.
2015-10-09 14:57:41 +03:00
Mitchell Hashimoto 36cfc77167 providers/virtualbox: make prepare clone a core thing 2015-10-08 16:02:37 -04:00
Mitchell Hashimoto f0ddac8c9a providers/virtualbox: clone 2015-10-08 12:33:55 -04:00
Mitchell Hashimoto 9e371277a9 core: IsEnvSet remove invert opt 2015-10-08 10:38:18 -04:00
Mitchell Hashimoto ed4df21c85 commands/snapshot: push and pop 2015-10-07 22:52:27 -04:00
Mitchell Hashimoto 2c936b2e37 providers/virtualbox: tidying up the linked clone feature 2015-10-06 14:11:41 -04:00
Mitchell Hashimoto d519d927fa Merge branch 'VB-linked-clone-support' of https://github.com/mpoeter/vagrant into mpoeter-VB-linked-clone-support 2015-10-06 13:50:34 -04:00
Mitchell Hashimoto ec0b0fb7f9 providers/virtualbox: IPv6 host only networks 2015-09-30 17:23:25 -07:00
Sam Phippen eeb750cd33 Catch encoding problems with sources provided to Vagrant::Config::Loader#set
Here we implement a naive solution to #5605 which catches the case that
a provided source contains an object which cannot be inspected, because
an object contained within in has an #inspect string that returns a
string that is incompatible with the encoding in
`Encoding.default_external` or a string which cannot be downcast to
7-bit ascii.

The Ruby VM implementation of "#inspect" implements this checking on
these lines of code: http://git.io/vZYNS. A Ruby level override of
this method does not cause this problem. For example:

```ruby
class Foo
  def inspect
    "😍".encode("UTF-16LE")
  end
```

will not cause the problem, because that's a Ruby implementation and the
VM's checks don't occur.

However, if we have an Object which **does** use the VM implementation
of inspect, that contains an object that has an inspect string which
returns non-ascii, we encounter the bug. For example:

```ruby
class Bar
  def inspect
    "😍".encode("UTF-16LE")
  end
end

class Foo
  def initialize
     @bar = Bar.new
  end
end

Foo.new.inspect
```

Will cause the issue.

The solution this patch provides basically catches the encoding error
and inserts a string which attempts to help the user work out which
object was provided without blowing up. Most likely, this was caused
by a user having a weird encoding coming out of one of the sources
passed in, but without a full repro case, it's not clear whether a patch
should be applied to a different object in the system.

Closes #5605.
2015-09-08 17:30:50 +01:00
Seth Vargo d64d229c0f Merge pull request #5928 from mitchellh/sethvargo/ssh_exec_run_command
Use the same ssh args for ssh with a command as ssh exec
2015-07-27 11:02:36 -04:00
Seth Vargo d88d126ad9 Use a properly-formatted custom User-Agent 2015-07-20 23:33:31 -04:00
Ievgen Prokhorenko 562ed26533 Fix #3570 'Box data left in ~/.vagrant.d/boxes after removal' 2015-07-19 16:44:38 +03:00
Manuel Pöter f4d1d068f9 Merge branch 'master' into VB-linked-clone-support 2015-07-13 10:56:17 +02:00
Mitchell Hashimoto dec5f70a1e core: fix jailbreaking of plugins
/cc @sethvargo
2015-07-10 15:34:59 -06:00
Seth Vargo fc1d2c29be Use the same ssh args for ssh with a command as ssh exec 2015-07-10 13:55:00 -06:00
Gilles Cornu faeb8a9440 core: plugin management requires bundler
With this change, the `Vagrant::plugins_enabled?` is now false when the
embedded Bundler is not available.

Resolve the broken RSpec unit tests after
479323f1e8.
2015-07-10 13:37:33 +02:00
Mitchell Hashimoto 479323f1e8 for newer versions of Bundler, store the runtime 2015-07-09 22:12:47 -06:00
Seth Vargo fafa3fa437 Add another log statement 2015-07-09 16:06:03 -06:00
Seth Vargo 68ef9676c7 Jailbreak out of the subprocess and restore original environment 2015-07-09 16:06:03 -06:00
Seth Vargo 46563560f4 Update with_clean_env helpers 2015-07-09 16:06:02 -06:00
Seth Vargo 50a64ea30b Add a log statement 2015-07-09 16:06:02 -06:00
Seth Vargo 0a5d37fc8b Reset the original environment if we are running something outside of the installer 2015-07-09 16:06:02 -06:00
Mitchell Hashimoto cea44847de Merge branch 'filter_synced_folders' of https://github.com/maxlinc/vagrant into maxlinc-filter_synced_folders 2015-07-09 15:05:52 -06:00
Mitchell Hashimoto b0b9f67faf Merge pull request #5514 from MiLk/fixes/several-boxes-same-name
Allow to use several boxes with the same name
2015-07-09 15:00:03 -06:00
Mitchell Hashimoto b3e935203e remove unuse dline 2015-07-09 14:25:10 -06:00
Mitchell Hashimoto 3cad495064 Merge pull request #5887 from msabramo/config.ssh.ssh_command
Add setting config.ssh.ssh_command
2015-07-09 14:24:48 -06:00
Seth Vargo 3ba10b43ab Restore the original environment from Bundler and the installer if given 2015-07-09 13:14:34 -06:00
Seth Vargo d8d5a66fa5 Add a function to get to the "original" environment with Vagrant
This function only works when used with the official Vagrant installer.
2015-07-09 12:34:04 -06:00
Mitchell Hashimoto 0b6938d8ab core: don't prepare folders in disable ode 2015-07-08 15:43:42 -06:00
Mitchell Hashimoto 28bea401c0 core: if interrupted, don't open metadata file 2015-07-07 12:38:45 -06:00
Mitchell Hashimoto 71940c60ba providers/virtualbox: error if uid mismatch 2015-07-06 18:13:59 -06:00
Mitchell Hashimoto 1330244fef core: save the UID that created a machine 2015-07-06 18:04:16 -06:00
Mitchell Hashimoto cb51b4fe7f Merge pull request #5334 from legal90/fix-data-dir-creation
Create machine data directory only after the machine will be checked
2015-07-06 16:33:33 -06:00
Mitchell Hashimoto 6c06db776d core: test for URI escaping 2015-07-06 16:26:06 -06:00
Mitchell Hashimoto 341534299d core: ssh private_key_path overwrites insecure key [GH-5632] 2015-07-06 16:17:54 -06:00
Mitchell Hashimoto 79115d1ccc core: retry SSH keygen on RSAError [GH-5056]
/cc @sethvargo
2015-07-06 14:44:23 -06:00
Mitchell Hashimoto bb25bb3be9 core: actually get the proper encoded subprocess command [GH-5128] 2015-07-06 14:39:50 -06:00
Mitchell Hashimoto 80ce9ab1f3 core: change select timeout to 1 for WIndows [GH-5309] 2015-07-06 13:54:00 -06:00
Mitchell Hashimoto ab27413954 core: make note that the box is being added directly [GH-5311] 2015-07-06 12:17:49 -06:00
Mitchell Hashimoto e759df11a0 core: fix crash for missing options [GH-5550] 2015-07-06 10:36:41 -06:00
Mitchell Hashimoto 36fa04fd1e providers/virtualbox: catch subprocess launch error [GH-1483] 2015-07-05 17:01:06 -07:00
Marc Abramowitz 9240ea30b6 Add setting config.ssh.ssh_command
Lets the user specify what ssh to use or even direct Vagrant to use an
ssh wrapper like sshrc (https://github.com/Russell91/sshrc).
2015-07-01 23:33:13 -07:00
Manuel Pöter c3151c0b88 Ignore failure when trying to delete lock file.
Deleting the lock file can fail when another process is currently trying to acquire it (-> race condition).
It is safe to ignore this error since the other process will eventually acquire the lock and again try to delete the lock file.
2015-06-03 13:27:03 +02:00
Seth Vargo 345935887f Style fixes 2015-06-02 17:18:50 -04:00
Philip Wrenn 4c8fe42d70 Ignore possible version directories that are hidden folders, i.e. dot folders. 2015-06-02 17:09:10 -04:00
Seth Vargo b92d4b21a1 Add UI::Interface#color? 2015-06-01 11:49:09 -04:00
Seth Vargo 6b2ef13785 Be more defensive when trying to get the line number
Since this is the last line of defense before raising an error, we want to make
sure we don't cause an error while trying to render the error.
2015-05-31 18:32:23 -07:00
Adam Spiers ce13051d61 eliminate guesswork with Vagrantfile errors
If the Vagrantfile has some kind of error, display not only
its path and the exception message, but also the originating
line number and exception class.

Also log the full backtrace when the error is in a provider
block, just as it is done when it's outside a provider block.
2015-05-31 18:25:51 -07:00
Dmitry Moskalchuk 26e3994319 Add option to enable trusted HTTP redirects 2015-05-31 09:34:02 -07:00
Seth Vargo 07efee776e Merge pull request #5677 from mrahtz/fix/master/unescape-curl-passwords
Escape/unescape cURL URLs/auth
2015-05-30 21:40:18 -07:00
Seth Vargo 6210f13338 Merge pull request #5750 from alh84001/feature/capability_guest_darwin_mount_smb
Capability to mount smb shares in darwin guests
2015-05-30 21:34:53 -07:00
Seth Vargo 294b0bca41 Merge pull request #5433 from marxarelli/feature/ui-custom-pipes
core: allow IO redirection of UI for testing
2015-05-30 12:49:09 -07:00
Seth Vargo a0b86a8474 Style fixes 2015-05-30 12:34:05 -07:00
Seth Vargo cecd15edac Merge pull request #5395 from delftswa2014/fix-local-download
Fixed inaccurate downloading status message
2015-05-30 12:33:28 -07:00
Seth Vargo 03b945d4d0 Merge pull request #5399 from delftswa2014/improve-package-error-message
Improved the package error message
2015-05-30 12:32:19 -07:00
Seth Vargo 72ea1d3e64 Merge pull request #5658 from legal90/fix-repackage
Fix issue #5657: Take only files while box repackage
2015-05-30 12:03:50 -07:00
Seth Vargo 2175625b61 Merge pull request #5698 from aneeshusa/dont-report-plugins-when-disabled
If plugins are disabled, report them as not available.
2015-05-30 11:56:44 -07:00
Seth Vargo 98a23c5a5e Merge pull request #5604 from bluehaoran/patch-1
Update ssh.rb to detect PLink v0.64
2015-05-30 11:51:52 -07:00
Matija K b387f0e15d Capability to mount smb shares in darwin guests 2015-05-24 12:39:28 +02:00
Aneesh Agrawal 16ac4e2321 If plugins are disabled, report them as not available.
Allows usage of VAGRANT_NO_PLUGINS env var to disable plugins.

Fixes #5430.
2015-05-14 08:04:11 -04:00
Mikhail Zholobov 079e06cd09 box/package: Take only files while packaging the new box
Fixes GH-5657
2015-04-30 16:08:18 +03:00
Matthew Rahtz 29c77e5719 Escape/unescape cURL URLs/auth
so that we can deal with special characters in usernames and passwords
2015-04-29 14:34:00 +01:00
Haz 0962a2d151 Update ssh.rb to detect PLink v0.64
PLink 0.64 (released 28-2-2015) changes the command-line description, so the previous text-match no longer works.
2015-04-17 12:34:40 +10:00
Jean-Francois Bibeau 45e14a8dc4 UNC paths should have backslashes, not front-slashes. 2015-04-16 11:02:58 -04:00
Jean-Francois Bibeau 415837c544 moved function to platform utils, added unit test as per @sethvargo 2015-04-06 16:51:55 -04:00
Emilien Kenler 1c1dd1ef8a Allow to use several boxes with the same name 2015-03-23 16:30:23 +09:00
Dan Duvall 3b8bc2a433 core: allow IO redirection of UI for testing
Use of $stdin, $stdout, and $stderr globals makes testing difficult. By
exposing the IO objects as writable attributes, input/output can be more
easily simulated using StringIO or doubles.
2015-03-04 11:23:16 -08:00
edward010 51842623db Improved the package error message
The package error message will now show the actual package name if the
package already existed.
2015-02-27 10:41:04 +01:00
Tim Rensen 6c2cc31926 Fixed inaccurate downloading status message
Importing a base box from the local file system currently outputs 'Downloading: file://...' which is more accurate now by presenting it as: 'Unpacking necessary files from: file://...'.
Fixes #5386.
2015-02-25 20:37:54 +01:00
Mikhail Zholobov c4565b3c99 Create data dir only after the machine passes all checks 2015-02-12 14:32:16 +02:00
Mitchell Hashimoto a0be121f4f Revert "Merge pull request #5274 from mitchellh/sethvargo/atlas_api"
This reverts commit 7f19284ef4, reversing
changes made to f0284d000b.
2015-02-03 06:39:28 +01:00
Seth Vargo bec0f28f40 Use the new Atlas APIs for downloading boxes 2015-02-02 18:14:21 -05:00
Paul Hinze dfbcebef0b core: log action name to info
I found this output to be very helpful in debugging an action hook
problem in a plugin.  problem. I'm not sure why the callable_id is
useful (seem to always show up as an instance of `Builder` or `Warden`
for me), but I left it in there just in case it's useful to someone.
2015-01-24 09:59:48 -08:00
Seth Vargo 3f95d5de9f Merge pull request #5221 from simonvetter/svetter/fixBoxChecksums
fix checksum verification for downloaded boxes (fixes #4665)
2015-01-21 16:05:07 -05:00
Max Lincoln 853042f2fa Make sure allowed_synced_folder_types order overrides priority 2015-01-20 16:18:05 -05:00
Max Lincoln d781dce8f8 Filter synced folders by allowed_synced_folder_types 2015-01-20 16:18:05 -05:00
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