Mitchell Hashimoto
bd7b458cbe
core: forwarded port collision repair leases chosen ports [GH-2966]
...
In addition to checking if a port is open, we now check if a port is
"leased", which we do for a period of 60 seconds. This gives the provider
time to actually put the port into use.
2014-04-21 13:56:20 -07:00
Mitchell Hashimoto
862414af12
core: lock around machine actions
2014-04-21 13:56:09 -07:00
Mitchell Hashimoto
d2e2ccb625
core: A function for diffing synced folders
2014-04-21 13:55:56 -07:00
Mitchell Hashimoto
81df70eee0
providers/docker: support building Dockerfiles
2014-04-21 13:55:54 -07:00
Mitchell Hashimoto
623386f13c
core: port collision detector can swap open port checker
2014-04-21 13:55:38 -07:00
Mitchell Hashimoto
fe0db9a63e
core: nicer way to assure array for pviate key path
2014-04-21 13:55:34 -07:00
Mitchell Hashimoto
af7f55f47e
core: When disabling, only disable the proper folders
2014-04-21 13:55:33 -07:00
Mitchell Hashimoto
05572955f6
core: log when disabling a synced folder
2014-04-21 13:55:32 -07:00
Mitchell Hashimoto
4df8636c38
core: instantiate all keys in a V2 config prior to merging
...
This forces everything to get a new instance, so we don't accidentally
overwrite any values across multiple machines.
2014-04-21 13:55:30 -07:00
Mitchell Hashimoto
cd38f891da
providers/docker: disable synced folders on destroy
2014-04-21 13:55:27 -07:00
Mitchell Hashimoto
704ff98200
providers/docker: only sync folders if they're not already there
2014-04-21 13:55:26 -07:00
Mitchell Hashimoto
cabacae4cb
core: return nil if cached synced folders file doesn't exist
2014-04-21 13:55:24 -07:00
Mitchell Hashimoto
4557ece4df
core: SyncedFolders middleware saves what it synced
2014-04-21 13:55:23 -07:00
Mitchell Hashimoto
794cd4f287
core: MixinSyncedFolders have methods for save/reading from cache
2014-04-21 13:55:22 -07:00
Mitchell Hashimoto
10e51eb141
providers/docker: initial sync folders working through proxy VM
2014-04-21 13:55:20 -07:00
Mitchell Hashimoto
3c9219b8c9
core: Builtin SyncedFolders accepts alternate config
2014-04-21 13:55:18 -07:00
Mitchell Hashimoto
0153e0ccbb
core: Machine#action_raw for calling raw callables
2014-04-21 13:55:17 -07:00
Mitchell Hashimoto
d8bdb62ed4
core: MixinSyncedFolders lets a custom config through
2014-04-21 13:55:15 -07:00
Mitchell Hashimoto
e119a5714a
core: add "disable" method for synced folders, deprecate "prepare"
2014-04-21 13:55:09 -07:00
Mitchell Hashimoto
901d3c3558
core: MachineIndex sets paths to nil if empty
2014-04-21 13:55:06 -07:00
Mitchell Hashimoto
98af7c7992
core: Machine sets the local data path of the machine index
2014-04-21 13:55:04 -07:00
Mitchell Hashimoto
646f0fa907
core: MachineIndex preserves the local data path for an env
2014-04-21 13:55:02 -07:00
Mitchell Hashimoto
e947960c09
providers/docker: use a custom communicator to go through host VM
2014-04-21 13:54:56 -07:00
Mitchell Hashimoto
aa1abdd1c4
core: SSHExec middleware can have ssh info overridden
2014-04-21 13:54:53 -07:00
Mitchell Hashimoto
2add94ee28
core: BatchAction can run arbitrary code
2014-04-21 13:54:46 -07:00
Mitchell Hashimoto
144c874b5a
providers/docker: process-level lock on copying default Vagrantfile
2014-04-21 13:54:40 -07:00
Mitchell Hashimoto
dc2f729fd3
core: Environment#lock is more useful now
2014-04-21 13:54:39 -07:00
Mitchell Hashimoto
32c9707aa1
core: MachineIndex cleans up machine lock files
2014-04-21 13:54:38 -07:00
Mitchell Hashimoto
8c7ab333a0
Squash the f-docker-hostmachine branch.
...
Initial work
commands/up: make sure all names to with_target_vms are strings
providers/docker: create a docker host VM if needed
providers/docker: executor abstraction for driver to eventually support remote
providers/docker: vagrant executor
providers/docker: support creating the machine
providers/docker: status works if host VM is gone
providers/docker: use start fence to get real docker output
core: Call preserves stack ordering
core: support Message post option
providers/docker: Guard some features with HasSSH checks
providers/docker: much better messaging around create/destroy
providers/docker: output the container ID on create
providers/docker: copy the hostmachine Vagrantfile to the data dir
providers/docker: should make host machine before any up action
providers/docker: HandleBox before the host machine
providers/virtualbox: functional_vboxsf to disable vboxsf
providers/virtualbox: synced folder usable method should take 2 args
providers/docker: default machine name to :default
2014-04-21 13:54:33 -07:00
Mitchell Hashimoto
d42d62ead1
core: MachineIndex#vagrant_env should silence warnings
2014-04-21 13:54:32 -07:00
Mitchell Hashimoto
2b07dec059
core: Use the MachineIndex#vagrant_env method
2014-04-21 13:54:31 -07:00
Mitchell Hashimoto
a4addd0e25
core: MachineIndex keeps track of Vagrantfile name
2014-04-21 13:54:30 -07:00
Mitchell Hashimoto
09ff31e3a3
commands/global-status: add --prune flag
2014-04-21 13:54:29 -07:00
Mitchell Hashimoto
df4dfc36e7
MachineIndex lock is a monitor to allow recursion
2014-04-21 13:54:28 -07:00
Mitchell Hashimoto
5f5d3d5ef0
core: MachineIndex more aggressively reloads data
2014-04-21 13:54:27 -07:00
Mitchell Hashimoto
9b22ccbd32
core: MachineIndex updates existing entry if name, provider, path match
2014-04-21 13:54:25 -07:00
Mitchell Hashimoto
72030d2180
Note provisioners that don't work on Windows guests
2014-04-21 13:54:02 -07:00
Mitchell Hashimoto
0dc40e1680
core: MachineIndex can have extra data attached to it
2014-04-21 13:53:38 -07:00
Mitchell Hashimoto
1c29c39f1b
core: generalize the autostart stuff so we don't have a bunch of specials
2014-04-21 13:53:35 -07:00
Mitchell Hashimoto
9dd9fff637
core: check if provider is usable when requesting a machine
2014-04-21 13:53:10 -07:00
Mitchell Hashimoto
bc2e3727a9
core: Add usable? check to providers
2014-04-21 13:53:07 -07:00
Mitchell Hashimoto
aad8e7f80d
core: provision "once" or "always" [GH-2421]
2014-04-21 13:52:30 -07:00
Mitchell Hashimoto
c4a4b998df
core: Test eager loading of WinRM
2014-04-21 13:51:51 -07:00
Mitchell Hashimoto
d608e0bdfd
Eager load WinRM
...
/cc @sneal - How is this? It is dirty, but at least then it doesn't have
a global performance impact on Vagrant if you're not using WinRM
2014-04-21 13:51:50 -07:00
Mitchell Hashimoto
cddd878656
core: Don't set index uuid file if data dir is nil
2014-04-21 13:51:28 -07:00
Mitchell Hashimoto
b38876ac50
core: pass along the UI class so we don't get a silent UI
2014-04-21 13:51:26 -07:00
Mitchell Hashimoto
4349800374
core: Silence ruby warnings when loading external machines
2014-04-21 13:51:25 -07:00
Mitchell Hashimoto
a0e9f46251
core: commands can use the IDs from anywhere to control
2014-04-21 13:51:24 -07:00
Mitchell Hashimoto
9a16af10ad
core: Use Machine#state wherever possible so we update the index
2014-04-21 13:51:23 -07:00
Mitchell Hashimoto
48cf2c38f7
core: MachineIndex is enumerable
2014-04-21 13:51:21 -07:00
Mitchell Hashimoto
13a4db391a
core: Machine updates state cache when querying state
2014-04-21 13:51:20 -07:00
Mitchell Hashimoto
44e379e961
core: Machine sets index entries on ID sets
2014-04-21 13:51:19 -07:00
Mitchell Hashimoto
8a6bdbf710
core: Environment#machine_index
2014-04-21 13:51:17 -07:00
Mitchell Hashimoto
a29f5d7e01
core: Add MachineIndex#delete
2014-04-21 13:51:16 -07:00
Mitchell Hashimoto
69a290eb9d
core: replace "-" in UUIDs with ""
2014-04-21 13:51:15 -07:00
Mitchell Hashimoto
ac032db6a6
core: MachineIndex has precision locking for entries
2014-04-21 13:51:14 -07:00
Mitchell Hashimoto
016afc7922
core: Basic MachineIndex class, starting point
2014-04-21 13:51:13 -07:00
Mitchell Hashimoto
f07ee5754a
core: Configurable communicator
2014-04-21 13:51:02 -07:00
Ramon de la Fuente
f6a5e20688
Add autostart as an option for vagrant boxes
...
Added specs for the environment and vagrantfile. Added a methd to retrieve
autostart_machine_names. Changed the plugin up/command to use autostart_machine_names
when no argument was given to the command.
2014-04-21 13:50:57 -07:00
Mitchell Hashimoto
e05bfa979e
core: remove temp file when done with box
2014-04-17 08:58:38 -07:00
Mitchell Hashimoto
ec35190cfc
core: use process.alive? to avoid exceptions
2014-04-13 14:24:25 -07:00
Mitchell Hashimoto
00962c7c2a
commands/box/repackage: better error if box not found
2014-04-12 18:00:33 -07:00
Mitchell Hashimoto
2cb6a21a5a
core: Fix tests, which found broken logic in synced folders
2014-04-11 16:28:38 -07:00
Mitchell Hashimoto
2b47478d6a
core: all symlinks for synced folders are expanded [GH-3444]
2014-04-11 16:21:12 -07:00
Mitchell Hashimoto
3aad85fa30
style
2014-04-11 09:56:35 -07:00
Mitchell Hashimoto
cd2c99972b
core: No need to map! here
2014-04-11 09:32:25 -07:00
Mitchell Hashimoto
44d7c6849d
Merge pull request #3441 from berendt/sort_versions_and_print_listing
...
commands/box/remove: sort versions and print them as listing
2014-04-11 09:32:08 -07:00
Christian Berendt
8dffbe5db8
sort versions and print them as listing
...
before this patch:
```
$ vagrant box remove --box-version 0.2.9 berendt/ubuntu-14.04-amd64
You requested to remove the box 'berendt/ubuntu-14.04-amd64' version '0.2.9' with
provider 'virtualbox', but that specific version of the box is
not install. Please double-check and try again. The available versions
for this box are:
0.2.11, 0.2.10
```
after this patch:
```
You requested to remove the box 'berendt/ubuntu-14.04-amd64' version '0.2.9' with
provider 'virtualbox', but that specific version of the box is
not install. Please double-check and try again. The available versions
for this box are:
* 0.2.10
* 0.2.11
```
2014-04-11 11:39:38 +02:00
Christian Berendt
c43bd27ffe
print version when removing a specific box
...
Example:
$ vagrant box remove --box-version 0.2.9 berendt/ubuntu-14.04-amd64
Removing box 'berendt/ubuntu-14.04-amd64' with provider 'virtualbox' in version '0.2.9'...
2014-04-11 10:05:03 +02:00
Mitchell Hashimoto
41636a8a9c
core: can't add boxes from network shares [GH-3279]
2014-04-09 14:15:26 -07:00
Mitchell Hashimoto
d8ec7b02c4
commands/package: Nicer error if includes has symlinks [GH-3200]
2014-04-09 10:52:33 -07:00
Mitchell Hashimoto
e748aadf4f
core: give users chance to quit for upgrade [GH-3212]
2014-04-09 09:58:30 -07:00
Mitchell Hashimoto
1bef7dec61
Add comment to clarify
2014-04-05 09:37:59 -07:00
Mitchell Hashimoto
1cd266da9d
core: randomize perm test filename
2014-04-05 09:36:55 -07:00
Mitchell Hashimoto
5f12126d32
core: network issues don't halt Vagrant during box update check [GH-3391]
2014-04-05 09:25:03 -07:00
Mitchell Hashimoto
0e46c5d9de
core: Raise predictable error if box metadata downlaod fails
2014-04-05 09:20:03 -07:00
Mitchell Hashimoto
5b360d0990
core: BoxCollection#find version constraint can benil
2014-04-02 19:50:44 -07:00
Mitchell Hashimoto
d1caf8c624
core: Allow direct box adding again
2014-04-02 19:45:49 -07:00
Mitchell Hashimoto
3371c37162
TemplateRenderer can take a new root [GH-3231]
2014-04-02 09:53:20 -07:00
Mitchell Hashimoto
a1d9121852
synced_folders/smb: verify PowerShell v3 is running or later [GH-3257]
2014-04-02 09:45:42 -07:00
Mitchell Hashimoto
32d86ca42b
core: don't allow version for old-style box [GH-3260]
2014-04-02 09:32:34 -07:00
Mitchell Hashimoto
af7a589231
core: outdated check checks local boxes [GH-3321]
2014-04-02 08:37:03 -07:00
Mitchell Hashimoto
36ad327ec1
core: ignore if box doesn't exist on update check [GH-3326]
2014-04-02 08:24:38 -07:00
Mitchell Hashimoto
097dd2917c
core: better error when adding box with malformed version [GH-3332]
2014-04-01 22:48:52 -07:00
Mitchell Hashimoto
8c8c6c132c
core: lock prerelease gems
2014-04-01 22:28:33 -07:00
Mitchell Hashimoto
9c570adbd7
Merge pull request #3301 from mitchellh/fix-issue-3285
...
core: fix prerelease gem versions
2014-04-01 22:25:43 -07:00
Mitchell Hashimoto
b6259c2ae9
core: Ignore if temporary box file doesn't exist when adding
2014-04-01 22:18:49 -07:00
Mitchell Hashimoto
666b270e0b
core: can add boxes with spaces in paths [GH-3306]
2014-04-01 22:18:37 -07:00
Mitchell Hashimoto
7d0cbcb686
Merge pull request #3318 from ecoleman/patch-1
...
core: properly escape path in cygwin bash check
2014-04-01 22:02:29 -07:00
Mitchell Hashimoto
8195f7faab
core: add test for removing box version [GH-3364]
...
/cc @berendt - Added a test
2014-04-01 21:47:51 -07:00
Christian Berendt
7d38d78fee
handle exception when removing a non existinga box version
...
When trying to remove a not existing version of an existing box an
exception is thrown. The exception should be handled and some message
(box version 0.1.2 not available) should be printed.
With this patch the exception is handled correctly by using a newly
introduced exception BoxRemoveVersionNotFound.
Example output:
You requested to remove the box 'berendt/alpine-2.7.5-amd64' with provider
'virtualbox' in version '0.0.2'. The box 'berendt/alpine-2.7.5-amd64'
exists but not in the specified version '0.0.2'.
Please double-check and try again.
The available versions for this box are: 0.1.0
Fixes issue #3344
2014-03-31 20:32:34 +02:00
Eric Coleman
f32a865abd
Properly escape path in cygwin bash check
...
Quick attempt at properly fixing #3304
2014-03-25 18:36:05 -04:00
Shawn Neal
0a2992b92d
Fixed issue 3285
...
When using prerelease gems we need to ensure we store the gem version otherwise Bundler won't use the correct gem version since prerelease gems are not available by default. By storing the gem version for prerelease gems, we allow Bundler to properly resolve prerelease gems and not give potentially confusing errors to Vagrant users using prerelease plugins.
2014-03-21 08:15:24 -07:00
Mitchell Hashimoto
846f942ff0
core: check for data_dir [GH-3208]
2014-03-14 14:04:00 -07:00
Jonas Stendahl
d7320399e2
Fixed broken PowerShell scripts execution [GH-3192]
2014-03-14 12:42:28 +01:00
Mitchell Hashimoto
024056fc66
Set the Bundler UI only if we enable it [GH-3193]
2014-03-13 14:18:33 -07:00
Mitchell Hashimoto
513efa6739
core: Downloads with user/pass use curl -u flag [GH-3183]
2014-03-13 08:53:18 -07:00
Mitchell Hashimoto
8634cc309b
core: error earlier if adding a path that doesn't exist
2014-03-12 20:33:12 -07:00
Mitchell Hashimoto
621369ebba
core: Execute PowerShell scripts even with spaces in dir [GH-3100]
2014-03-12 19:49:45 -07:00
Mitchell Hashimoto
5863ffdf7b
core: Windows paths work for box add [GH-3132]
2014-03-11 11:27:35 -07:00
Mitchell Hashimoto
49471ffbf6
core: output when upgrading home path
2014-03-11 11:06:38 -07:00
Mitchell Hashimoto
eb9b85c388
core: UI#ask with no echo works even if noecho not supported [GH-3119]
2014-03-11 09:58:49 -07:00
Mitchell Hashimoto
2a93b6c396
core: Assume box isn't metadata if > threshold [GH-3107]
2014-03-11 08:44:05 -07:00
Mitchell Hashimoto
122319834c
core: Setup the tmp_path before calling setup_home_path [GH-3095]
2014-03-10 15:09:09 -07:00
Mitchell Hashimoto
b6830639dd
core: EINVAL is not a metadata URL
2014-03-10 14:33:30 -07:00
Mitchell Hashimoto
ee23b87eb6
core: Private boxes authenticate metadata box URLs too
2014-03-09 19:24:54 -07:00
Mitchell Hashimoto
04a19e05ca
synced_folders/rsync: convert to proper unix-style path [GH-3086]
2014-03-09 18:22:00 -07:00
Mitchell Hashimoto
c6b07e10c9
core: Cygwin path conversion must replace slashes first
2014-03-07 22:56:47 -08:00
Mitchell Hashimoto
914d177346
core: Fix misleading wording in pre-rubygems [GH-3078]
2014-03-07 10:44:00 -08:00
Mitchell Hashimoto
4c9e6e46b2
provisioners/salt: don't use exteranl deep_merge [GH-2348]
2014-03-07 09:18:34 -08:00
Mitchell Hashimoto
adc8151a4a
core: the provision sentinel should be backwards compatible
2014-03-06 09:25:29 -08:00
Mitchell Hashimoto
79df69392f
core: initialize synced folder class only once [GH-3067]
2014-03-06 08:35:21 -08:00
Mitchell Hashimoto
6fefef7538
core: packaging works again
2014-03-05 13:37:15 -08:00
Mitchell Hashimoto
7f2fe524b3
core: use default color by default (not white)
2014-03-05 10:19:53 -08:00
Mitchell Hashimoto
3348b5d7a6
core: set default server URL
2014-03-05 07:20:52 -08:00
Mitchell Hashimoto
c098a3296b
core: safer dup checks for synced folders
2014-03-03 20:38:59 -08:00
Mitchell Hashimoto
4437bcd77f
core: better error if attempting to uninstall system plugin
2014-03-03 15:05:32 -08:00
Mitchell Hashimoto
b5637da6c4
core: plugin manager marks system gems as system
2014-03-03 14:55:34 -08:00
Mitchell Hashimoto
7710fd16fa
core: load system plugins if they are installed
2014-03-03 09:44:29 -08:00
Mitchell Hashimoto
616bf15df5
core: Vagrant.installer_embedded_dir
2014-03-03 09:37:22 -08:00
Bernhard Morgenstern
9f612402e9
Read box file in binary mode for checksum
2014-03-02 02:31:29 +01:00
Mitchell Hashimoto
a858257ffe
core: duplicate URL array when authing so we don't mess up original
2014-03-01 12:32:58 +01:00
Mitchell Hashimoto
5018e4d8a4
core: checksums supported when adding box from metadata
2014-03-01 12:03:22 +01:00
Mitchell Hashimoto
23bd397cb8
core: BoxMetadata supports checksums
2014-03-01 11:59:16 +01:00
Mitchell Hashimoto
ce350fe872
core: box checksums just work properly again for direct box adds
2014-03-01 11:54:37 +01:00
Mitchell Hashimoto
7926f7f051
core: box URLs can be authenticated by hooking
2014-03-01 11:38:04 +01:00
Mitchell Hashimoto
736bd8d34e
core: remove unused variable from Message builtin
2014-02-28 05:17:52 -06:00
Mitchell Hashimoto
c735e81e4d
core: expand IsState to support inversions
2014-02-27 08:13:12 -08:00
Mitchell Hashimoto
e93038fd0e
providers/hyperv: suspend/resume
2014-02-27 08:13:11 -08:00
Mitchell Hashimoto
784a5b2e32
providers/hyperv: all sorts of tests to verify Windows/admins
2014-02-27 08:12:51 -08:00
Mitchell Hashimoto
a1958ee12f
providers/hyperv: shuffle things around
2014-02-27 08:12:48 -08:00
Mitchell Hashimoto
6b17783688
synced_folders/nfs: unavailable on Windows
2014-02-27 08:11:50 -08:00
Mitchell Hashimoto
5f1caf3ada
core: re-ask if confirmation bad input [GH-3027]
2014-02-26 08:01:45 -08:00
Mitchell Hashimoto
dfee3f8445
core: default URL will be https
2014-02-25 21:39:32 -08:00
Mitchell Hashimoto
b8676a65dd
core: Vagrant.server_url should default if empty
2014-02-25 21:39:05 -08:00
Lucas Heinlen
e530108b6a
Do not to_s the machine id if it is nil
...
When destroying a machine, the machine id is set to nil, the to_s causes it to be set to empty string. This can cause inconsistent behavior in anything (such as plugins) that tests the machine id.
2014-02-24 15:43:58 -05:00
Mitchell Hashimoto
4c070a04d2
core: if can't communicate, force halt right away
2014-02-23 22:25:59 -08:00
Mitchell Hashimoto
8bb0094113
Avoid locking in trap context
2014-02-23 22:22:18 -08:00
Mitchell Hashimoto
a667893cbf
provisioners/shell: error if invalid encoding [GH-3000]
2014-02-23 21:50:53 -08:00
Mitchell Hashimoto
399a3e48da
core: provisioner sentinel should check machine ID
2014-02-23 21:23:31 -08:00
Mitchell Hashimoto
0e3b3d654d
Depend on ChildProcess 0.5.0, fix bugs
2014-02-18 11:15:19 -08:00
Mitchell Hashimoto
4f89bdb947
core: disable parallelization if only one action
2014-02-15 16:37:27 -08:00
Mitchell Hashimoto
4e90aa7824
core: copy all sub-directories in a box properly
...
This avoids an Errno::EACCES on windows, although I'm really unsure why.
2014-02-15 15:55:33 -08:00
Mitchell Hashimoto
a4f64d0148
core: ui can hide details
2014-02-13 21:09:02 -08:00
Mitchell Hashimoto
d2d96a0726
core: keep process group for SSH childprocess
2014-02-13 16:45:45 -08:00
Mitchell Hashimoto
5fb64dfca2
core: use Process#wait since childprocess bug is fixed
2014-02-13 07:40:33 -08:00
Mitchell Hashimoto
8bfb4bda2b
core: make sure any Subprocess exits no matter what
2014-02-12 21:35:54 -08:00
Mitchell Hashimoto
42fa0a6540
core: poll for process exit on SSH#exec with subprocess
2014-02-12 21:31:05 -08:00
Mitchell Hashimoto
79581df71b
core: chomp the version so we can echo into it
2014-02-12 15:01:12 -08:00
Mitchell Hashimoto
2c72c32df0
core: Modify Bundler settings to work with restricted permissions
...
This includes two changes:
1. Change the Vagrant requirement to use the "= VERSION" constraint.
The "path:" previously requires write permission in the directory
of the gemspec, which we don't have in installers.
2. Set a BUNDLE_APP_CONFIG and BUNDLE_PATH setting. By setting this,
Bundler won't ask for sudo password. Bundler never actually needs it;
it is just overly aggressive in thinking it does.
2014-02-12 14:24:17 -08:00