Aron Griffis
7c538b4504
Honor VAGRANT_PREFERRED_PROVIDERS in Environment#default_provider
2017-05-03 08:19:29 -04:00
Aron Griffis
f256fc882f
Rewrite Environment#default_provider to be less confusing
2017-05-03 08:19:03 -04:00
Chris Roberts
78e2bb513c
Merge pull request #8531 from chrisroberts/network/guest-rhel
...
guests/rhel: Update network configuration
2017-05-01 15:56:25 -07:00
John Rizzo
1dfc646fb3
Fixed admin test to verify that you are running in an elevated shell, not that you are in the administrators group since that is not required.
2017-05-01 15:42:06 -07:00
Chris Roberts
414184b76b
guests/rhel: Update network configuration
...
Properly detects NetworkManager on guest as well as devices controlled
by NetworkManager. Provides configuration option to enable/disbale
NetworkManager control on devices.
2017-04-26 13:15:33 -07:00
Chris Roberts
2acded113c
Retry SSH connection on Errno::ECONNABORTED
...
In some cases the SSH connection may be aborted while waiting
for setup. This includes aborted connections in the list of
applicable exceptions to retry on while waiting for the connection
to become available.
Fixes #8520
2017-04-25 13:38:24 -07:00
Hans Van Broeckhoven
81553263ab
Update is_port_open.rb
...
Solves https://github.com/mitchellh/vagrant/issues/3031 (again)
2017-04-24 20:09:32 +02:00
Chris Roberts
a8b2f78f59
Do not prefix Windows paths if UNC prefix already exists
...
While VirtualBox has commented that they do not support UNC remote
paths (but do for long paths) it seems that remote paths can work.
If user provides UNC path, allow it to be used as-is.
Fixes #7011
2017-04-20 16:33:38 -07:00
Chris Roberts
60187f2b17
Merge pull request #8503 from chrisroberts/fix/box-add-spaces
...
Unescape url to provide actual local path when adding box
2017-04-20 16:10:01 -07:00
Chris Roberts
7d1c77f523
Unescape url to provide actual local path when adding box
...
Fixes #6825
2017-04-20 15:37:08 -07:00
Chris Roberts
82ca8f8058
Support port checker methods which only accept the host port
...
When calling the port_checker an arity check is done to determine
if the helper accepts the host_ip and host_port or only the host_port.
Fixes #8423
2017-04-19 10:49:27 -07:00
Chris Roberts
4d0ecc14f7
Merge pull request #7797 from lukebakken/features/lrb/better-windows-admin-detection
...
Improve user permission detection on Windows
2017-04-17 14:37:43 -07:00
Chris Roberts
6aafe3255a
Force wrappers to be generated to prevent invalid version parsing
2017-04-06 16:52:10 -07:00
Chris Roberts
df069deac0
Validate plugin sources and report errors if detected.
2017-04-04 17:53:04 -07:00
Chris Roberts
bfc2af4cf9
Always provide timeout on thread join to prevent deadlock errors
2017-03-27 12:58:39 -07:00
Chris Roberts
2f4181bad8
Merge pull request #8401 from chrisroberts/bundler/prevent-source-paths
...
Prevent adding local paths to RubyGems sources list
2017-03-23 09:46:08 -07:00
Chris Roberts
127d627218
Merge pull request #8400 from chrisroberts/plugins/warn-on-load-fail
...
Warn when failing to require plugin instead of hard failure
2017-03-23 09:44:32 -07:00
Chris Roberts
052ff53642
Merge pull request #8399 from chrisroberts/fix/port-check
...
Use 127.0.0.1 for host IP when unset and 0.0.0.0 is not available
2017-03-23 09:37:33 -07:00
Chris Roberts
154c3be0d4
Join command with given arguments before running exec
...
This resolves issues where directly passing arguments individually
to Kernel.exec causes encoding errors due to arguments being forced
command/shell encoding which is not always correct.
2017-03-23 09:19:26 -07:00
Chris Roberts
c555e4b72f
Remove subprocess command string re-encoding to default external
2017-03-23 09:16:27 -07:00
Chris Roberts
564ed7456d
Warn when failing to require plugin instead of hard failure
2017-03-22 16:40:42 -07:00
Chris Roberts
354c1c2b51
Prevent adding local paths to RubyGems sources list
2017-03-22 16:36:42 -07:00
Chris Roberts
5cd95b684f
Use 127.0.0.1 for host IP when unset and 0.0.0.0 is not available
2017-03-22 16:31:46 -07:00
Chris Roberts
72d0eb497d
Isolate push deprecation to atlas strategy only
2017-03-21 15:08:17 -07:00
Chris Roberts
eed7b859ca
Fix provision action for provisioners set to never.
...
This updates the behavior of the provision action to never run a provisioner
that is specified to "never" run unless it has been explicitly requested. Also
adds test coverage to the provision action.
2017-03-13 13:53:31 -07:00
Chris Roberts
334e4f5d9d
Convert type for other provider compatibility
2017-03-09 10:28:41 -08:00
Chris Roberts
9d1ec938ef
Merge pull request #8341 from chrisroberts/enhancement/prerelease
...
Support spec prerelease matching
2017-03-07 15:02:17 -08:00
Chris Roberts
c03ca851b1
Merge pull request #8327 from chrisroberts/plugins/local-path
...
Force path as preferred source on local install
2017-03-07 15:00:39 -08:00
Chris Roberts
7610ecfcba
Allow prerelease matches on vagrant spec when running instance is prerelease
2017-03-07 10:36:35 -08:00
Chris Roberts
abf38106c0
Add shared helper method to detect if running version is prerelease
2017-03-07 10:36:14 -08:00
Chris Roberts
009ca94167
Sort result of BoxCollection#all
2017-03-06 08:19:02 -08:00
Chris Roberts
10cd188688
Merge pull request #7956 from phyber/early_box_version_sort
...
Fix box sorting in box_collection
2017-03-03 16:32:01 -08:00
Chris Roberts
6d3ab39b27
Merge pull request #7035 from pravinchandar/4608
...
Fix for #4608 : Support for port forwarding in an IP aliased environment
2017-03-03 15:57:04 -08:00
Chris Roberts
96204383c7
Force path as preferred source on local install
2017-03-03 09:12:44 -08:00
Chris Roberts
86af6501ed
Remove installer set push from default source push
2017-02-24 08:02:22 -08:00
Chris Roberts
e2acb5250a
Add command deprecation helper module
2017-02-24 06:22:39 -08:00
Chris Roberts
ccdccf06b5
Merge pull request #8194 from chrisroberts/fix/curl-credentials
...
Scrub credentials from box URLs
2017-02-23 13:51:47 -08:00
Chris Roberts
74438cc495
Merge pull request #8196 from chrisroberts/fix/expand-vagrantfile-path
...
Allow VAGRANT_DOTFILE_PATH to be expanded as expected.
2017-02-23 13:33:07 -08:00
Chris Roberts
fe055d57da
Merge pull request #8273 from chrisroberts/bundler/remote-source
...
Prefer given source if available when installing plugin
2017-02-22 11:48:19 -08:00
Chris Roberts
088829de9b
Merge pull request #8270 from chrisroberts/enhancement/process-stop
...
Add new methods to Subprocess
2017-02-16 13:45:25 -08:00
Chris Roberts
70cacb27fa
Prefer given source if available when installing plugin
2017-02-09 17:22:48 -08:00
Chris Roberts
6a4d41d0c9
Merge pull request #8252 from nsidc/fix-install-local-pre
...
Add gem_version to plugin_info for local installs
2017-02-09 09:48:54 -08:00
Chris Roberts
e7e24ee853
Merge pull request #8248 from chrisroberts/fix/env-gems-path
...
Fix environment gems_path location
2017-02-08 14:18:41 -08:00
Chris Roberts
903428e569
Add Util::Subprocess#stop and Util::Subprocess#running?
2017-02-08 14:15:47 -08:00
Michael Brandt
be63ace50f
Add gem_version to plugin_info for local installs
2017-02-02 17:58:29 -07:00
Chris Roberts
0a6d985f89
Merge pull request #8191 from chrisroberts/plugins/ext-dir
...
Set base directory to parent directory within plugin specs
2017-02-01 13:12:27 -08:00
Chris Roberts
959bdada82
Fix environment gems_path location
2017-02-01 12:43:16 -08:00
Chris Roberts
25a2bdd279
Prevent generating environment variables with invalid empty names
2017-01-12 15:12:41 -08:00
Chris Roberts
832c62f2aa
Allow VAGRANT_DOTFILE_PATH to be expanded as expected.
...
This allows custom paths that include special characters like `~`
to be properly expanded instead of resulting in joined root path
with special characters included.
2017-01-12 14:01:25 -08:00
Chris Roberts
a055978d74
Scrub credentials from box URLs
2017-01-12 13:24:46 -08:00
Chris Roberts
df00edf1a7
Set base directory to parent directory within plugin specs
...
This adjustment allows for extensions to be properly discovered after
plugin gem specifications have been activated.
2017-01-06 12:55:13 -08:00
Chris Roberts
23c41f4461
Merge pull request #7867 from bbrala/hyperv-package
...
Package Hyper-V boxes
2016-12-07 13:37:47 -08:00
Chris Roberts
23b4421309
Merge pull request #8094 from chrisroberts/bundler/env
...
Remove direct bundler usage within Env util
2016-12-07 06:56:01 -08:00
Chris Roberts
c20e160295
Remove direct bundler usage within Env util
2016-12-07 06:00:56 -08:00
Chris Roberts
c8d564e578
Prevent interaction when removing plugin gems
2016-12-06 07:07:52 -08:00
Chris Roberts
5b1b18d01a
Merge pull request #8068 from chrisroberts/bundler/install-solution-act
...
Detect load failure within solution set and retry if found
2016-12-05 13:28:58 -08:00
Chris Roberts
3dccd82a39
Explicitly require name_tuple
...
This does not get automatically loaded before usage so ensure
it is properly loaded for plugin usage.
2016-12-05 09:35:02 -08:00
Chris Roberts
ce35611c34
Detect load failure within solution set and retry if found
...
Installation solution sets in 2.2.5 can end up out of order (not seen
in 2.3.1) causing LoadErrors when the specification is in the solution
set during validation. This detects the missing spec within the solution
and if found will move spec to the start of the solution set and retry
solution activation.
2016-12-01 08:15:04 -08:00
Chris Roberts
9717432920
Add logger output when plugin loading is disabled
2016-11-28 16:55:38 -08:00
Chris Roberts
f1e623976b
Do not include default specifications within dependencies
2016-11-28 16:54:59 -08:00
Chris Roberts
d87cf25ed2
Display original exception and backtraces in logger output
2016-11-28 07:48:16 -08:00
Chris Roberts
2cc4b82198
Only read default specifications directory when within bundler context
2016-11-22 08:26:43 -08:00
Chris Roberts
a51949933f
Always apply builtin constraints within dependency restrictions
...
Include detection of running context (within Bundler or not) and
load the "buitin" gems based on that context.
2016-11-22 07:53:19 -08:00
Chris Roberts
53b9f1747c
Allow plugin_init_error to provide all information. Include final reset on specifications.
2016-11-17 16:40:51 -08:00
Chris Roberts
818f7acb7b
Provide better internal consistency of installed plugin gems.
...
Refactors reusable actions into isolated methods. Supports installation/removal
without activation to prevent unintended conflicts during upgrades and cleanup.
Introduced custom resolver set to handle multiple installed versions of gems
which enables proper cleanup.
2016-11-16 13:26:13 -08:00
Chris Roberts
06e1b2f52c
Include installed gem version plugin information. Clean after install and update.
2016-11-16 13:19:43 -08:00
Chris Roberts
fb85bb1c7b
Include plugin initialization error class
2016-11-16 13:18:35 -08:00
Chris Roberts
33c9d6183a
Provide more log information about configured plugins
2016-11-16 13:17:38 -08:00
Chris Roberts
e2d96f942f
Provide nice error output when plugin initialization fails
...
Include extra logging during initialization to display error if encountered
and solution set prior to performing activations.
2016-11-15 15:50:39 -08:00
Chris Roberts
44d3aedc5b
When bundler is in use, require `:plugins` group
2016-11-14 15:28:22 -08:00
Chris Roberts
ac74774fcb
Merge pull request #8000 from chrisroberts/plugins/updates
...
Plugin handling updates
2016-11-14 13:24:52 -08:00
Chris Roberts
0f720a4386
Merge pull request #7985 from chrisroberts/shell-provisioner/checksum
...
Add md5 and sha1 checksum support to Downloader.
2016-11-14 13:19:22 -08:00
Chris Roberts
beffa70941
Downloader checksum output information and digester usage
...
Add more output information around type of checksum being validated.
Use builtin Digest#file to read target file for generation of hexdigest.
2016-11-14 10:22:25 -08:00
Chris Roberts
174fe65d66
Sort plugins by name when generating install list
2016-11-11 15:11:45 -08:00
Chris Roberts
3edd0b57e9
Add debug logging output to Bundler implementation
2016-11-11 15:08:59 -08:00
Chris Roberts
bd3f0c442c
Only use Gem sources that are provided
2016-11-11 14:50:20 -08:00
Chris Roberts
1691e3af58
Only install from defined sources unless install is local
2016-11-11 14:44:14 -08:00
Chris Roberts
d8455c0a9a
Add custom sources if not included
2016-11-11 14:33:26 -08:00
Chris Roberts
6e40d46c50
Fix up local gem plugin installation when not published remotely
2016-11-11 14:25:03 -08:00
Chris Roberts
ea13988367
Properly support plugin auto-loading with logging information
2016-11-11 14:24:25 -08:00
Chris Roberts
1ed27faa9f
Remove usage of $vagrant_bundler_runtime within enabled check
2016-11-11 14:23:55 -08:00
Chris Roberts
da45ca707c
Add md5 and sha1 checksum support to Downloader.
...
Allows checksum validation on downloaded files via Util::Downloader
using MD5 and/or SHA1 checksums. This also integrates checksum validation
support with the shell provisioner for downloaded remote files.
2016-11-09 16:05:39 -08:00
Chris Roberts
36d88ee268
Track installed gem version and display in startup logger information
2016-11-07 20:16:46 -08:00
Chris Roberts
1f5dd35d16
Remove bundler where no longer required
2016-11-07 20:00:38 -08:00
Chris Roberts
3fb5913af1
Update .init! to attempt repair if instructed
2016-11-07 18:48:51 -08:00
Chris Roberts
d5c5561302
Allow disable of user plugins if repair command is requested
2016-11-07 18:48:51 -08:00
Chris Roberts
1fb4553d14
[core] Remove bundler usage for plugin management
2016-11-07 18:48:51 -08:00
David O'Rourke
a33892e4df
Maintain a version dir map in box_collection.
...
This is required since Gem::Version will mangle pre-release version
numbers.
To get around this, we keep a mapping of
`Gem::Version.to_s => versiondir.`
This allows us to properly sort by version when picking a box while
still returning pristine versiondirs when required.
2016-11-01 15:59:23 +00:00
David O'Rourke
7b89374dce
Fix version sorting in box_collection.rb
2016-11-01 14:57:06 +00:00
Chris Roberts
d1a778dbfb
Include error handling when subprocess commands fail
2016-10-31 07:42:30 -07:00
Chris Roberts
d490bb4b7a
Include autoloader for StringBlockEditor
2016-10-29 17:53:45 -07:00
Chris Roberts
c39b3fbb76
guests/openbsd: Check package installation after installing package
...
The `pkg_add` command will return `0` when a package requested for
installation is not found. This adds a validation check to ensure
the rsync package is actually installed on the guest.
2016-10-25 12:16:52 -07:00
Luke Bakken
52e98ffdfb
Improve detection of admin and hyper-v admin rights via using SIDs and powershell
2016-10-13 14:22:08 -07:00
Chris Roberts
28f2ed56cf
Merge pull request #7756 from alexoj/master
...
Fix Vagrant not prioritizing configured providers correctly
2016-10-07 17:14:54 -07:00
Björn Brala
6ed612e93b
Move package_setup_files to general lib to minimize code duplication
2016-10-07 17:31:15 +02:00
Bjorn Brala
5877e8fe22
Sart refactor duplicate classes
2016-10-06 08:55:59 +02:00
Chris Roberts
c3eb1e355b
Merge pull request #7802 from chrisroberts/safe_exec/windows
...
[windows] Use subprocess for safe_exec on windows
2016-09-30 14:42:40 -07:00
Chris Roberts
977733790a
Include debug notification when using subprocess
2016-09-30 12:16:53 -07:00
Chris Roberts
5872611d59
[windows] Use subprocess for safe_exec on windows
2016-09-15 13:08:58 -07:00
Jake Teton-Landis
ceb69e6266
Allow closing a Vagrant::Util::Subprocess's STDIN
...
Previously, there was no way to close the STDIN stream of a subprocess,
so commands that read from stdin in a subprocess would hang forever,
such as `/bin/sh -s`. If one tried to close the stdin, the
IO.select() call in Subprocess#execute would raise an error for calling
select() on a closed IO.
Here's a concrete example of a command that needs to close STDIN to work
properly:
```ruby
script = SOME_VERY_LONG_STRING
command = %w(ssh foo.example.com /bin/sh -s foo bar)
result = ::Vagrant::Util::Subprocess.execute(*command) do |type, data_or_io|
if type == :stdin
data_or_io.write(script)
data_or_io.write("\n")
data_or_io.close
next
end
puts "Remote: #{data_or_io}"
end
```
2016-09-04 16:45:38 -07:00
Alejandro Ojeda
50ca748b5c
Fix Vagrant not prioritizing configured providers correctly
...
Fixes #7135 : config.vm.provider not setting provider in multi-machine Vagrantfile
2016-08-25 03:34:23 +02:00
Chris Roberts
3abfbec5a6
Merge pull request #7623 from carlosefr/relative-dotfile-path
...
Support Vagrantfile-relative VAGRANT_DOTFILE_PATHs
2016-08-12 16:17:10 -07:00
Zack Train
cb70749bd8
redux of pr 7398 for ssh-agent key fix
2016-08-11 11:48:10 -07:00
Seth Vargo
1702584d1e
Merge pull request #6765 from PeterMosmans/windows-path-fix
...
Fix for #6761 (fixes incomplete #6598 )
2016-08-08 11:59:26 -04:00
Carlos Rodrigues
218b697d5e
This looks cleaner
2016-07-24 19:01:54 +01:00
Carlos Rodrigues
188a7dab0c
Another try, without string substitution
2016-07-24 18:40:09 +01:00
Carlos Rodrigues
9ebc028745
Better checks, hopefully
2016-07-22 14:59:05 +01:00
Carlos Rodrigues
92104fec72
Use match instead of start_with
2016-07-22 14:39:44 +01:00
Carlos Rodrigues
bf0486e659
Vagrantfile-relative VAGRANT_DOTFILE_PATH
2016-07-22 14:08:18 +01:00
Seth Vargo
36838d36b7
Fix failing test
2016-07-18 22:38:27 -04:00
Seth Vargo
7ed6bb5bef
Merge pull request #7569 from rossi-fi/fix/master/7568
...
Use RFC- and cURL-friendly file:/// URI. Fixes #7568 .
2016-07-18 22:20:03 -04:00
Seth Vargo
581568cf5a
Merge pull request #7571 from rossi-fi/fix/master/7570
...
Strip leading slash left in front of drive letter by uri.path
2016-07-18 22:19:55 -04:00
Seth Vargo
2acaaff801
state_file: fsync and binmode
2016-07-18 21:59:18 -04:00
Seth Vargo
ea17ad4530
Merge pull request #7550 from cgwalters/plugin-atomic-rewrite
...
plugin: Write out state file via create-new-then-rename
2016-07-18 21:58:23 -04:00
Seth Vargo
8f10dbca90
Merge pull request #7587 from alexmv/disabled-conflicts
...
Skip checking for conflicts on ports that are disabled
2016-07-18 21:55:33 -04:00
Seth Vargo
3b2ffae400
guests/bsd: Print a very descriptive error when mounting vbox folders
...
BSD-based guests do not support VirtualBox shared folders. This is a
common source of confusion in Vagrant. This new error clearly explains
that this is not a bug in Vagrant and provides instructions on how to
disable them.
2016-07-18 21:12:58 -04:00
Seth Vargo
7e88266999
guests/linux: Properly escape and retry vbox shared folder mounting
2016-07-18 21:12:57 -04:00
Alex Vandiver
3d2fde9260
Skip checking for conflicts on ports that are disabled
...
Currently, the supported way (see GH#1922) to disable the default port
2222 port forward is:
config.vm.network :forwarded_port, guest: 22, host: 2222, disabled: true
However, the port collision detection runs on all ports, regardless of
the `disabled` flag. This leads it to attempt to connect to port
2222, notice it is taken, and abort with a port conflict -- even
though it will not be attempting to use the port at all.
Skip disabled ports when doing port conflict detection.
A workaround that does not require a Vagrant upgrade to one containing
this fix is to instead set `auto_correct` on the disabled port:
config.vm.network :forwarded_port, guest: 22, host: 2222, disabled: true, auto_correct: true
This allows the disabled port to be reshuffled off to some other
unused port.
2016-07-14 19:52:38 -07:00
Colin Walters
72c1972181
plugin: Write out state file via create-new-then-rename
...
This makes updates atomic, so it's useful generally. However
I'm making this change specifically to support rpm-ostree.
For more information, see:
https://bugzilla.redhat.com/show_bug.cgi?id=1352152
2016-07-12 16:42:24 -04:00
Markus Rossi
4730602ceb
Strip leading slash left in front of drive letter by uri.path (see GH-7570).
2016-07-12 15:20:04 +03:00
Markus Rossi
8768d7921d
Fix for #7568 Windows drive letter in config.vm.box_url is ignored
2016-07-12 12:01:23 +03:00
Seth Vargo
05aafedc6d
core/bundler: Reset specs in a way that works with new Rubygems
2016-06-20 15:19:21 -07:00
Seth Vargo
23e50c98f9
core/box_collection: Ensure removal
...
The docs for Ruby say Pathname#rmtree will recursively delete, but
apparently that is a lie, at least on Windows (see GH-7496). Switch to
using FileUtils to ensure the directory is deleted.
Fixes GH-7496
2016-06-20 07:16:08 -04:00
Seth Vargo
177b7784dd
guests/darwin: Allow ipv6 static networks
2016-06-19 12:01:52 -04:00
Seth Vargo
6284a9ac50
guests/bsd: Move NFS mounting logic into shared
...
A number of the BSD guests used very old mounting options or just
ignored some parameters entirely. This fixes that.
- Closes #7474
- Fixes #7466
2016-06-17 21:04:23 -04:00
Seth Vargo
d01ddeeb43
Check stdout instead of process output
...
Fixes GH-7465
2016-06-16 16:20:15 -04:00
Gilles Cornu
6ee69e3150
Merge pull request #7190 from electrofelix/ansible-parallel-race
...
Fix a race condition in the concurrent generations of the ansible inventory file, while running `vagrant up --parallel`.
Closes GH-6526
2016-06-09 14:56:03 +02:00
Mikhail Zholobov
db3aad3822
Require "vagrant/util/presence" in package action
2016-06-09 13:13:58 +03:00
Karl Isenberg
f084fc7d78
Revert 3f9fb2ef03
from GH-2769
...
- For compatibility with ba77d4b533
Fixes GH-7073
2016-05-31 14:52:43 -07:00
Seth Vargo
cf02135290
Merge pull request #7359 from mitchellh/sethvargo/cache_platform
...
Cache the results of common operations
2016-05-31 11:03:46 -04:00
Seth Vargo
7014aa3bab
Remove custom tempfile class
...
This is not actually providing any additional utility and also causes
namespace conflicts with people trying to use the real Tempfile class.
2016-05-30 23:21:47 -04:00
Seth Vargo
2a230a11e2
Cache the results of common operations
...
This commit changes Vagrant::Util::Platform to cache the result of some
common operations. These values are highly unlikely to change over the
course of a single Vagrant run and they are only cached for that run.
2016-05-30 18:27:12 -04:00
Seth Vargo
d44fcf2d52
Allow customization of keys_only & paranoid SSH
...
This adds two new SSH configuration options:
- `keys_only`
- `paranoid`
These values were previously hard-coded, but can now be user-specified.
Fixes GH-4275
2016-05-29 18:03:03 -04:00
Seth Vargo
159e1ec1f1
Use a real file for bundler
2016-05-29 00:41:59 -04:00
Seth Vargo
1b414d3d9e
That file has to exist
2016-05-29 00:18:33 -04:00
Seth Vargo
3d2390fc94
Give a unique, prefixed name to all tempfiles
...
This commit basically grepped the code base for all uses of Dir.mktmpdir
and Tempfile.new/open and ensures the value is unique within the
code base and also prefixed with `vagrant-`.
Previously, most invocations of these commands simply used "vagrant",
thus making them indistinguishable when trying to identify leaks.
2016-05-28 23:22:34 -04:00
Seth Vargo
fb7c4033a9
Do not create a tempfile when downloading box metadata
...
The only reason we were using Tempfile was to generate the path. This
commit switches to using `Dir::Tmpname.create`, which accomplishes the
same thing without the overhead of creating and removing a tempfile.
2016-05-28 23:22:34 -04:00
Seth Vargo
3a27c29577
Add a new util for generating tempfiles
2016-05-28 23:22:33 -04:00
Seth Vargo
cee6e6c7bc
Fix file leaking in bundler
2016-05-28 17:01:59 -04:00
Christian Hofstaedtler
ba77d4b533
Allow Vagrant to work with newer Rubygems
...
Fixes GH-7073
2016-05-27 17:19:33 -04:00
Seth Vargo
efdb148f61
Move pre-flight package validation to middleware
...
This commit separates the scratch and output directory creation from the
main package middleware into its own PackageSetupFolders middleware.
Additionally, the validation that ensures an output file does not exist
is moved into a validation function that can be shared across multiple
methods.
This refactor permits a pre-flight check to ensure box packaging would
be successful before actually stopping the VM.
Fixes GH-7351
2016-05-27 17:07:04 -04:00
Seth Vargo
2a02ceb870
Bump box resume delay to 24h
...
This commit bumps the box resume delay time to 24h and makes it a
constant because I had a bugger of a time actually finding this in the
code :frowny:.
Fixes GH-7272
2016-05-27 15:18:50 -04:00
Seth Vargo
bc74cb4008
Merge pull request #7158 from mitchellh/sethvargo/auth_metadata
...
Authenticate metadata box urls
2016-04-05 10:46:01 -04:00
Darragh Bailey
36ad4d53cf
core: Multi machine use of active_machines requires locking of index
...
Ensure multi machine access of other machine state information through
iterating `active_machines` and retrieval of cached machines cannot
have multiple threads update the state of machines simultaneously as
this triggers a Machine Lock exception.
Machine state information retrieved from the index, returns a locked
object. Since iteration of active_machine, and retrieval of each
machine from the cache can be triggered by any plugin, it is possible
for another machine to inadvertently access the state and trigger an
update, which the thread owning the machine is currently in the process
of updating it already. This results in a Machine Locked exception
occurring if the attempt to retrieve the cached state from the index
occurs before the other thread calls release.
Partially-Fixes: #6526
2016-03-31 17:27:36 +01:00
Seth Vargo
3305764f71
Rescue Errno::ENOTCONN
...
Fixes GH-7182
2016-03-31 17:02:50 +02:00
Seth Vargo
42a8ed658e
Authenticate metadata box urls
2016-03-19 17:05:43 -04:00
Pravinchandar Raajendiran
af9d0df635
Fix for #4608
...
Added support for Port forwarding in an IP aliased environment. The change
makes the following forwarding rule(s) possible.
Ex: eth0 is ip aliased to have a range of IP addresses 10.20.30.0/24.
In the Vagrant file, we can now have an entry like the following and
it will just work! Note the host port 8081 is the same for both .1 and .2.
Vagrant.configure("2") do |config|
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 81, host: 8081, host_ip: 10.20.30.1
config.vm.network "forwarded_port", guest: 82, host: 8081, host_ip: 10.20.30.2
end
2016-02-14 22:16:24 +11:00
Seth Vargo
27157b5408
Merge pull request #6893 from mmickan/prerelease-version-fix
...
Prerelease version fix
2016-02-03 09:57:25 -05:00
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