Commit Graph

2997 Commits

Author SHA1 Message Date
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