Brian Cain
87b7514603
( #7188 ) Clean up vagrant snapshot restore/delete error messages
...
This commit adds some better handling around the snapshot restore and
delete commands for the virtualbox provider. If a user attempts to restore from
a vm that does not exist, instead of exiting 0 it will raise an
exception saying the virtual machine has not been created yet.
Addtionally, if a user attempts to restore from a snapshot id that does
not exist, instead of printing a complicated exception from the
virtualbox cli tool, it prints a more useful error message telling the
user that the snapshot does not exist.
2017-06-07 09:12:20 -07:00
Brian Cain
79c7799fd9
Add basic unit test for CWD change warning
2017-06-06 08:38:03 -07:00
Fernando Seror
48b0e00368
Tests regarding warning whenever CWD changes
2017-06-05 13:25:30 -07:00
Fernando Seror
15871a481b
Warn about changes to CWD on every machine action
...
Whenever the path where the machine was first created changes, Vagrant
will now show just one warning when an action is run on the machine.
The idea is that if a user copies the machine over to a different
directory with the idea of running two different machines, this warning
will now help the user determine how to make that work.
2017-06-05 13:25:30 -07:00
Brian Cain
1ade699936
( #6827 ) Introduce tty flag for ssh command execution
...
Prior to this commit, if a user ran the `vagrant ssh -c CMD` command, it
would not allow the user to configure pseudo-terminal allocation. This
commit introduces a -t flag for the `vagrant ssh` command which defaults
to true if not specified.
2017-06-02 17:32:02 -07:00
Brian Cain
d0f1f39fa6
Merge pull request #8636 from briancain/7118/master/handle-invalid-box-names
...
Handle box names that are URLs
2017-05-31 16:16:38 -07:00
Brian Cain
f1d08aa629
( #7118 ) Handle box names that are URLs
...
Prior to this commit, if a user set a URL for the name of a box, vagrant
would not warn the user about using box_url instead. This would lead to
some difficult user experiences around the various box commands due to
the box name being a full URL. This commit introduces a warning to the
user and lets them know to instead use box_url.
2017-05-31 15:25:05 -07:00
Brian Cain
eadb0ac831
Raise exception if provider doesn't have snapshot capability
...
Prior to this commit, if a user attempted to use the `vagrant snapshot
save` or `vagrant snapshot list` commands on a vm whose provider did not
support snapshots, it would simply print a warning. This commit changes
that behavior by instead raising an error.
2017-05-26 15:22:25 -07:00
Brian Cain
6ddba4f7b3
( #7810 ) Enforce unique snapshot names
...
Prior to this commit, the vagrant snapshot plugin would save snapshots
with existing names which lead to duplicate snapshot names being saved.
This commit fixes that by checking to see if the given snapshot name
already exists and if so, fails telling the user the given snapshot name
already exists. If a user passes a --force flag, vagrant will first
delete the existing snapshot, and take a new one with the given name.
2017-05-25 16:28:17 -07:00
Chris Roberts
50dd832e63
Include `Which` within Util autoloads
2017-05-12 15:00:55 -07:00
Chris Roberts
6de7c9b445
Only convert path if windows access is granted
2017-05-12 14:14:11 -07:00
Chris Roberts
3c44ce9742
Support vbox provider within WSL rootfs. Make Windows access easier.
...
Enables proper setup of VMs started from within WSL rootfs paths. Updates
setup for Windows access when working within the WSL to auto-detect settings
instead of relying on user defined environment variables.
2017-05-12 13:11:53 -07:00
Chris Roberts
10cb43b917
Use helper module to silence warnings
2017-05-08 17:03:38 -07:00
Chris Roberts
328d1aa8af
Disable verbose output accessing PATH
2017-05-08 15:22:23 -07:00
Chris Roberts
e8e38a4007
Halt Vagrant if within WSL and attempting to operate out of rootfs
2017-05-08 15:21:39 -07:00
Chris Roberts
4df4f77bf6
Match WSL installed Vagrant with Windows installed Vagrant
2017-05-08 10:21:01 -07:00
Chris Roberts
83b0c87f52
Support running Vagrant within the Windows Subsystem for Linux
2017-05-08 10:21:01 -07:00
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