Commit Graph

2964 Commits

Author SHA1 Message Date
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
Mitchell Hashimoto 06a7c88316 core: HandleBox keeps the same machine instance 2014-02-11 16:06:03 -08:00
Mitchell Hashimoto c280af0b9c core: keep the same UI when handling a box URL 2014-02-11 16:03:25 -08:00
Mitchell Hashimoto 2550a76edb core: Machine can set box 2014-02-11 13:31:50 -08:00
Mitchell Hashimoto dd9dd5127c Merge pull request #2948 from gnawhleinad/master
command/*: clean up usage
2014-02-10 09:02:32 -08:00
Mitchell Hashimoto 342fba8182 core: Ui::Prefixed values instance-level opts 2014-02-08 15:15:06 -08:00
Mitchell Hashimoto e6ca9d6f81 core: Ui::Prefixed can take prefix_spaces option 2014-02-08 15:14:21 -08:00
Mitchell Hashimoto 2d7c161f49 core: Ui#dup works properly 2014-02-08 15:11:51 -08:00
Mitchell Hashimoto 86454ddac9 core: Environment#lock tests 2014-02-08 14:50:52 -08:00
Mitchell Hashimoto 1e50e7aca1 core: Prefixed UI only requests bolding if not specified at instance-level 2014-02-08 14:26:26 -08:00
Mitchell Hashimoto efc1bf50dd core: Machine#with_ui 2014-02-08 14:03:31 -08:00
gnawhleinad fbcac2978e clean up usage 2014-02-08 00:20:50 -08:00
Mitchell Hashimoto 2846850306 core: HandleBox reloads machine from proper Vagrantfile 2014-02-07 11:51:04 -08:00
Mitchell Hashimoto 46a42eb9c2 core: when loading box metadata, specify JSON header 2014-02-07 10:51:57 -08:00
Mitchell Hashimoto b9aa2acddc core: request JSON type when getting the metadata URL 2014-02-07 10:33:08 -08:00
Mitchell Hashimoto d4c753c48d core: download metadata with JSON accept header 2014-02-07 10:30:25 -08:00
Mitchell Hashimoto 8e9ceeaf5c core: Machine has reference to Vagrantfile 2014-02-07 09:16:55 -08:00
Mitchell Hashimoto 66f722ef68 core: Alphabetize functions and comment better in Environment 2014-02-06 21:36:57 -08:00
Mitchell Hashimoto 8af67cf241 core: update docs for Vagrant::Environment 2014-02-06 21:33:28 -08:00
Mitchell Hashimoto 3533256cd7 core: Vagrantfile can create machines, Environment#machine uses that 2014-02-06 21:31:11 -08:00
Mitchell Hashimoto 506e1a433f core: Vagrantfile#machine_config returns more info now 2014-02-06 21:04:59 -08:00
Mitchell Hashimoto e2403c093d core: Vagrantfile class now adheres to box_version 2014-02-06 20:17:24 -08:00
Mitchell Hashimoto 7549704c5b core: Environment#config_global is gone! 2014-02-06 20:12:16 -08:00
Mitchell Hashimoto e3a67f7ab6 core: Environment uses the new Vagrantflie class 2014-02-06 20:12:15 -08:00
Mitchell Hashimoto 99346cc516 core: add Vagrantfile class, tests 2014-02-06 20:11:12 -08:00
Mitchell Hashimoto cac0fdb490 core: Add the default server URL 2014-02-05 21:20:37 -08:00
Mitchell Hashimoto becc349846 core: handle native windows paths like 'c:\foo.box'
[GH-2081]
2014-02-05 21:20:35 -08:00
Mitchell Hashimoto 751b4da2c6 core: if box is unversioned, check update does nothing 2014-02-05 21:20:32 -08:00
Mitchell Hashimoto 647563edaf core: shorthand boxes must be foo/bar formatted, better errors 2014-02-05 21:20:31 -08:00
Mitchell Hashimoto 433e789a99 core: set URL to opaque if there is no path 2014-02-05 21:20:30 -08:00
Mitchell Hashimoto b194525521 core: output a newline after ask with no echo 2014-02-05 21:20:28 -08:00
Mitchell Hashimoto 1a7b78e00e core: UI supports not echoing 2014-02-05 21:20:27 -08:00
Mitchell Hashimoto 7a6d1a3ff1 commands/box: update command can update a specific box now 2014-02-05 21:20:23 -08:00
Mitchell Hashimoto 43157fba18 core: output the version that is added with BoxAdd 2014-02-05 21:20:20 -08:00