Commit Graph

2956 Commits

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