Mitchell Hashimoto
92413d0393
core: error if vagrant ssh -c with password
2014-01-03 11:26:41 -08:00
Mitchell Hashimoto
074bb2c7fb
core: fix potential exception case in SSHExec middleware
2014-01-03 11:19:17 -08:00
Mitchell Hashimoto
b3a9e6a088
insert_public_key cap, and use that if it exists
2014-01-03 11:13:21 -08:00
Mitchell Hashimoto
664aaa0088
core: raise exceptions if they happen in WaitForCommunicator threads
2014-01-03 10:57:04 -08:00
Mitchell Hashimoto
d1fdee7ae3
core: warn if password only on `vagrant ssh`
2014-01-03 10:45:42 -08:00
Mitchell Hashimoto
e115322e78
core: accept passwords in ssh_info
2014-01-03 09:48:35 -08:00
Mitchell Hashimoto
862331fbf0
Merge branch '1.4.3'
...
Conflicts:
CHANGELOG.md
lib/vagrant/version.rb
2014-01-02 10:16:52 -08:00
Mitchell Hashimoto
4f0eb9504c
v1.4.3
2014-01-02 10:16:06 -08:00
Mitchell Hashimoto
3fbaaa5acc
changelog for 1.4.3
2014-01-02 10:10:07 -08:00
Mitchell Hashimoto
3f2d3886b2
providers/virtualbox: fix package [GH-2739]
2014-01-02 10:09:05 -08:00
Mitchell Hashimoto
b5c2a8e570
Update changelog
2014-01-01 20:49:29 -08:00
Mitchell Hashimoto
e02ff58dc4
up version for dev
2013-12-31 14:19:34 -08:00
Mitchell Hashimoto
f9e418a92b
v1.4.2
2013-12-31 13:30:33 -08:00
Mitchell Hashimoto
54f4cffc00
providers/virtualbox: export after checking if package exists [GH-2380]
2013-12-31 08:45:56 -08:00
Mitchell Hashimoto
6cacb86817
core: undo last for now
2013-12-31 08:39:36 -08:00
Mitchell Hashimoto
619fe9a056
core: warn if no provider is specified that we can't check for it
2013-12-31 08:38:58 -08:00
Mitchell Hashimoto
d86efdb9be
core: box add fails early if box already exists [GH-2621]
2013-12-31 08:34:59 -08:00
Mitchell Hashimoto
13c8235963
core: correct some doc comments
2013-12-31 08:19:43 -08:00
Mitchell Hashimoto
8c03e48320
core: re-arrange some code to make things easier to read later
2013-12-31 08:18:26 -08:00
Mitchell Hashimoto
757ad016b1
core: ctrl-c no longer raises trap-context exception
2013-12-30 12:42:21 -08:00
Mitchell Hashimoto
5d39cc381f
Merge pull request #2694 from tmatilai/plugin-json-errors
...
core: show more informative error if plugin.json parsing fails
2013-12-28 13:12:59 -08:00
Mitchell Hashimoto
9333f550e5
style
2013-12-28 13:49:43 -07:00
Mitchell Hashimoto
5146bc2696
Merge pull request #2713 from tmatilai/log_plugin_versions
...
core: log loaded plugin versions
2013-12-28 12:49:00 -08:00
Mitchell Hashimoto
7f78f18218
core: handle EOFError when checking checksum [GH-2716]
2013-12-28 13:45:36 -07:00
Teemu Matilainen
42d156cce7
core: Log loaded plugin versions
...
One more piece of information to help support.
2013-12-23 18:23:30 -03:00
Teemu Matilainen
e5032071f6
core: Vagrant.has_plugin? tries to match gem name first
...
Search primary from the list of gem names which have been loaded by
`Vagrant.require_plugin`. Fall back to matching registered plugin names.
2013-12-20 17:36:10 -03:00
Teemu Matilainen
a5b84f413e
core: More informative error if plugin.json parsing fails
2013-12-20 07:10:10 -03:00
Mitchell Hashimoto
4d7d47086f
core: configure version can be an int [GH-2689]
2013-12-19 08:03:15 -08:00
Mitchell Hashimoto
0823dc7b84
Up version for dev
2013-12-18 10:13:03 -08:00
Mitchell Hashimoto
a7dd35690c
v1.4.1
2013-12-18 09:03:28 -08:00
Teemu Matilainen
8dbad22d72
core: list VAGRANT_* env vars in debug log
...
Help support and debugging by printing all `VAGRNAT_*` environment
variables that have been set by either user or Vagrant.
2013-12-18 00:07:17 -03:00
Mitchell Hashimoto
da91572ce7
commands/init: error if can't write Vagrantfile [GH-2660]
2013-12-15 11:28:51 -08:00
Mitchell Hashimoto
2bebf188d6
hosts/bsd: check for exports file issues prior to exporting NFS
2013-12-13 22:14:13 -08:00
Mitchell Hashimoto
c1141dded3
providers/virtualbox: don't clear /etc/exports on BSDs for NFS [GH-2645]
2013-12-13 22:03:14 -08:00
Mitchell Hashimoto
86f8ff8816
core: SSHRun uses new ShellQuote util
2013-12-13 21:18:12 -08:00
Mitchell Hashimoto
72398faeaf
core: put shell quoting into its own util class, it is useful
2013-12-13 21:17:15 -08:00
Mitchell Hashimoto
902b769e6b
core: -t/-T work for vagrant ssh -c [GH-2618]
2013-12-13 21:07:54 -08:00
Mitchell Hashimoto
a55a53e6a4
core: execute SSH commands in context of login shell [GH-2636]
2013-12-13 21:02:00 -08:00
Mitchell Hashimoto
8a0241f2b4
core: box removal of a V1 box works
2013-12-12 16:17:53 -08:00
John Bellone
4194da19c6
[vagrant] Update Registry with #keys method.
...
This helper method to return the keys for the registry will give capability to eliminate some code. Example:
```ruby
keys = []
@subcommands.each { |k,v| keys << k }
keys.sort.each { |k| o.seperator "#{k}" }
```
Versus:
```ruby
@subcommands.keys.sort.each { |k| o.seperator "#{k}" }
```
2013-12-12 09:38:50 -05:00
Olle Lundberg
0c853ccb3c
Update is_port_open.rb
2013-12-10 21:23:11 +01:00
Mitchell Hashimoto
163947bc36
up version for dev
2013-12-08 22:51:58 -08:00
Mitchell Hashimoto
059de113a7
v1.4.0
2013-12-08 22:51:22 -08:00
Mitchell Hashimoto
ba18d98d45
core: improve guest type detection
...
/cc @fgrehm - I figured you might be interested in this. :)
2013-12-08 11:14:18 -08:00
Mitchell Hashimoto
581841a195
core: style nitpicks
2013-12-07 20:59:54 -08:00
Teemu Matilainen
cf1d94b22b
core: Print info message if provisioning is skipped by the sentinel file
...
Tell the user if the VM has already been provisioned and no
`--[no-]provision` option has been specified. This should reduce the
confusion of the 1.3+ functionality.
2013-12-07 17:09:04 -03:00
Mitchell Hashimoto
2c65d247da
core: Allow options to be passed down into SF cleanup
2013-12-06 16:40:24 -08:00
Teemu Matilainen
ee8f962537
Fix plugin loading
...
Regression from d354cdd
.
2013-12-04 18:25:29 -03:00
Mitchell Hashimoto
d354cdda4a
core: request users upgrade plugins if they're old
2013-12-04 11:43:39 -08:00
Mitchell Hashimoto
255608d9c5
core: note Ruby and RubyGems version in logs
2013-12-03 23:44:08 -08:00
Mitchell Hashimoto
0a43cf2b6f
core: fix exception when checksum type is nil
...
Thanks @johnbellone
2013-12-03 18:52:44 -08:00
Mitchell Hashimoto
9a58917d3a
core: only set I18n setting on newer versions
...
/cc @fgrehm - Looks like only the later versions have this.
2013-12-03 18:43:19 -08:00
Mitchell Hashimoto
1a51f42ee7
core: update rspec, fix deprecations
2013-12-03 18:42:21 -08:00
Mitchell Hashimoto
ae4fa1a946
core: better synced folder plugin docs
2013-12-03 18:33:24 -08:00
Mitchell Hashimoto
c04fa5e54e
core: clean up tests for synced folder built-ins
2013-12-03 18:30:59 -08:00
Mitchell Hashimoto
ca521887eb
Merge pull request #2561 from emyl/synced-folder-cleanup-v2
...
core: Enhance the synced folder plugin implementation with a cleanup routine
2013-12-03 18:08:42 -08:00
Mitchell Hashimoto
42fd5f1db0
Merge pull request #2575 from fgrehm/remove-18n-deprecation-warning
...
Set I18n.config.enforce_available_locales to true to avoid an annoying deprecation warning
2013-12-03 17:54:08 -08:00
Fabio Rehm
954641d801
core: Set I18n.config.enforce_available_locales to true to avoid an annoying deprecation warning
2013-12-03 21:20:37 -02:00
Mitchell Hashimoto
d2bc1dbc3b
Merge pull request #2560 from phinze/vbox-nfs-dhcp-support
...
providers/virtualbox: support DHCP interfaces for NFS
2013-12-03 11:49:54 -08:00
Mitchell Hashimoto
900a8a4ec1
Merge pull request #2569 from mitchellh/fix-hook-with-methods
...
core: fix hook with methods
2013-12-03 11:44:16 -08:00
Mitchell Hashimoto
1550946b0c
core: build action builder if responds to call
2013-12-03 11:43:38 -08:00
Paul Hinze
c25172d0f7
providers/virtualbox: support DHCP interfaces for NFS
...
Previously, we required a host-only interface with a static IP for NFS
to work in VirtualBox, because we needed access to the guest's IP in
order to properly configure mount commands.
After boot, VirtualBox exposes the IP addresses of a guest's network
adapters via the "guestproperty" interface.
This adds support for reading VirtualBox guest properties to the
VirtualBox driver and utilizes that support to prepare NFS settings,
which removes the necessity for a static IP for NFS to work.
In this commit we also start building out scaffolding for unit testing
vbox actions and drivers.
Test plan:
- Prepare a Vagrantfile with the following:
* private network with type: :dhcp
* synced folder with nfs: true
- Boot a VM from this Vagrantfile using the virtualbox provider
- Machine should boot successfully with working synced folder
2013-12-03 10:21:28 -05:00
Fabio Rehm
ae472dece9
core: Fix hooking when using a `Method` object as a callable on action runner
2013-12-02 22:53:59 -02:00
Emiliano Ticci
578393ac8e
Add cleanup routine to synced folder plugin implementation
2013-12-02 11:19:09 +01:00
Mitchell Hashimoto
ac45e08cd8
Revert "core: use keyword args to simplify BoxCollection#add"
...
This reverts commit 4281af338f
.
2013-12-01 23:04:24 -08:00
Mitchell Hashimoto
98fa06044c
Revert "core: check for Ruby 2.0"
...
This reverts commit 9be6b4f0d3
.
2013-12-01 23:04:11 -08:00
Mitchell Hashimoto
27a35194fa
core: require file checksum for box add
2013-12-01 23:03:50 -08:00
Mitchell Hashimoto
72edddbb09
core: do proper type conversions for box checksum types
2013-12-01 23:03:21 -08:00
Mitchell Hashimoto
555f4c7dcf
kernel/v2: support checksum on box config
2013-12-01 23:03:21 -08:00
Mitchell Hashimoto
84ea952df3
core: output UI when checksumming
2013-12-01 23:03:21 -08:00
Mitchell Hashimoto
1094ac976e
core: support checksum on box add
2013-12-01 23:03:20 -08:00
Mitchell Hashimoto
4281af338f
core: use keyword args to simplify BoxCollection#add
2013-12-01 23:03:20 -08:00
Mitchell Hashimoto
9be6b4f0d3
core: check for Ruby 2.0
2013-12-01 23:03:20 -08:00
Fabio Rehm
9753f988b0
core: Fix regression caused by recent changes that allowed multiple private keys [GH-907]
2013-11-29 00:19:21 -02:00
phinze
ee44e717f0
core: fix small comment typo
2013-11-27 18:56:48 -06:00
Mitchell Hashimoto
db9c8dd6b3
core: validate box_download_ca_cert_file, expand
2013-11-26 21:10:33 -08:00
Mitchell Hashimoto
d0f14250d6
core: can specify config.vm.box_download_ca_cert
2013-11-26 19:35:04 -08:00
Mitchell Hashimoto
cd3e19306c
commands/box/add: custom CA cert [GH-2337]
2013-11-26 19:32:56 -08:00
Mitchell Hashimoto
fef24b2b24
core: output available commands in machine-readable
2013-11-26 19:06:33 -08:00
Mitchell Hashimoto
d7b74ca8b9
core: config.vm.box_url can be array of urls [GH-1958]
2013-11-25 21:57:20 -08:00
Mitchell Hashimoto
21bed5c0aa
core: cleanup HandleBoxURL
2013-11-25 19:11:26 -08:00
Mitchell Hashimoto
13b52f6b6e
Merge branch 'client-certs' of https://github.com/sthulb/vagrant into sthulb-client-certs
...
Conflicts:
config/default.rb
lib/vagrant/action/builtin/handle_box_url.rb
plugins/commands/box/command/add.rb
2013-11-25 16:50:11 -08:00
Mitchell Hashimoto
45e09eb677
core: allow multiple private keys [GH-907]
2013-11-25 15:45:39 -08:00
Mitchell Hashimoto
3bedc77cc4
Merge branch '2293-track-box-url' of https://github.com/fgrehm/vagrant into fgrehm-2293-track-box-url
...
Conflicts:
plugins/commands/box/command/list.rb
2013-11-25 13:20:26 -08:00
Mitchell Hashimoto
5f1cf5872f
core: create sentinel just before provisioning [GH-2488]
2013-11-25 11:52:48 -08:00
Fabio Rehm
35476328a0
Update version to 1.4.0.dev
...
Since plugin devs might not be aware of the bump, at least they'll know that master is now 1.4 after a `bundle update`
/cc @mitchellh
2013-11-25 14:18:30 -02:00
Mitchell Hashimoto
3701b955cb
core: allow hooking around provisioner runs
...
/cc @fgrehm - :) I think you'll understand.
2013-11-24 21:15:22 -08:00
Mitchell Hashimoto
d6fb083507
Merge pull request #2405 from fgrehm/2044-provisioner-hooking
...
core: support hooking around provisioners runs
2013-11-24 21:07:53 -08:00
Mitchell Hashimoto
8d99382993
core: allow custom callables in hooks
2013-11-24 21:07:11 -08:00
Mitchell Hashimoto
ec5727dfe0
core: expose the hook method from the env
2013-11-24 21:02:18 -08:00
Mitchell Hashimoto
f5cc112a4b
core: allow hooks to send arbitrary data
2013-11-24 21:01:41 -08:00
Mitchell Hashimoto
4bc4317607
core: fix exception case regression from yesterday
2013-11-24 16:38:32 -08:00
Mitchell Hashimoto
42a71a953d
commands/status: add machine-readable output
2013-11-24 11:11:38 -08:00
Mitchell Hashimoto
c5a7ab7953
core: Add the MachineReadable UI, --machine-readable flag
2013-11-24 11:04:54 -08:00
Mitchell Hashimoto
0379853202
core: get rid of dependencies on @env from mixin
2013-11-23 22:05:59 -08:00
Mitchell Hashimoto
f0f8b4e3ee
core: use OpenSSH for ssh exec
2013-11-23 17:21:38 -08:00
Mitchell Hashimoto
bc9d048066
core: enable SSH compression for `vagrant ssh`
2013-11-23 16:50:39 -08:00
Mitchell Hashimoto
97c80c0a62
Merge pull request #2424 from tmatilai/store_provision_enabled
...
core: store the final `provision_enabled` value to env
2013-11-23 16:46:55 -08:00
Mitchell Hashimoto
3cdc0ef445
core: allow env access in plugin loaded middleware
2013-11-23 16:40:19 -08:00
Mitchell Hashimoto
49b14114a2
core: style nitpick
...
/cc @fgrehm - I prefer this style. :) No big deal, just pointing it out
2013-11-23 16:39:30 -08:00
Mitchell Hashimoto
1ea39ab605
Merge pull request #2437 from fgrehm/plugins-loaded-hook
...
core: plugins loaded hook with no vagrantfiles
2013-11-23 16:38:45 -08:00
Mitchell Hashimoto
0e20c51c7f
core: allow provisioner cleanup to happen after call
2013-11-23 16:37:18 -08:00
Mitchell Hashimoto
46d9ded812
commands/box/add: add --clean flag to ignore continuation
2013-11-23 15:55:52 -08:00
Mitchell Hashimoto
b78be4625d
core: remove old temp files for boxes
2013-11-23 15:53:45 -08:00
Mitchell Hashimoto
a290480ec9
core: output when resuming box download
2013-11-23 15:51:10 -08:00
Mitchell Hashimoto
5d9c002bdd
core: don't make all downloads continuable
2013-11-23 15:47:42 -08:00
Mitchell Hashimoto
034c151720
Merge branch 'resumable-download' of https://github.com/rconradharris/vagrant into rconradharris-resumable-download
...
Conflicts:
CHANGELOG.md
2013-11-23 15:42:48 -08:00
Mitchell Hashimoto
97389d4255
core: output synopsis with command [GH-2249]
2013-11-23 14:00:42 -08:00
Mitchell Hashimoto
1b8c3b62af
core: scope hash override synced folder settings
2013-11-23 13:38:15 -08:00
Mitchell Hashimoto
de9d38de21
core: don't load vagrantfile on plugin command
2013-11-23 13:25:33 -08:00
Mitchell Hashimoto
e9fd622406
core: vagrant version requirements in vagrantfile [GH-2322]
2013-11-23 12:23:34 -08:00
Mitchell Hashimoto
bf72c7cb5d
core: human friendly error for corrupt box metadata
2013-11-23 11:54:42 -08:00
Mitchell Hashimoto
ab70dc271b
core: verify explicit sf types are usable
2013-11-23 10:47:06 -08:00
Mitchell Hashimoto
0b9861db7d
providers/virtualbox: fix broken NFS check
2013-11-22 17:29:35 -08:00
Mitchell Hashimoto
125584aaf4
core: SyncedFolders middleware passes inoptions
2013-11-22 17:13:14 -08:00
Mitchell Hashimoto
079ac12f5d
core: remove NFS action
2013-11-22 16:53:17 -08:00
Mitchell Hashimoto
52fe93cc41
synced_folders/nfs: begin implementation (not functional)
2013-11-22 16:51:55 -08:00
Mitchell Hashimoto
93a4066339
core: SyncedFolders built-in middleware
2013-11-22 16:12:51 -08:00
Mitchell Hashimoto
97148379d2
providers/virtualbox: implement the synced folder plugin
2013-11-21 17:38:17 -08:00
Mitchell Hashimoto
ee0086ddee
core: Add synced_folder plugin type
2013-11-21 15:56:37 -08:00
Rick Harris
87a47abee8
Add resumable downloads
...
Since VM images can be fairly large and connections rather flaky, it would be
nice to support resumable downloads whereby, if a download is interrupted for
some reason, on the next attempt, it picks up where it left off.
To implement this, the following changes were made:
* The temporary download filename is now constructed from a SHA1 of the
`box_url` instead of a timestamp. This allows separate invocations of
Vagrant to 'share' the download-path if the URLs exactly match.
* Add `--continue-at -` option to `curl` which tells it to automatically resume
downloading where it left off
* Modify the `recover` method in `box_add` to not remove the temporary
download path if the download was interrupted
Known Issue:
* The progress on a resumed download will look a bit wonky in the sense that,
it starts at 0% each time, instead of where it left off. Since Vagrant is
pulling this directly from `curl`, this is more of an upstream issue.
Fixes #57
2013-11-20 15:15:38 -06:00
AJCStriker
a567e658c8
Add invalid character replacement
...
This fixes the bug seen here:
http://pastebin.com/QzWQQndK
Which would generate an Argument Error causing "vagrant up" and other such commands to fail.
2013-11-20 01:44:49 +00:00
Fabio Rehm
a0c1cc0231
core: Add spec for running environment hooks with a custom Action::Runner
2013-10-29 13:28:04 -02:00
Fabio Rehm
bbe7b3ffc5
core: Add support for plugins to hook into the environment load process before configurations are parsed
2013-10-29 13:11:08 -02:00
Fabio Rehm
500deb5138
core: Persist box URL and download date into a JSON file under boxes directory
2013-10-29 13:09:24 -02:00
Fabio Rehm
05a8cf523a
core: Get rid of code that deals with box info on a separate statefile
2013-10-29 13:09:24 -02:00
Fabio Rehm
fcfb431362
core: Improve RemoveBoxInfo and WriteBoxInfo docs a bit
2013-10-29 13:09:24 -02:00
Fabio Rehm
1c689d2211
core: Remove box information from state file after box removal
2013-10-29 13:09:23 -02:00
Fabio Rehm
e4b5db829e
commands/box: Extract box removal code from `box remove` command into a builtin action
2013-10-29 13:09:23 -02:00
Fabio Rehm
1443d634c7
core: Write box information after download
2013-10-29 13:09:23 -02:00
Fabio Rehm
670a441a99
core: Scaffold an action for persisting box information
2013-10-29 13:09:23 -02:00
Fabio Rehm
4fa12d896f
core: Pass on the newly added box to the rest of the middleware stack
2013-10-29 13:09:23 -02:00
Fabio Rehm
a5c15fd230
core: Fix action name used for ProvisionerRun
2013-10-29 13:08:52 -02:00
Fabio Rehm
2debce9dd9
core: Improve provisioner hooking by introducing a new builtin action for wrapping provisioner runs
2013-10-29 13:08:52 -02:00
Fabio Rehm
00ce442de8
core: Allow hooking before and after provisioners
2013-10-29 13:08:52 -02:00
Emiliano Ticci
6bf842326a
Machine ID should always be a string
2013-10-29 00:01:38 +01:00
Teemu Matilainen
88673e4d2e
Store the final `provision_enabled` value to env
...
Let other middleware actions to know if we are really going to run the
provisioners.
2013-10-27 16:01:22 -03:00
Mitchell Hashimoto
eb6256316c
core: improved commenting in bin/vagrant
2013-10-23 23:20:27 -07:00
Tianxiang Chen
e1abceee8c
Sleep to avoid 100% CPU in waiting time of 'vagrant up'
2013-10-20 20:16:28 -07:00
Mitchell Hashimoto
57e95323b6
up version for dev
2013-10-15 12:58:22 -10:00
Mitchell Hashimoto
a40522f5fa
v1.3.5
2013-10-15 11:55:44 -10:00
Mitchell Hashimoto
225da651f8
core: Show error message if _key dynamically passed into error [GH-2328]
2013-10-05 09:21:38 -07:00
Mitchell Hashimoto
bf70fba936
Up version for dev
2013-10-02 11:17:27 -07:00
Mitchell Hashimoto
0ac2a87388
v1.3.4
2013-10-02 08:42:06 -07:00
Mitchell Hashimoto
557172b4be
core: defined action hook names can be strings, convert to symbols
2013-10-01 21:56:43 -07:00
Mitchell Hashimoto
00f61e67e1
core: errors can use error_message to specify string error message
2013-10-01 21:45:05 -07:00
Mitchell Hashimoto
138024d74c
core: Unset DYLD_LIBRARY_PATH if setuid/setgid [GH-2243]
2013-09-20 17:43:11 -07:00
Mitchell Hashimoto
47120a86a2
core: modify DYLD_LIBRARY_PATH only if executing in installer [GH-2231]
2013-09-20 17:38:49 -07:00
Mitchell Hashimoto
33a36830fe
core: don't output \e[0K on Windows [GH-2246]
2013-09-20 17:20:29 -07:00
Mitchell Hashimoto
590566095a
Up version for dev
2013-09-18 14:09:49 -07:00
Mitchell Hashimoto
db8e7a9c79
v1.3.3
2013-09-18 13:45:41 -07:00
Mitchell Hashimoto
5b2a28cd4c
core: set the DYLD_LIBRARY_PATH before other env vars
2013-09-18 09:42:18 -07:00
Mitchell Hashimoto
7c3b342add
core: restore the old DYLD_LIBRARY_PATH specifically
2013-09-18 09:41:57 -07:00
Mitchell Hashimoto
91ff1ec8ae
Revert "core: don't delete state data if id=nil [GH-2201]"
...
This reverts commit 1a780bf5b2
.
Conflicts:
CHANGELOG.md
2013-09-18 09:20:37 -07:00
Mitchell Hashimoto
06bf3c6fdc
core: Remove DYLD_LIBRARY_PATH if command not in installer [GH-2219]
2013-09-17 18:53:35 -07:00
Mitchell Hashimoto
e721960392
Up version for dev
2013-09-17 16:15:57 -07:00
Mitchell Hashimoto
9a394588a6
v1.3.2
2013-09-17 15:36:36 -07:00
Mitchell Hashimoto
cac28c82de
core: Vagrantfile must be file [GH-2216]
2013-09-17 12:42:57 -07:00
Mitchell Hashimoto
d95567e4c7
Revert "core: better cleanup of ".vagrant"" [GH-2201]
...
This reverts commit 5b42994406
.
2013-09-16 20:56:28 -07:00
Mitchell Hashimoto
1a780bf5b2
core: don't delete state data if id=nil [GH-2201]
2013-09-16 20:56:14 -07:00
Fabio Rehm
9cba88b711
Remove dead code
2013-09-16 16:30:57 -03:00
Mitchell Hashimoto
3090e313f1
core: Create directory before real_path [GH-2196]
2013-09-15 19:50:10 -07:00
Mitchell Hashimoto
e515ca22ab
core: sleep between state checks for communicator [GH-2163]
2013-09-15 17:33:05 -07:00
Mitchell Hashimoto
5054ae95fd
core: log when OUT actions are called in middleware
2013-09-15 17:18:34 -07:00
Fabio Rehm
87f8bd8c23
core: Report the proper invalid state when waiting for the guest machine to be ready
2013-09-14 14:35:50 -03:00
Fabio Rehm
7b440339f3
core: Allow strings to be used when checking for Guest capabilities
2013-09-11 19:56:14 -03:00
Paul Hinze
abe7830421
core: fix NoMethodError in Vagrant.has_plugin? [GH-1736]
2013-09-11 15:13:21 -05:00
Eric G. Wolfe
1186c86718
[GH-1977] revert and alternate fix
...
@mitchellh, the internal encoding doesn't seem to work. Therefore,
I reverted that previous change to vagrant.rb.
However, I found two alternate solutions. Either transcoding,
`/etc/redhat-release` to ISO-8859-1 on open, or using something
like File.binread to transcode the file contents to raw.
2013-09-07 13:40:23 -04:00
Mitchell Hashimoto
a477d950fe
Update version for dev
2013-09-06 16:28:49 -07:00
Mitchell Hashimoto
b12c7e8814
v1.3.1
2013-09-06 16:08:12 -07:00
Mitchell Hashimoto
20c46d020c
core: fix interpolation error on v1=>v2 upgrade warinings [GH-2142]
2013-09-06 08:51:03 -07:00
Mitchell Hashimoto
90289544d4
core: handle EACCES when cleaning up .vagrant dir
2013-09-06 00:26:39 -07:00
Mitchell Hashimoto
afab61a05f
core: don't use active_machines too much, deletes data
2013-09-06 00:10:23 -07:00
Mitchell Hashimoto
95aba27e59
core: VAGRANT_VAGRANTFILE affects only project vagrantfile [GH-2130]
2013-09-05 14:46:26 -07:00
Mitchell Hashimoto
6512eb5cbb
Up version for development
2013-09-04 20:50:57 -07:00
Mitchell Hashimoto
0224c62323
v1.3.0
...
This will actually be released tomorrow, most likely, but I want
to get the installers all ready.
2013-09-04 20:50:14 -07:00
Mitchell Hashimoto
4c35f6d071
core: exec with the proxy command if specified
2013-09-04 17:23:43 -07:00
Mitchell Hashimoto
763bdc42f4
Merge pull request #1537 from wormzer/master
...
communicator/ssh: Additional proxy_command option
2013-09-04 17:18:59 -07:00
Brian Porter
accff3689b
Comment typo fixes
...
Only comment changes.
Removed stray apostrophe from Util::Downloader.initialize() doc block. Corrected open => options for .download! description.
2013-09-04 14:37:17 -05:00
Mitchell Hashimoto
be25238381
core: Show what machine error messages are for [GH-1668]
2013-09-02 15:53:59 -07:00
Mitchell Hashimoto
896ae7b9ba
core: vagrant -v no longer loads Vagrantfile
2013-09-02 15:43:59 -07:00
Mitchell Hashimoto
7f0cbd8fea
core: Vagrant.has_plugin? to check if plugin installed [GH-1736]
2013-09-02 15:22:40 -07:00
Mitchell Hashimoto
b8dc881792
commands/up: validate provision-with args [GH-1957]
2013-09-02 15:06:03 -07:00
Mitchell Hashimoto
ac1404b9ac
commands/plugin: Add "update" subcommand
2013-09-02 09:31:26 -07:00
Mitchell Hashimoto
e2ddab532d
core: Don't provision after first `up` by default [GH-1776]
2013-09-02 09:03:46 -07:00
Fabio Rehm
77dd626341
guest: Remove dead code
2013-09-01 17:41:17 -03:00
Fabio Rehm
b581936434
Bump version
2013-09-01 17:39:13 -03:00
Mitchell Hashimoto
c63d4fd6b8
hosts/bsd: nice error if can't read exports file [GH-2038]
2013-09-01 10:25:00 -07:00
Mitchell Hashimoto
4608e75b48
core: clean up machine directory when id = nil
2013-08-31 23:02:16 -07:00
Mitchell Hashimoto
5a4c06f75e
core: config.ssh.timeout => config.vm.boot_timeout
2013-08-29 16:41:36 -07:00
Mitchell Hashimoto
c38fadfd2f
core: config.vm.graceful_halt_timeout to specify graceful halt timeout
2013-08-29 16:38:02 -07:00
Mitchell Hashimoto
261d0ef6cd
core: WaitForCommunicator - more robust wait for boot
...
This is a new built-in middleware that is more robust for
waiting for boots. The "max_tries" configuration is now gone, it is
timeout based. Future commits will make this even better as the
SSH communicator will implement the new "wait_for_ready" in a better
way.
2013-08-29 16:27:00 -07:00
Mitchell Hashimoto
5b42994406
core: better cleanup of ".vagrant"
2013-08-29 11:45:57 -07:00
Mitchell Hashimoto
38a6f863e7
core: Inherit CommandUnavailableWindows from CommandUnavailable
2013-08-29 11:18:21 -07:00
Mitchell Hashimoto
d4c7e20110
core: ProvisionerCleanup task to run cleanup on provisioners
2013-08-29 11:13:43 -07:00
Mitchell Hashimoto
471dc2dc7d
core: strip newlines off of IDs [GH-2024]
2013-08-09 11:42:18 -07:00
Mitchell Hashimoto
d24caac5ae
Merge pull request #1914 from b2jrock/darwin-guest
...
OS X (darwin) guest support.
2013-08-09 10:53:29 -07:00
Brian Johnson
3611ff39f4
Change mount_nfs_folder cap to be more like the linux version, adding a
...
bunch of retires rather than a long sleep.
Add DarwinNFSMountFailed error. This might move be more appropriate at
the plugin level.
Integrate some of tvsutton's work in configure_networks to get the
implementation closer to working in both fusion and virtualbox.
Add shell_expand_guest_path capability (also copied from linux)
2013-08-05 17:39:44 -07:00
Mitchell Hashimoto
16002d03c0
Up version for dev
2013-07-29 08:35:02 -07:00
Mitchell Hashimoto
7ec0ee1d00
v1.2.7
2013-07-28 21:43:53 -07:00
Mitchell Hashimoto
ff36a46178
Set user agent to Vagrant + version
...
/cc @fgrehm
2013-07-28 20:51:35 -07:00
Fabio Rehm
c7aed1a6a1
Provide a custom user agent header to cURL request so that URL shorteners are able to track the amount of downloads
2013-07-28 20:23:27 -03:00
Fabio Rehm
eefb90ff9d
Fix small typo on comment
2013-07-28 19:51:28 -03:00
Mitchell Hashimoto
5be16cc194
up version for dev
2013-07-26 21:04:16 -07:00
Mitchell Hashimoto
22b76517d6
v1.2.6
2013-07-26 20:21:04 -07:00
Michael Glass
9a00473029
fix regression preventing boxes that specify support for multiple formats.
...
don't know if this is the right place for this fix. maybe formats should be an array of symbols.
2013-07-26 13:16:53 -07:00
Mitchell Hashimoto
536ea95ea3
Up version for dev
2013-07-26 11:26:34 -07:00
Mitchell Hashimoto
ec2305a9a6
v1.2.5
2013-07-26 10:27:35 -07:00
Mitchell Hashimoto
6168abf831
Set default internal encoding to UTF-8 [GH-1977]
2013-07-25 16:56:50 -05:00
Mitchell Hashimoto
7ef6c5d9d7
Unused config objects are finalized properly [GH-1877]
2013-07-23 17:36:48 -05:00
Mitchell Hashimoto
a786bb53d0
--provider on box add supports any format of that provider
2013-07-23 17:36:47 -05:00
Mitchell Hashimoto
af66f5f930
box_download_insecure to not validate https of box_url [GH-1712]
2013-07-20 00:18:02 -04:00
Mitchell Hashimoto
4151df884a
Forwarded ports don't auto-correct by default [GH-1701]
2013-07-20 00:15:11 -04:00
Mitchell Hashimoto
eb70c0d6bb
Show an error message if ansible fails to run [GH-1699]
2013-07-20 00:07:09 -04:00
Mitchell Hashimoto
cf0ba53fbb
box_url works with all box formats a provider supports [GH-1752]
2013-07-19 00:50:00 -04:00
Mitchell Hashimoto
25895b5099
handle_box_url uses new formats
2013-07-19 00:50:00 -04:00
Mitchell Hashimoto
f3bbad8c2e
Refactor box collection to support looking for boxes multi-provider
2013-07-19 00:50:00 -04:00
Fabio Rehm
264a220461
Merge branch 'more-concise-box-not-found-error-message' of https://github.com/akalyaev/vagrant into akalyaev-more-concise-box-not-found-error-message
2013-07-18 23:32:15 -03:00
Mitchell Hashimoto
900f7e4d63
Error if VBox 4.2.14 is running.
2013-07-18 13:54:53 -04:00
Mitchell Hashimoto
bd378ea2b0
VAGRANT_DOTFILE_PATH [GH-1524]
2013-07-18 11:58:11 -04:00
Mitchell Hashimoto
b68c489991
Fix missing translation for non existent CWD [GH-1947]
2013-07-18 10:43:12 -04:00
Mitchell Hashimoto
3028940adb
NFS allows access from all networks on VM [GH-1204]
2013-07-18 00:01:49 -04:00
Mitchell Hashimoto
a0543d7c7c
Use 32-bit integer for NFS fsuid for older kernels [GH-1127]
2013-07-17 23:34:47 -04:00
Mitchell Hashimoto
203594e41a
NFS exports with wrong casing on case-insensitive work [GH-1202]
2013-07-17 10:53:24 -07:00
Mitchell Hashimoto
4bf6dc5743
Method for getting the case-correct path of a path [GH-1202]
2013-07-17 10:48:39 -07:00
Mitchell Hashimoto
792ac4556d
Code for testing case sensitivity of filesystem [GH-1202]
2013-07-17 10:36:57 -07:00
Mitchell Hashimoto
3c86719ed8
Up version for dev
2013-07-16 18:02:38 -07:00
Mitchell Hashimoto
0219bb8772
v1.2.4
2013-07-16 17:05:45 -07:00
Mitchell Hashimoto
986eda4a4f
Add DSAAuthentication=yes flag to SSH [GH-1900]
2013-07-16 16:46:00 -07:00
Mitchell Hashimoto
7adffcb880
CHANGELOG
2013-07-16 16:34:53 -07:00
korya
a0774b5b5f
Vagrant reports properly error for not found command
2013-07-15 08:52:53 +03:00
Mitchell Hashimoto
5f5203559f
style nitpick
2013-07-12 16:05:56 +09:00
Mitchell Hashimoto
78ef3ded2b
Expand symlinks for NFS host path [GH-1101]
2013-07-10 20:21:13 -07:00
Mitchell Hashimoto
e941c549f2
box_url downloading happens before config validation [GH-1061]
2013-07-10 20:10:33 -07:00
Mitchell Hashimoto
f38b6801f9
vagrant destroy exits with 1 if any confirmation are declined [GH-923]
2013-07-10 19:39:20 -07:00
Mitchell Hashimoto
abd22dfe72
Up version for development
2013-07-09 19:10:56 -07:00
Mitchell Hashimoto
95d308caae
v1.2.3
2013-07-09 17:01:01 -07:00
Mitchell Hashimoto
2e969065b7
Merge pull request #1911 from emyl/no_route_fix
...
Raise a proper SSH error on EHOSTUNREACH
2013-07-09 16:45:35 -07:00
Fabio Rehm
b2b7643dfc
Merge pull request #1720 from tawan/patch-1
...
Fix typo.
2013-07-09 09:19:48 -07:00
Emiliano Ticci
b0b18c64dd
Raise a proper SSH error on EHOSTUNREACH
2013-07-09 14:35:07 +02:00
Simon Thulbourn
ea9fde9433
Merge branch 'master' into client-certs
2013-07-02 09:29:39 +01:00
Thomas Linkin
d95b202346
Vagrant::Action::Builder RDoc correction
...
The RDoc comments for `Vagrant::Action::Builder#to_app` reference an
instance of `Vagrant::Action::Environment` as the passed paramter. There
is no class `Vagrant::Action::Environment` available. The param being
passed is actually a `Hash` that represents the "action environment".
This commit corrects the RDoc lines for
`Vagrant::Action::Builder#to_app` to correctly reference the passed
`Hash`.
2013-06-24 13:10:32 -04:00
Mitchell Hashimoto
6c99f3dfa7
tweaks for style
2013-06-09 13:51:19 -07:00
Mitchell Hashimoto
8906ae01a8
Merge pull request #1783 from Aigeruth/issue-654
...
Check for binaries as part of Subprocess
2013-06-09 13:48:21 -07:00
Mitchell Hashimoto
80f06605fb
config.vm.guest now forces guest setting again [GH-1800]
2013-06-09 13:17:23 -07:00
Gabor Nagy
a4979c4824
[GH-654] Missing condition and translations
2013-06-03 00:04:25 +02:00
Gabor Nagy
4c00abe69e
Modifies to use util/which [GH-654]
2013-06-02 03:48:47 +02:00
Gabor Nagy
0936267314
Fixes [GH-654] on Windows 8x64 and Ruby 1.9.3p374
...
Replaces the command with absolute path version if it exists.
2013-06-01 14:29:45 +02:00
Simon Thulbourn
ef98c7b8b1
passes client cert option from Vagrant file to box_add
2013-05-23 15:13:04 +01:00
Simon Thulbourn
7dd7957a97
adds client cert
2013-05-21 11:42:19 +01:00
Simon Thulbourn
c495fb7c5c
adds options for client certs to downloader class
...
Adds :client_cert to the env array and then passes it into the curl
options array
2013-05-21 11:39:43 +01:00
Tawan Sierek
52f7c53707
Fix typo.
2013-05-12 16:32:15 +03:00
Anton Kalyaev
6c5a580006
more concise message for BoxNotFound error
...
Now we have different providers, but the error message didn't tell
anything about it. Suppose I want to remove one of my boxes:
vagrant box remove opscode-ubuntu-12.04 vritualbox
There is a typo in provider name. The error message is:
Box 'opscode-ubuntu-12.04' could not be found.
Therefore I need to double check the box name, and only than I will see
the typo.
This commit make the error message looks like this:
Box 'opscode-ubuntu-12.04' with 'vritualbox' provider could not be
found.
2013-05-05 18:23:12 +04:00
Mitchell Hashimoto
ccfd321ef9
Properly convert provider name to symbol when searching for boxes
...
[GH-1691]
2013-05-04 09:51:13 -07:00
Mitchell Hashimoto
4c5262690e
Ignore "guest not ready" error when graceful halting [GH-1679]
2013-05-01 18:50:40 -07:00
Mitchell Hashimoto
7f32af980e
SmartOS support for setting hostnames [GH-1672]
2013-04-30 15:07:41 -07:00
Mitchell Hashimoto
52448c97cc
Up version for development
2013-04-24 14:23:11 -07:00
Mitchell Hashimoto
7e400d00a3
v1.2.2
2013-04-23 13:05:18 -07:00
Mitchell Hashimoto
7524e7a3c0
Box add URL with windows drive letter works properly
2013-04-22 20:41:47 -07:00
Mitchell Hashimoto
14d70776ca
Better locking within handle_box_url
...
This improves locking in the face of parallel providers and
handling box_url parameters. This avoids downloading a box multiple
times.
2013-04-20 14:31:29 -06:00
Mitchell Hashimoto
c29e4d6334
In a multi-machine environment, don't download box multiple [GH-1467]
2013-04-19 23:51:53 -06:00
Mitchell Hashimoto
04d9872674
Improve the thread safety of BoxCollection
2013-04-19 23:48:05 -06:00
Mitchell Hashimoto
e8d8188474
Error if a box override changes the box setting...
2013-04-19 23:10:17 -06:00
Mitchell Hashimoto
661b982502
Handle box overrides in provider-specific overrides properly [GH-1617]
2013-04-19 23:05:32 -06:00
Mitchell Hashimoto
780a312fc9
Built-in DestroyConfirm middleware
2013-04-19 14:14:29 -06:00
Mitchell Hashimoto
4a6939096c
Up version for development
2013-04-17 08:22:00 -07:00
Mitchell Hashimoto
a7853fe7b7
v1.2.1
2013-04-16 21:29:18 -07:00
Mitchell Hashimoto
2239036b59
Use Mozilla CA cert bundle for SSL validation
2013-04-16 17:32:30 -07:00
Mitchell Hashimoto
0f089c5671
`--[no-]parallel` for vagrant up
2013-04-16 15:22:14 -07:00
Mitchell Hashimoto
f3cf23e873
Ability to specify no parallelism on the environment
2013-04-16 15:13:00 -07:00
Mitchell Hashimoto
dc31725049
Follow redirects when downloading boxes [GH-1607]
2013-04-16 13:25:32 -07:00
Mitchell Hashimoto
d3f415133b
Up version for dev
2013-04-16 13:21:54 -07:00
Mitchell Hashimoto
f5ece47c51
v1.2.0
2013-04-16 09:42:34 -07:00
Benjamin Schwarze
13c914f85e
fix root cause for error message when running in multi-vm environment:
...
SSH Defaults:
* The following settings don't exist: forward_agent, forward_x11
2013-04-10 22:05:57 +02:00
Mitchell Hashimoto
8e5b52c00c
Get rid of unused autoload
2013-04-10 10:49:10 -07:00
Mitchell Hashimoto
98a23be689
Get rid of unused class
2013-04-10 10:48:56 -07:00
Mitchell Hashimoto
d03938e3c1
config.ssh properly overrides provder-detected [GH-1479]
2013-04-08 20:50:15 -07:00
Mitchell Hashimoto
66ff86fda5
Auto-detect policy server IP for CFEngine
2013-04-08 15:30:41 -07:00
Mitchell Hashimoto
ba2c749d6d
Running provisioner output shows provisioner shortcut, not class
2013-04-08 14:50:22 -07:00
Mitchell Hashimoto
c457285fb6
Basic CFEngine boostrapping
2013-04-08 13:46:03 -07:00
Mitchell Hashimoto
9599d8a45d
Starting work on CFEngine, installs on Debian
2013-04-08 13:05:53 -07:00
Mitchell Hashimoto
376eb0b327
UI on Machine
2013-04-08 12:38:15 -07:00
Mitchell Hashimoto
2ddefd49a1
Convert capability name to symbol for lookup
2013-04-08 10:44:56 -07:00
Mitchell Hashimoto
efaabea5c0
Use vagrant tmp directory for boxes [GH-1442]
2013-04-07 14:48:56 -07:00
Mitchell Hashimoto
998122e076
Box adding is done in a helper that ensures temporary files are cleaned
2013-04-07 14:43:52 -07:00
Mitchell Hashimoto
f203c29fbb
Builders are merged when using hooks. [GH-1555]
2013-04-07 14:17:40 -07:00
Mitchell Hashimoto
9f49b9298e
vagrant ssh on Cygwin won't output DOS path file warnings
2013-04-07 13:57:24 -07:00
Mitchell Hashimoto
5fe8cbb083
Proper clear line text for Cygwin
2013-04-07 13:48:26 -07:00
Mitchell Hashimoto
162239d2cd
Expand file paths when adding boxes in Cygwin
2013-04-07 13:46:46 -07:00
Mitchell Hashimoto
373a1d8633
Properly expand cygwin paths to Windows path for vboxmanage
2013-04-06 22:06:33 -07:00
Mitchell Hashimoto
96ebd3e8f7
Providers can support multiple box formats if they choose to.
...
Currently, providers must match a box format exactly the same
as that provider's name. i.e. the virtuabox provider needs a
"virtualbox" box and the "vmware_fusion" provider needs a
"vmware_fusion" box. Now, the provider can specify what the box format
is they want and support multiple if wanted.
Other box formats are specified in the provider definition within
a plugin:
class Plugin < Vagrant.plugin("2", "provider")
# ... other stuff
provider("foo", box_format: ["virtualbox", "other_format"]) do
# .. same
end
end
Now when using the example "foo" provider above, boxes for both
"virtualbox" or "other_format" are searched for. If both are found,
the order in which the formats exist determines precedence.
2013-04-06 18:21:16 -07:00
Mitchell Hashimoto
868f8d4061
Detect PuTTY Link on Windows and show error [GH-1518]
2013-04-06 16:50:59 -07:00
Mitchell Hashimoto
0874d4a77a
Assume Cygwin has a TTY for input [GH-1430]
2013-04-06 16:07:20 -07:00
Mitchell Hashimoto
5ca89383f8
Simplify cygwin check everywhere
2013-04-06 16:05:13 -07:00
Mitchell Hashimoto
fb9c311b4d
Always colorize Cygwin output
2013-04-06 16:03:25 -07:00
Mitchell Hashimoto
fbdd46a130
On Windows, prefer USERPROFILE for home directory path
2013-04-06 15:53:58 -07:00
Mitchell Hashimoto
744c879998
Don't repair forwarded port to used forwarded port
2013-04-06 14:12:33 -07:00
Mitchell Hashimoto
17a312b293
Expand the file URL when adding a box
2013-04-05 21:27:00 -07:00
Mitchell Hashimoto
1957efb4e1
Nicer error if ansible-playbook is not installed on the host
2013-04-04 14:01:26 -07:00
Mitchell Hashimoto
cf9eb509a9
Don't preserve modified time when untarring files [GH-1539]
2013-04-04 13:32:37 -07:00
Mitchell Hashimoto
067f431ee9
Better debugging on searching for capabilities
2013-04-03 23:46:39 -07:00
Mitchell Hashimoto
2f232e0175
Halt and mount NFS are caps
2013-04-03 23:33:20 -07:00
Mitchell Hashimoto
61d2f9f96f
SetHostname uses new cap system
2013-04-03 23:18:12 -07:00
Mitchell Hashimoto
63f28a9011
Nicer error messages for new linux caps
2013-04-03 23:14:24 -07:00
Mitchell Hashimoto
28d3f274d8
First capability for linux
2013-04-03 23:01:43 -07:00
Mitchell Hashimoto
819ef46fca
Tests for registering guest capabilities
2013-04-03 22:43:35 -07:00
Mitchell Hashimoto
c5c15fdaa6
Machine#guest returns the proper guest detected
2013-04-03 22:40:30 -07:00
Mitchell Hashimoto
f48b0796a5
Forward arguments down to capability
2013-04-03 22:20:45 -07:00
Mitchell Hashimoto
cf3c1b73d2
Guest#capability to execute capabilities
2013-04-03 22:19:20 -07:00
Mitchell Hashimoto
06a9968ec4
Guest#capability? for testing for capabilities
2013-04-03 22:03:03 -07:00
Mitchell Hashimoto
52f3847b0a
Laying the foundation for the new guest plugin
2013-04-03 21:47:57 -07:00
Mitchell Hashimoto
4ffc2c3b74
Invalid configuration keys are caught and shown in user friendly way
...
[GH-1484]
2013-04-03 16:18:37 -07:00
Mitchell Hashimoto
52a2f48b20
Provider-specific configuration overrides via 2nd block param
...
Example:
Vagrant.configure("2") do |config|
# ...
config.vm.provider :virtualbox do |p, vb_config|
vb_config.vm.box = "virtualbox_box"
end
end
2013-04-03 14:57:14 -07:00
Matt Wormley
00c9f2c973
added ssh.proxy_command to handle waiting for aws ssh connection when ssh proxy in place. use config.ssh.proxy_command = "ssh -q <user>@<proxy_host> nc %h %p"
2013-04-03 13:54:47 -07:00
Mitchell Hashimoto
0f0c0b0396
Add max redirects for download
2013-04-03 12:01:12 -07:00
Mitchell Hashimoto
5e2549fe8b
Add "--insecure" flag for downloader
2013-04-03 11:57:40 -07:00
Mitchell Hashimoto
58b7c65a69
Remove the downloaders
2013-04-03 11:45:46 -07:00
Mitchell Hashimoto
ab19b506bd
Get rid of unnecessary variable
2013-04-03 08:31:43 -07:00
Mitchell Hashimoto
d1eccbf98f
SafeChdir all the things for thread safety
2013-04-03 08:31:43 -07:00
Mitchell Hashimoto
bd60d6b283
Lock around chdir in Subprocess for thread safety
2013-04-03 08:31:43 -07:00
Mitchell Hashimoto
c84c609633
Gracefully handle errors in parallel cases
2013-04-03 08:31:43 -07:00
Mitchell Hashimoto
368dddd950
Allow only one Environment#batch to run at a time per env
2013-04-03 08:31:42 -07:00
Mitchell Hashimoto
d6a84b5ca4
Environment#batch and forcing disable through env var
2013-04-03 08:31:42 -07:00
Mitchell Hashimoto
3d8271a3a2
BatchAction for running actions in parallel
2013-04-03 08:31:42 -07:00
Mitchell Hashimoto
7446b3c4ef
Make the Basic/Colored UI objects threadsafe
2013-04-03 08:31:42 -07:00
Mitchell Hashimoto
7b0745abcc
UI objects use "scopes" now
2013-04-03 08:31:42 -07:00
JD Harrington
8cd74fee16
Allow override of default_provider
...
Set the VAGRANT_DEFAULT_PROVIDER environment variable to override the
value of default_provider.
2013-04-03 08:31:42 -07:00
Mitchell Hashimoto
2e50a238fc
Provider plugins can provide arbitrary options
2013-04-03 08:31:42 -07:00
Mitchell Hashimoto
87f7cba16b
Fix cURL parsing with invalid blanks
2013-04-03 08:31:41 -07:00
Mitchell Hashimoto
d1e2596ce5
Properly accumulate and parse cURL output for progress
2013-04-03 08:31:41 -07:00
Mitchell Hashimoto
05c6379abb
Setup file protocol if adding a box from a file
2013-04-03 08:31:41 -07:00
Mitchell Hashimoto
25f66cee51
Remove downloaders, no longer needed
2013-04-03 08:31:41 -07:00
Mitchell Hashimoto
6c1eb2b007
Download boxes using CURL!
2013-04-03 08:31:41 -07:00
Mitchell Hashimoto
94dd210be7
Return the value of the yielded block in Busy
2013-04-03 08:31:41 -07:00
Mitchell Hashimoto
b9a2855fcb
Tests for the downloader
2013-04-03 08:31:41 -07:00
Mitchell Hashimoto
913e0e529d
Initial downloader implementation
2013-04-03 08:31:40 -07:00
Mitchell Hashimoto
06d055f443
Up the version to 1.2.0 development
2013-04-03 08:31:40 -07:00
Mitchell Hashimoto
8aff752cfb
v1.1.6
2013-04-03 08:31:10 -07:00
Mitchell Hashimoto
90f18c41be
v1.1.5
2013-04-02 15:13:41 -07:00
Mitchell Hashimoto
4f1a3dad8c
Retry SSH on Errno::EACCES
2013-03-31 20:27:08 -07:00
Mitchell Hashimoto
e5539eb769
Only prepend/append once for hooks
2013-03-30 14:57:47 -07:00
Mitchell Hashimoto
c6a2d01cdf
Allow disabling prepend/append hooks
2013-03-30 14:51:10 -07:00
Mitchell Hashimoto
30053638af
Human friendly error on exit code 126 from VBoxManage
2013-03-29 13:14:00 -07:00
Mitchell Hashimoto
8156185f5d
Don't error too early when config.vm.box is not properly set
2013-03-29 12:54:01 -07:00
Mitchell Hashimoto
72e0a691db
Don't load plugins.json plugins in Bundler env
2013-03-28 17:02:54 -07:00
Mitchell Hashimoto
64921db66f
Error message if private key not owned by right user [GH-1503]
2013-03-28 16:54:39 -07:00
Mitchell Hashimoto
0272db698b
Up version for development
2013-03-28 15:34:25 -07:00
Mitchell Hashimoto
87613ec939
v1.1.4
2013-03-25 14:33:00 -07:00
Mitchell Hashimoto
0903e62add
v1.1.3
2013-03-25 11:48:10 -07:00
Mitchell Hashimoto
43d85930ed
Improve network interface detection to avoid crash [GH-1480]
2013-03-22 10:51:07 -07:00
Mitchell Hashimoto
7e125db669
Fix obscure error with world writable temp dir
2013-03-21 17:31:23 -07:00
Mitchell Hashimoto
a4745fb426
Properly handle forward port collision detection with auto-correct
...
[GH-1472]
2013-03-21 16:33:06 -07:00
Mitchell Hashimoto
11ad039275
Get rid of Vagrant::SSH, unused
2013-03-20 16:18:14 -07:00
Fabio Rehm
4108574b17
Remove Vagrant::TestHelpers
...
Things are easier to test now. The module is not used internally neither it is
up to date with recent changes.
2013-03-20 15:04:52 -03:00
Mitchell Hashimoto
847cbb9ed3
Allow anything that can #to-s for Vagrant.plugin
2013-03-18 21:34:37 -07:00
Mitchell Hashimoto
715539eac3
Up version for development
2013-03-18 14:35:03 -07:00
Mitchell Hashimoto
67bd4d30f7
v1.1.2
2013-03-18 13:51:15 -07:00
Mitchell Hashimoto
5ad6c2a94a
Up version for development
2013-03-18 11:24:18 -07:00
Mitchell Hashimoto
f743fed3cc
v1.1.1
2013-03-17 23:05:16 -07:00
Mitchell Hashimoto
022c1daec0
Raise error if no hostonly network on VBox with NFS [GH-1437]
2013-03-17 22:33:02 -07:00
Mitchell Hashimoto
5427392459
Logger statements for copying each box file during add
2013-03-16 10:14:32 -07:00
Martin Ehrnhoefer
24aaa7f282
Adding a box fails on Windows [GH-1424]
...
The Dir.mkdir statement fails on Windows if src and dest
reside on different partitions. Files are therefore copied
one-by-one. The #6715 workaround is not needed anymore.
2013-03-16 13:04:33 +01:00
Mitchell Hashimoto
9464796c6d
Human friendly error when metadata.json is missing from a box
2013-03-15 11:12:50 -07:00
Mitchell Hashimoto
d40ba7968c
Fix `vagrant package` to avoid nil errors [GH-1423]
2013-03-14 20:40:52 -07:00
Mitchell Hashimoto
327ca544ef
Don't load any plugins for `vagrant plugin` [GH-1418]
2013-03-14 12:58:24 -07:00
Mitchell Hashimoto
43f3764e5b
Properly quote regular expression inputs to StringBlockEditor
2013-03-14 12:41:03 -07:00
Mitchell Hashimoto
64d1b54d51
Up version for development. Moving forward.
2013-03-14 11:55:03 -07:00
Mitchell Hashimoto
1949489993
v1.1.0
2013-03-13 23:36:31 -07:00
Mitchell Hashimoto
c8b829c4d2
Properly resolve cygwin paths in Cygwin environments [GH-1366]
2013-03-13 21:50:41 -07:00
Mitchell Hashimoto
57a5edbc39
Merge pull request #1366 from johnb0011/master
...
Solve Virtualbox pathing issue running under Cygwin
2013-03-13 21:41:34 -07:00
Mitchell Hashimoto
82d8285df6
Give a success message after adding a box
2013-03-13 21:24:03 -07:00
Mitchell Hashimoto
dea881cad2
vagrant box add --force works again [GH-1413]
2013-03-13 21:20:25 -07:00
Fabio Rehm
cc20d2f91e
raise ChildProcess::LaunchError with the original message to ease debugging when running subprocesses
2013-03-09 15:31:28 -03:00
Fabio Rehm
54e0c37dbf
Fix typo on logging output
2013-03-06 19:47:28 -03:00
Mitchell Hashimoto
360051e032
Greatly improve http_proxy/https_proxy detection for box downloads
2013-03-05 00:33:56 -08:00
Mitchell Hashimoto
36b805367d
Fix all core code to use the new networking syntax
2013-03-01 16:48:10 -08:00
Mitchell Hashimoto
ade5d8a579
Human-friendly error if error copying private key [GH-580]
2013-03-01 13:51:11 -08:00
Mitchell Hashimoto
b482870173
Capture stdout/stderr when loading plugins so that it doesn't just
...
happen
2013-03-01 11:55:06 -08:00
Mitchell Hashimoto
7547a0d34a
V2 missing key returns a DummyConfig as well
2013-02-28 00:17:58 -08:00
Mitchell Hashimoto
af2690635e
Unknown keys return a DummyConfig rather than OpenStruct
2013-02-28 00:16:43 -08:00
Mitchell Hashimoto
d15acde8c0
Capture missing key calls in V1 configs and record them as warnings
2013-02-28 00:06:49 -08:00
Mitchell Hashimoto
c9ad55d9e7
Built-in hostname middleware for setting hostname
2013-02-27 21:28:09 -08:00
Mitchell Hashimoto
4254b35b7d
Fix the forward port collision handling
2013-02-27 13:40:11 -08:00
Mitchell Hashimoto
1505fc9d22
Autoload he port collision middleware
2013-02-27 13:37:50 -08:00
Mitchell Hashimoto
68aa9c8acf
Output the UI when repairing port collisions
2013-02-26 13:43:06 -08:00
Mitchell Hashimoto
79609d42bb
Additional options for the collision detection
2013-02-26 13:08:06 -08:00
Mitchell Hashimoto
e97c330281
First pass at a forwarded port collision middleware
2013-02-26 12:10:26 -08:00
Mitchell Hashimoto
499d1ff8bf
VAGRANT_VAGRANTFILE env var to specify alternate filename for Vfile
2013-02-23 12:07:23 -08:00
Mitchell Hashimoto
1bda157188
Only look for `Vagrantfile` if no more specific was given
2013-02-23 11:59:44 -08:00
Mitchell Hashimoto
60a1b035e7
For hooks, put the environment in the action env
2013-02-22 15:52:57 -08:00
Mitchell Hashimoto
3b2a82003e
The hook callable has to be an Action builder so the hooks are called
2013-02-22 15:28:48 -08:00
Mitchell Hashimoto
29600d3d06
Always log the exception raised when error loading a plugin
2013-02-22 15:11:01 -08:00
Mitchell Hashimoto
1b6538354d
Be smarter about determining if plugin load failed
2013-02-22 15:10:34 -08:00
Mitchell Hashimoto
9750069312
Better logging around environment hooks
2013-02-22 14:43:43 -08:00
Mitchell Hashimoto
46db50680b
environment_unload hook
2013-02-22 13:54:28 -08:00
Mitchell Hashimoto
3c343c0623
Environment#hook allows hooks to be run at arbitrary points
2013-02-22 12:22:10 -08:00
Mitchell Hashimoto
c68bf33d66
Specify action_name for all machine actions for action hooks
2013-02-22 12:14:15 -08:00
Mitchell Hashimoto
be01d57034
action_hooks can hook into specific actions
2013-02-22 12:12:55 -08:00
Mitchell Hashimoto
18524628b7
Hooks allow parameters and blocks to middlewares
2013-02-22 12:00:35 -08:00
Mitchell Hashimoto
6a12edeb71
Get rid of unused variable
2013-02-20 20:41:19 -08:00
John Barney
a390b9dddf
Removing tabs added by a bad .vimrc
2013-02-10 03:49:15 -08:00
John Barney
73eb86bad0
Adding Cygwin detection, and fixing pathing issue in VirtualBox driver under Cygwin
2013-02-09 19:36:56 -08:00
Mitchell Hashimoto
f837d32ae4
Rename FileUtil to Which since its too close to FileUtils
2013-02-08 22:29:53 -08:00
Mitchell Hashimoto
38e160055b
Style nitpicks on FileUtil
2013-02-08 22:20:00 -08:00
Patrick Wyatt
bd06bea3e5
Enable Windows users with SSH installed to use 'vagrant ssh'
2013-02-08 22:09:11 -08:00
Mitchell Hashimoto
595d6f7848
Record invalid key accesses as an error on config
2013-02-08 16:54:24 -08:00
Mitchell Hashimoto
d659071a82
Check for NFS errors only if we actually have NFS folders
2013-02-08 16:25:41 -08:00
Mitchell Hashimoto
6afb4326fa
Move NFS to a built-in middleware
2013-02-08 15:34:04 -08:00
Mitchell Hashimoto
050cb482f3
Better logging in the BoxAdd action
2013-02-07 18:19:42 -08:00
Mitchell Hashimoto
4144db5042
More gracefully handled plugins which cannot be found
2013-02-07 11:55:45 -08:00
Mitchell Hashimoto
cd3d2a1e8c
Call properly modifies original environment
2013-02-06 18:36:05 -08:00
Mitchell Hashimoto
4a1a990491
Raise a proper SSH error on ECONNRESET
2013-02-06 18:08:55 -08:00
Mitchell Hashimoto
acbd024fa2
Put the machine action in the middleware env
2013-02-06 16:23:35 -08:00
Mitchell Hashimoto
1df4891371
Spread out methods in provision so subclass can override
2013-02-06 16:14:59 -08:00
Mitchell Hashimoto
352fec0359
Fix some issues to get hooks working
2013-02-06 15:42:48 -08:00
Mitchell Hashimoto
b20dcc9eb8
Setup hooks in the runner
2013-02-06 15:37:12 -08:00
Mitchell Hashimoto
aa7193471f
Plugins can define action hooks via action_hook
2013-02-06 15:27:14 -08:00
Mitchell Hashimoto
83bba789a4
Hook#apply
2013-02-06 15:21:34 -08:00
Mitchell Hashimoto
d720205810
Builder supports action hooks
2013-02-06 15:06:13 -08:00
Mitchell Hashimoto
9251b880f5
Addition docs on the hook class
2013-02-06 14:30:15 -08:00
Mitchell Hashimoto
80a7c8a0cb
Hook class
2013-02-06 14:21:31 -08:00
Mitchell Hashimoto
8f24d2d98c
Remove the "easy" plugins until a future version
2013-02-06 13:46:34 -08:00
Mitchell Hashimoto
87026b2d9e
Remove old TOOD that was fulfilled
2013-02-05 22:17:00 -08:00
Mitchell Hashimoto
9f15fdeabc
Only override the SSH host/user/etc if not specified by provider
2013-02-05 21:21:56 -08:00
Mitchell Hashimoto
79beefdb0a
Do proper provider configuration merging
2013-02-05 12:22:00 -08:00
Mitchell Hashimoto
864f1b7506
Pass a proper Pathname for SSHExec to check key perms
2013-02-04 21:17:12 -08:00
Mitchell Hashimoto
434cc79a83
Properly expand config.ssh.private_key_path
2013-02-04 21:13:29 -08:00
Mitchell Hashimoto
a72cfdbc00
Improved logging and such around SSH
2013-02-04 11:44:56 -08:00
Mitchell Hashimoto
82c9b658d0
Expose the home_path to the action runner
2013-02-04 10:42:44 -08:00
Mitchell Hashimoto
b568ad0b8a
Fix package to probably put output box in pwd
2013-02-04 10:38:50 -08:00
Mitchell Hashimoto
55c905b43b
`vagrant plugin license` command.
2013-02-04 10:32:04 -08:00
Mitchell Hashimoto
7e71b73e4a
Reformat some comments to be within 80 chars
2013-02-04 10:04:31 -08:00
Eric Tipton
421c2a9b2e
fix args parser w/r/t ssh "-t" option -- it was failing b/c any associated shell commands need to be the last part of the system command
2013-02-04 06:16:32 -05:00
Mitchell Hashimoto
5d75a65382
Get rid of error "status codes" and just exit with 1
2013-02-03 18:04:43 -08:00
Mitchell Hashimoto
635949980b
Handle the case a plugin install is a plugin not found
2013-02-03 14:29:29 -08:00
Mitchell Hashimoto
2079941e7d
If the ID file doesn't exist, then don't delete it
2013-02-03 14:23:25 -08:00
Mitchell Hashimoto
01756dc964
Fix the UI so the output shows the proper machine name
2013-02-03 14:23:07 -08:00
Mitchell Hashimoto
78e9853b71
The resource in the UI doesn't show up if it is nil
2013-02-03 14:20:40 -08:00
Mitchell Hashimoto
3df6088db0
Make plugin loading more robust to errors
2013-02-03 14:13:27 -08:00
Mitchell Hashimoto
1162c2dbfc
Instead of shelling out, use the RubyGems API to install plugins
...
This gets us an accurate name of the gem even if it is installed
from a file.
2013-02-03 13:59:43 -08:00
Mitchell Hashimoto
5882d5dad6
VAGRANT_NO_PLUGINS can be used to skip plugin loading
2013-02-03 13:03:00 -08:00
Mitchell Hashimoto
693b825eb1
Don't use the RC file, use the JSOn state file
2013-02-03 12:53:52 -08:00
Mitchell Hashimoto
fa50f06a4c
Error if RubyGems failed.
2013-02-02 23:31:53 -08:00
Mitchell Hashimoto
a2ef7790de
Start creating the plugin middleware sequences
2013-02-02 18:42:04 -08:00
Mitchell Hashimoto
ec995b5ddf
Avoid cross-device moves when adding boxes [GH-1350]
2013-02-02 16:37:46 -08:00
Mitchell Hashimoto
165dd63f78
New HandleBoxUrl built-in middleware to handlet the "box_url" config
2013-02-01 11:31:08 -08:00
Mitchell Hashimoto
4e6496bed7
Improve subprocess logging
2013-01-31 19:47:54 -08:00
Mitchell Hashimoto
a8c7ad30ee
Be a bit more fine grained about errors that are reported for Vfiles
2013-01-31 18:52:29 -08:00
Mitchell Hashimoto
67c2e205be
Create rgloader/loader.rb files for encoded files
2013-01-31 18:48:56 -08:00
Mitchell Hashimoto
1392d9b4a5
Detect if a VM name is already taken for VirtualBox
2013-01-30 23:22:45 -08:00
Mitchell Hashimoto
7fe19d3a11
Use box directory as temporary directory to avoid cross-device [GH-1199]
2013-01-30 21:54:07 -08:00
Mitchell Hashimoto
c164a5ca81
Merge pull request #1300 from kainz/master
...
Avoid cross device activity for box creation by creating tmp dir in provider dir
2013-01-30 21:47:40 -08:00
Mitchell Hashimoto
c75ec09014
Lower IO.select timeouts to improve subprocess speeds
...
We were getting bit if the process exited while we were doing an
IO.select because it would then wait the full timeout.
2013-01-30 21:29:04 -08:00
Mitchell Hashimoto
c5120fdd5e
Don't fail too early with bad Vagrantfiles [GH-1345]
2013-01-30 20:16:10 -08:00
Mitchell Hashimoto
e9327c4a28
Better logging in the config logger
2013-01-30 20:12:41 -08:00
Mitchell Hashimoto
c57ba9de58
Give a nice human-friendly error message when problems loading Vfile
2013-01-30 20:01:41 -08:00
Mitchell Hashimoto
75ea4e5bdd
--provision-with works properly again
2013-01-30 19:42:54 -08:00
Mitchell Hashimoto
e0f0066c99
--no-provision works properly again
2013-01-30 19:39:21 -08:00
Mitchell Hashimoto
7eec127704
Support refreshing the machine cache
2013-01-30 10:37:40 -08:00
Mitchell Hashimoto
64042a5d35
Downloading the box_url component works again
2013-01-30 10:24:47 -08:00
Mitchell Hashimoto
a21744a12d
Merge pull request #1336 from ithinkihaveacat/return-non-zero-if-invalid-command
...
Return exit status of 1 on invalid command
2013-01-29 10:58:55 -08:00
Mitchell Hashimoto
e1b78dbfbe
Unlock the file explicitly due to some weirdness on BSD kernels
2013-01-28 21:08:22 -08:00
Mitchell Hashimoto
7531c94dbf
Allow path and exception for Lock middleware to be procs
2013-01-28 20:46:39 -08:00
Mitchell Hashimoto
9ae3a373c8
Add new middleware builtin: Lock
...
This will do a process lock by flocking a file. If it fails, it will
raise an exception of choice.
2013-01-28 17:08:37 -08:00
Mitchell Hashimoto
0d27cd5bcb
Warn if Vagrant is run outside of installers
2013-01-28 13:39:56 -08:00
Mitchell Hashimoto
d4cf03d6c5
`vagrant package` uses bsdtar
2013-01-28 13:20:42 -08:00
Mitchell Hashimoto
35aef1aa0b
Use bsdtar to repackage boxes
2013-01-28 13:18:07 -08:00
Mitchell Hashimoto
e6a0023713
Switch to bsdtar for unpackaging a box
2013-01-28 13:01:43 -08:00
Michael Stillwell
7941748db7
Return exit status of 1 on invalid command
...
Makes "vagrant destroyjj" and similar return an exit code of 1, so that
"vagrant destroyjj && vagrant up" works as expected.
2013-01-27 19:52:43 +00:00
Mitchell Hashimoto
c3cc513609
Create the setup_version file to track our directory layout version
2013-01-25 16:37:54 -08:00
Mitchell Hashimoto
6a3c0bd425
Call built-in supports args for imddleware
2013-01-22 12:20:02 -08:00
Mitchell Hashimoto
fb875ab642
Better logging in the GracefulHalt middleware
2013-01-22 12:13:42 -08:00
Mitchell Hashimoto
51540496a9
GracefulHalt builtin
2013-01-22 11:56:49 -08:00
Mitchell Hashimoto
e1f4e27b1b
Update docs for v2 provider interface for MachineState
2013-01-21 11:44:19 -06:00
Mitchell Hashimoto
8ad8f73846
Raise an exception if a non-MachineState is returned
2013-01-21 11:31:20 -06:00
Mitchell Hashimoto
7bdf54923a
Create the MachineState class
2013-01-21 11:25:28 -06:00
Mitchell Hashimoto
2d57afbbda
Support warnings/errors when upgrading Vagrantfiles internally
2013-01-20 22:04:50 -05:00
Mitchell Hashimoto
ffd9c1eb9c
Verify we have errors to show if we're going to show them
2013-01-18 13:37:31 -08:00
Mitchell Hashimoto
7f55d5eac8
Builtin: ConfigValidate will validate your configuration
2013-01-18 13:26:14 -08:00
Mitchell Hashimoto
37e36010e0
Remove the ErrorRecorder
2013-01-18 13:15:22 -08:00
Mitchell Hashimoto
fff021e51d
Update Chef provisioner to new validation API
2013-01-18 13:12:02 -08:00
Mitchell Hashimoto
e651eb3aa1
Add a V2 config helper to merge errors since that seems common
2013-01-18 13:03:07 -08:00
Mitchell Hashimoto
3f3c7027aa
Machine objects are passed into validate instead of env
2013-01-18 12:43:53 -08:00
Mitchell Hashimoto
a8b57ba13f
Ignore empty error groups
2013-01-18 12:27:29 -08:00
Mitchell Hashimoto
bae6555836
Remove DeprecationError
2013-01-18 12:23:29 -08:00
Mitchell Hashimoto
e0c8fadae4
I can remove the `validate!` method from the v1 root
2013-01-18 12:18:30 -08:00
Mitchell Hashimoto
42a1ce6e9d
Remove the old config validation error
2013-01-18 12:15:36 -08:00
Mitchell Hashimoto
e6f9586d83
New validation method on the root that returns errors
2013-01-18 12:14:40 -08:00
Mitchell Hashimoto
0bd0752bf2
Environment#data_dir
...
This is basically a directory to store state.
2013-01-18 11:37:49 -08:00
Mitchell Hashimoto
776a1e446b
Strip the value, actually, to trim the front newline
2013-01-15 21:57:10 -08:00
Mitchell Hashimoto
6c2e1c354f
Chomp values inserted into a StringBlockEditor
2013-01-15 21:55:56 -08:00
Mitchell Hashimoto
23668d4ed0
Fix some newline weirdness with StringBlockEditor
2013-01-15 21:53:11 -08:00
Mitchell Hashimoto
adec64baa4
Add the #get method to StringBlockEditor
2013-01-15 20:34:41 -08:00
Mitchell Hashimoto
335503a688
StringBlockEditor to help plugins with owning parts of files
2013-01-15 17:49:46 -08:00
Mitchell Hashimoto
5c9f27626c
Provisioner built-in uses new API
2013-01-13 16:09:32 -08:00
Mitchell Hashimoto
cf2cca3b7c
Revamp the configuration internal state for defining provisioners
2013-01-13 16:02:48 -08:00
Mitchell Hashimoto
c8053c00a4
New provisioner API. Shell provisioner adheres to it.
2013-01-13 15:48:52 -08:00
Mitchell Hashimoto
25fcb59e38
Use registries for the V2 plugin manager
2013-01-13 13:05:31 -08:00
Mitchell Hashimoto
f3b340aae0
Use registry merging for provider configs
2013-01-13 13:00:06 -08:00
Mitchell Hashimoto
45879132a3
Registries support merging
2013-01-13 12:58:48 -08:00
Mitchell Hashimoto
e66c5066e4
Plugin configuration can have scopes now, ex. provider
2013-01-13 12:38:17 -08:00
Mitchell Hashimoto
212e634c3b
Make Provision a built-in action.
...
This allows other providers to just use it.
2013-01-12 16:22:37 -08:00
Mitchell Hashimoto
22571bf05b
Rescue the EHOSTDOWN error for SSH
2013-01-12 12:47:49 -08:00
Mitchell Hashimoto
124a2ee5d3
Add the --provider optional flag to `box add`
2013-01-11 21:24:57 -08:00
Mitchell Hashimoto
48eaa93745
Raise proper error if there aren't any NIC slots available
2013-01-11 15:57:08 -08:00
Mitchell Hashimoto
102e8f23d6
Use scoped hash overrides for high-level config
2013-01-11 15:50:09 -08:00
Mitchell Hashimoto
0c612f695f
Util::ScopedHashOverride
2013-01-11 15:44:35 -08:00
Bryon Roche
b5c75b89a9
Make box creation not cross filesystems.
...
This will cause issues on modern linux which uses a tmpfs-backed tmpdir.
2013-01-07 16:19:17 -08:00
Mitchell Hashimoto
f428b288f3
Convert provider to symbol only if non-nil
2012-12-30 18:08:07 -10:00
Mitchell Hashimoto
20253c4c4f
Convert provider to symbol
2012-12-30 18:04:31 -10:00
Mitchell Hashimoto
a30a92bb4f
active_machines should return name as a symbol
2012-12-30 11:51:22 -10:00
Mitchell Hashimoto
4c46091746
Environment#primary_machine_name and use it for with_target_vms
...
This makes the single-provider and default provider semantics work with
primary VMs.
2012-12-30 11:12:56 -10:00
Mitchell Hashimoto
07157b47ae
Only allow one provider active machine at a time.
...
Temporary limitation of Vagrant to only allow one active machine with a
provider at a time. That means you cant `up` a machine with both vmware
and virtualbox at the same time. In the future you will be able to but
to avoid various edge cases for now we're disallowing it.
2012-12-30 10:52:01 -10:00
Mitchell Hashimoto
526603dbbf
Lots more logging in with_target_vms
2012-12-29 18:34:11 -10:00
Mitchell Hashimoto
9257fe3d98
Environment#active_machines
...
This returns a list of active machines for the environment. An active
machine is a machine that at one point was created by Vagrant.
2012-12-27 19:28:05 -10:00
Mitchell Hashimoto
4e649cc987
Upgrade V1-style dotfile to V2
...
See the code and comments for details on how this is done. As usual, we
are very careful about this so as not to inadvertently destruct real
user data.
2012-12-26 22:41:42 -08:00
Mitchell Hashimoto
c0c3e7bf43
Remove Vagrant::DataStore
...
We just don't use it yet and the old implementation was sketchy. I was
not happy with it.
2012-12-26 21:45:24 -08:00
Mitchell Hashimoto
b15a6dee0e
Log more information about the machine
2012-12-26 21:45:24 -08:00
Mitchell Hashimoto
3baa31460f
Store machine ID in "id" file in data directory.
...
Instead of storing an "active" hash in the local_data of an Environment,
we now place the ID of a machine in the "id" file of the machine data
directory. This file is read upon re-instantiation in order to load the
proper state.
2012-12-26 21:45:23 -08:00
Mitchell Hashimoto
d18edc3ce5
Detect a V1 environment and stub upgrade process
2012-12-26 21:45:23 -08:00
Mitchell Hashimoto
cc18492c7a
Local data path introduced
...
The local data path is set to the `ROOT_DIR/.vagrant` by default and is
a directory where Vagrant can store environment-local state. This can be
overriden on a per-Environment basis using the `local_data_path`
option.
2012-12-26 21:45:23 -08:00
Mitchell Hashimoto
5cb2f3275a
Get rid of a silly constant for subdirs in Environment
...
The data is only used once anyways so just use a local variable.
2012-12-26 21:45:23 -08:00
Mitchell Hashimoto
8fe0f86dbd
The --provider flag for `up` now actually does something.
2012-12-23 21:23:08 -08:00
Mitchell Hashimoto
3808ea377f
Upgrade all other default configurations to V2
2012-12-23 16:29:26 -08:00
Mitchell Hashimoto
b0b7c56aa3
More accurate commenting/documentation on the command helpers
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
e88d735cb6
Make configured VM providers default to an empty one
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
6478139cee
Move config.vm.customize to VirtualBox specific option
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
dffbf6eb09
Allow COnfirm calls to be forced by specifying a force_key
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
50d7b0aba4
Fix bug where Call didn't propagate recovery. Warden has no recovery.
...
The issue here is that when a middleware failed and a recovery sequence
started, it would halt at the "call" step because the "Call" didn't
properly recover the child sequence.
An additional issue was that a Warden had no "recover" method, meaning
embedded Wardens wouldn't recover their stacks properly.
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
a6e0d3908f
Create a "dummy" provider for tests
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto
ac7958a43b
Environment#primary_machine takes a provider argument. Use it.
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto
128c06e78d
Environment#default_provider
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto
1ee470a551
Begin work on supporting provider-specific configuration
...
This works by registering a `config` with `:provider => true` with the
same name as your provider. Vagrant will then automatically configure
the provider when `config.vm.provider` is used.
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto
99c5cddb7d
V2 config supports the concept of an "UNSET" value when doing merges
...
This value should be used as a default, and allows the parent `merge`
method to "just work" most of the time.
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto
2da812bd48
Change log levels of some messages that are useful
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto
e16010041a
Warden only logs an error once
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto
cc24d7b196
Better logging for the box collection
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto
c9d5cff7be
Add in some logging
2012-12-23 16:29:23 -08:00
Mitchell Hashimoto
819140bbc2
Don't error if box doesn't exist on load
2012-12-23 16:29:23 -08:00
Mitchell Hashimoto
0ec639c8e1
BoxCollection#find should only find V1 box when searching for vbox
2012-12-23 16:29:23 -08:00
Mitchell Hashimoto
f2b91d26fd
Load the configuration per machine, so that provider boxes work
...
Boxes are provider-specific, and we don't know the provider until
Environment#machine is called, so we need to build up the machine
configuration during this time.
2012-12-23 16:29:23 -08:00
Mitchell Hashimoto
0180ed849d
Move config loader order out from an ivar into a param for the #load
...
method
2012-12-23 16:29:23 -08:00
Mitchell Hashimoto
1559f7b7a7
Get rid of the old Environment#vms calls. Use #machine everywhere.
2012-12-23 16:29:23 -08:00
Mitchell Hashimoto
130a602e9b
Style nitpick
2012-12-16 10:40:12 -08:00
Nate Smith
d556c0006c
Update lib/vagrant/plugin/v2/plugin.rb
...
Require set in the V2 plugin file since it uses it.
Fixes #1257
2012-12-11 15:51:35 -05:00
Mitchell Hashimoto
d84b71d73e
Require set in the V1 plugin file since it uses it.
2012-12-01 11:28:31 -08:00
Mitchell Hashimoto
b416665fd7
Just some comments
2012-11-07 22:21:48 -08:00
Mitchell Hashimoto
2ef6ff10f0
Cache the machine objects created in Environment#machine.
...
Each machine and provider backing should be represented by only one
machine.
2012-11-07 22:08:06 -08:00
Mitchell Hashimoto
67855be77b
Add the Environment#machine method
...
This will eventually replace the Environment#vms method. Because of the
introduction of providers, the environment doesn't know what the backing
of the machines will be (and they're _machines_ now, not _vms_).
Instead, users of Environment will now call `#machine` on the
environment to retrieve a machine with the given backing provider as it
needs it.
2012-11-07 21:45:09 -08:00
Mitchell Hashimoto
53860f90ab
V2 loader now properly upgrades V1 configuration.
...
This is done by calling the `upgrade` method on the _old_ configuration
classes. The old configuration classes are given the complete new
configuration and can set whatever settings they need to on it.
2012-11-07 20:01:39 -08:00
Mitchell Hashimoto
d254d6f718
Configure the V2 kernel.
2012-11-06 21:28:44 -08:00
Mitchell Hashimoto
81ca275792
Providers to V2
2012-11-06 21:20:55 -08:00
Mitchell Hashimoto
5a33b7ee54
Hosts to V2
2012-11-06 21:20:22 -08:00
Mitchell Hashimoto
1d2beff649
Guests to V2
2012-11-06 21:14:45 -08:00
Mitchell Hashimoto
45f211b19e
Communicators to v2 plugins.
2012-11-06 21:14:10 -08:00
Mitchell Hashimoto
78a1e5726e
Get rid of some ruby warnings due to shadowed variables
2012-11-06 21:12:15 -08:00
Mitchell Hashimoto
e8370f0098
Convert comands to V2 plugins.
2012-11-06 21:09:29 -08:00
Mitchell Hashimoto
be294e002a
Build the v2 interface, which is just a copy of V1 for now.
2012-11-06 20:51:03 -08:00
Mitchell Hashimoto
0ca783e8d1
V1 config loader loads upgradable config if not V1
...
This is to prepare for the upcoming V2 configuration. When we're in V2,
we only want to load _upgradable_ configuration keys.
2012-11-03 21:54:32 -07:00
Mitchell Hashimoto
59d5c5ed92
Add support for "upgrade safe" config classes to plugins.
...
These are classes that use NO core classes of Vagrant, and are therefore
safe to load for upgrades. i.e. a V2 core can load a V1 config class
that is deemed upgrade safe without crashing Vagrant.
2012-11-03 21:39:06 -07:00
Mitchell Hashimoto
c803b0508a
Much cleaner plugin part querying syntax.
...
Before we were manually going over every plugin and getting each piece,
all over the place. Now we have a central manager that will give us all
the pieces we want. There is still some cleanup to do here but this is
much better overall.
2012-11-03 21:25:28 -07:00
Mitchell Hashimoto
6ca671e2b8
Don't allow registry to be given value in non-block form
2012-11-03 20:46:24 -07:00
Mitchell Hashimoto
6df6f6764f
Remove plugin activation. It really isn't necessary.
...
It was only used in a couple places and it isn't necessary since you can
do the loading within the actual blocks themselves.
2012-11-03 20:29:34 -07:00
Mitchell Hashimoto
32d5599e72
Document the box collection format a bit more
2012-09-27 11:57:40 -07:00
Mitchell Hashimoto
1360d86747
Use `next` over select with symbol to proc
2012-09-27 11:52:03 -07:00
skim
bad38ca935
fixes an exception issue when a non-directory appears in the boxes dir
2012-09-25 21:13:38 -05:00
Mitchell Hashimoto
bb56f4dd31
Clean up logic surrounding file downloader matching
2012-09-09 20:31:17 -07:00
Mitchell Hashimoto
e0e2cc1974
Merge pull request #1087 from nwjsmith/master
...
Allow `file://` URIs from `config.box.url`
2012-09-09 20:28:19 -07:00
Mitchell Hashimoto
7158445c2d
Error message on ECONNRESET for box downloading via HTTP [GH-1090]
2012-09-09 20:16:43 -07:00
Nate Smith
50c04ac927
`box.url` can use `file://` URI
2012-08-24 09:53:50 -04:00
Mitchell Hashimoto
ba0e426507
Get vagrant package --base working in some hacky way.
...
`vagrant package --base` is deprecated for a future feature so I didn't
want to waste any brain cycles on how to do this the "right" way since a
new system will be introduced to do this sort of thing in teh future.
2012-08-19 18:51:36 -07:00
Mitchell Hashimoto
cc7768c535
Trivial whitespace changes
2012-08-18 20:06:50 -07:00
Mitchell Hashimoto
a7b298b647
Remove Vagrant::VM
2012-08-18 19:36:50 -07:00
Mitchell Hashimoto
78d79de5c4
Comment the action_box_add method
2012-08-18 16:19:13 -07:00
Mitchell Hashimoto
47fe278667
`vagrant box add` works again. Box verification remove temporarily.
...
The built-in middleware sequences will now be hardcoded onto
Vagrant::Action. Other plugins can hook into these sequences to provide
verification and so on. So the VirtualBox plugin will hook into that
action sequence and add verification.
2012-08-18 16:13:14 -07:00
Mitchell Hashimoto
fa4cf63462
Remove the actions that are unavailable now from autoload
2012-08-15 21:55:47 -07:00
Mitchell Hashimoto
fcffcb2ee0
Delete more unused actions
2012-08-15 21:55:25 -07:00
Mitchell Hashimoto
ef5eabb63d
Remove the builtin VM middleware that are now part of the VB provider
2012-08-14 22:39:25 -07:00
Mitchell Hashimoto
b659191a02
`vagrant up`!
2012-08-14 22:38:41 -07:00
Mitchell Hashimoto
2fc18f7207
`destroy` gets a little farther, and properly halts the VM
2012-08-13 23:18:50 -07:00
Mitchell Hashimoto
bca8663742
`vagrant resume` works with the new machine abstraction
2012-08-13 20:03:35 -07:00
Mitchell Hashimoto
83b908f3d8
`vagrant suspend` works with new machine abstraction
2012-08-13 19:30:41 -07:00
Mitchell Hashimoto
296878cff5
Add basic loop detection for distro_dispatch
2012-08-12 19:03:22 -07:00
Mitchell Hashimoto
0eddda3552
Halt works with new machine.
...
This required some modifications to the linux guest implementation. And
the other guests will have to be modified as well. This is because
`channel` is now `communicate`.
2012-08-12 18:54:52 -07:00
Mitchell Hashimoto
f9752d78d8
Properly resolve and load the guest class impl for Machines
2012-08-12 18:35:19 -07:00
Mitchell Hashimoto
28f341ec75
Begin working on the #guest method for Machine instances
2012-08-12 16:46:00 -07:00
Mitchell Hashimoto
5e70ad0ec2
`vagrant ssh -c` now uses a middleware sequence
2012-08-10 00:57:23 -07:00
Mitchell Hashimoto
2e25285297
Add nice inspect results for Environment and Machine
2012-08-10 00:38:11 -07:00
Mitchell Hashimoto
64afd578b3
Just always return the SSH communicator for machines for now.
...
In the future we'll actually find a matching communicator but for now
since we're just focusing on machine abstraction, we just return SSH.
2012-08-08 21:57:08 -07:00
Mitchell Hashimoto
5ae3e0e80c
Allow the definition of communicators in plugins
2012-08-08 21:52:25 -07:00
Mitchell Hashimoto
595e7cee0e
Move SSH communication to a plugin
2012-08-08 21:48:51 -07:00
Mitchell Hashimoto
a1cef830e3
Add the Communicator plugin API.
...
This allows communication protocols to be defined for the machine. This
is how things like SSH will be implemented.
2012-08-08 21:28:28 -07:00
Mitchell Hashimoto
b1ced46d7c
SSHExec raises proper exception if SSH is not yet ready
2012-08-06 10:29:25 -07:00
Mitchell Hashimoto
8d50c4774e
Tests for SSHExec, and forward in the ssh options
2012-08-05 18:37:41 -07:00
Mitchell Hashimoto
e0ec679838
`vagrant ssh` with full console works with new provider.
...
This works by now calling the `:ssh` action on the provider. This action
is allowed to do whatever it pleases, but should at some point probably
call the `SSHExec` built-in middleware.
The `SSHExec` built-in middleware was added. This uses the information
returned by `Machine#ssh_info` and uses the `Vagrant::Util::SSH` helper
to exec into the remote machine. The provider should do any work upfront
in verifying that the machine is ready to be SSHed into.
2012-08-05 13:45:24 -07:00
Mitchell Hashimoto
a1145615d0
Machine#action supports passing in extra env vars for action runner
2012-08-05 13:16:08 -07:00
Mitchell Hashimoto
984c4f4025
Add Util::SSH which has methods for checking key permissions and exec
2012-08-05 13:12:53 -07:00
Mitchell Hashimoto
1a2a8b49c0
Provider API to return SSH info, must implement `ssh_info`.
...
Since SSH is such a critical part of Vagrant, each provider must
implement a method that returns the proper way to SSH into the machine.
2012-08-05 12:41:05 -07:00
Mitchell Hashimoto
9db982f7a4
Expose the provider via the machine object.
2012-08-04 11:16:31 -07:00
Mitchell Hashimoto
d8cb02d55d
Load the machine ID prior to initializing the provider
2012-08-03 14:22:17 -07:00
Mitchell Hashimoto
e5f250121a
Call now only yields the environment
2012-07-27 19:34:46 -07:00
Mitchell Hashimoto
118377e6f0
Destroy sequence asks the user for confirmation.
2012-07-27 19:29:40 -07:00
Mitchell Hashimoto
e20326d577
Added the Confirm built-in middleware
...
This middleware asks the user a question and expects a Y/N answer. This
middleware can be used with the Call middleware.
2012-07-27 19:16:44 -07:00
Mitchell Hashimoto
556a53d48d
You can no longer set env vars on Builders via `use`
2012-07-27 19:05:35 -07:00
Mitchell Hashimoto
90517a0f9b
The `Call` built-in middleware allows for conditional MW sequences.
...
Read the documentation for more information.
2012-07-26 23:56:47 -07:00
Mitchell Hashimoto
5eed3b8417
Building up the `destroy` action again using new provider API.
...
This shows me moving the built-in middleware sequences to the provider
and how I'm organizing all that.
2012-07-26 22:39:27 -07:00
Mitchell Hashimoto
5f8a654393
Goodbye, instance_eval on Vagrant::Action::Builder!
2012-07-26 22:00:25 -07:00
Mitchell Hashimoto
2ef20586da
Remove the action registry feature.
...
This can be removed since in the future all actions will come from the
providers or something. There are still issues with box actions but
we'll get back to that later...
2012-07-26 21:57:11 -07:00
Mitchell Hashimoto
44b4b9dfef
Move drivers to the VirtualBox plugin. Use Machine class.
...
This starts the transition of replacing VM with Machine. Machine still
isn't ready to fully replace VM but by moving it now, I'm able to find
the spots that need to be fixed. At this point `vagrant status` works
with the new provider interface.
2012-07-24 21:32:38 -07:00
Mitchell Hashimoto
912998ef31
Fill in the provider API a bit more to what it is.
2012-07-16 15:24:51 -07:00
Mitchell Hashimoto
aef2c5f48e
Logging statements to Vagrant::Machine
2012-07-16 14:21:51 -07:00
Mitchell Hashimoto
8f0375d7f3
Machines can call actions on their providers.
2012-07-16 14:12:58 -07:00
Mitchell Hashimoto
8fc5591b8e
Machine queries state from the provider
2012-07-16 10:57:17 -07:00
Mitchell Hashimoto
353610021c
Vagrant::Machine
...
This is the class that will represent a machine that is managed by
Vagrant. The class has a number of attributes associated with it and is
meant to be a single API for managing the machines.
2012-07-16 10:28:42 -07:00
Mitchell Hashimoto
3519bf0372
Add the "provider" API to the V1 plugin.
2012-07-15 11:17:58 -07:00
Mitchell Hashimoto
436da57cc4
Add the #action API to the provider plugin
2012-07-14 17:04:06 -07:00
Mitchell Hashimoto
3b82f2efc4
Create the basic provider plugin interface.
...
Non-functional at this point.
2012-07-14 16:57:54 -07:00
Mark LaPerriere
28e19d5449
Update load_plugins to be more Windows friendly. Uses File::PATH_SEPARATOR instead of hard-coded colon (':').
2012-07-12 15:25:28 -03:00
Mitchell Hashimoto
690d380b77
Use the new BoxCollection API
2012-07-11 18:41:13 -07:00
Mitchell Hashimoto
f20666e230
Automatically upgrade the boxes all over.
2012-07-11 18:36:23 -07:00
Mitchell Hashimoto
bcd1304ef4
Remove unused middleware sequences related to repackaging
2012-07-11 18:36:23 -07:00
Mitchell Hashimoto
cc076e5ee5
Box#repackage to repackage a box.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
798ffc93bd
BoxCollection#add throws an UpgradeRequired exception if a V1 box
...
already exists
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
1d197d84c3
BoxCollection#add transparently upgrades V1 boxes to V2
...
This means that V1 boxes can be added to a V2 box collection without
issue.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
8026715619
Remove the box_remove builtin middleware sequence.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
6bb621026f
`vagrant box add` uses the new API.
...
This assumes VirtualBox boxes for now, which is fine.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
623ecb3e3d
Environment attempts to upgrade box on config load.
...
If a V1 box is encountered when Vagrant loads the configuration, then it
will be upgraded on the fly.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
7595f0078e
BoxCollection#add provider argument is optional
...
In the case that not provider is given then whatever provider the box
represents will be added to the system. Ideally, a provider will be
given, but if not, Vagrant still does a "best effort" to install the
box.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
da15105a8f
Make Box2 the new Box
...
This involved defaulting all box searching at the moment to VirtualBox.
Additionally, box upgrading is not yet handled. This needs to be done at
some point.
2012-07-11 18:36:21 -07:00
Mitchell Hashimoto
e7bed7c2ff
Raise an exception if an invalid tar file is added.
2012-07-11 18:36:21 -07:00
Mitchell Hashimoto
a35f6a175d
Exception when you attempt to add a box when a V1 box conflicts.
2012-07-11 18:36:21 -07:00
Mitchell Hashimoto
9e33d16ca1
Adding a box that already exists should result in an exception.
2012-07-11 18:36:21 -07:00
Mitchell Hashimoto
9cb0015b6e
Test that an added box provider must match expected.
2012-07-11 18:36:21 -07:00
Mitchell Hashimoto
c2151681ec
Box collection can add a new box. This is the happy path only.
2012-07-11 18:36:21 -07:00
Mitchell Hashimoto
e647afc7d2
Add logging statements to the box upgrade process.
2012-07-11 18:36:21 -07:00
Mitchell Hashimoto
ffd5ac5af4
BoxCollection can now upgrade V1 boxes to V2
2012-07-11 18:36:21 -07:00
Mitchell Hashimoto
2eaa850853
Box2 reads the metadata.json file.
2012-07-11 18:36:21 -07:00
Mitchell Hashimoto
4386ff9887
BoxCollection#all returns all boxes, including V1 boxes
2012-07-11 18:36:20 -07:00
Mitchell Hashimoto
9d1924811e
Box collection can detect V1 boxes and throws an exception
...
The exception notifies the caller that the box needs to be upgraded. The
upgrade process is not yet done but is coming ina future commit.
2012-07-11 18:36:20 -07:00
Mitchell Hashimoto
a6d7bd48fd
Find boxes with new on-disk structure.
...
The box collection can now find new-style boxes with providers and
return proper Box objects. In the future, we'll also have to implement
upgrading old style ones as well.
2012-07-11 18:36:20 -07:00
Mitchell Hashimoto
42826356ad
Basic "Box2" implementation.
...
This is the beginning of the new box internals. The basic idea is that
the new box has a new field: provider. The provider will describe what
provider that box was built with and what provider it is made to work
with.
2012-07-11 18:36:20 -07:00
Mitchell Hashimoto
a34801588c
Handle the case where ctrl-D is pressed on input.
2012-07-11 18:30:37 -07:00
Mitchell Hashimoto
61621369d2
Catch Net::SSH::Disconnect when connecting to SSH
...
This error was experienced by @pearkes. It is thrown when the remote end
unexpectedly closes the remote end. This is usually caused by SSH not
being able to properly setup the connection.
2012-07-04 08:26:09 -10:00
Mitchell Hashimoto
ef265ab3ba
Disable read timeout for HTTP downloader
2012-06-28 21:28:40 -07:00
Mitchell Hashimoto
5bc0fa1dff
Default the IO.select result to empty array to avoid nil errors
2012-06-28 08:22:06 -07:00
Mitchell Hashimoto
0b9173efd9
Handle case that `writers` is nil on IO.select in subprocess
...
This can happen when IO.select timeout is reached when we're listening
for writers.
2012-06-27 13:54:05 -07:00
Mitchell Hashimoto
0b3e703498
Add the gateway to hostonly network interfaces on Debian [GH-990]
2012-06-27 11:18:23 -07:00
Mitchell Hashimoto
134e56db21
Reference proper constant ALL_ACTIONS
2012-06-27 11:16:04 -07:00
Mitchell Hashimoto
70bdd9f56e
Move host base class to a plugin component
2012-06-27 09:26:03 -07:00
Mitchell Hashimoto
214b29888a
Remove the old guest base
2012-06-26 16:29:53 -07:00
Mitchell Hashimoto
53d8c28c8e
Move guests to Vagrant.plugin("1", :guest)
2012-06-26 16:28:49 -07:00
Mitchell Hashimoto
b23dda54b8
Move command base class to a plugin component
2012-06-26 16:18:02 -07:00
Mitchell Hashimoto
7258daf535
Support specifying a component for Vagrant.plugin
...
The future of subclassing things like configuration bases and so on will
be to use `Vagrant.plugin(version, component)`. For example:
`Vagrant.plugin("1", :provisioner)`.
2012-06-26 15:47:26 -07:00
Mitchell Hashimoto
2e00a007ce
Move provisioner superclass into the V1 namespace
2012-06-26 15:06:04 -07:00
Mitchell Hashimoto
798704c6d2
Move the loader into the Config::V1 namespace.
2012-06-26 15:06:03 -07:00
Mitchell Hashimoto
41bc8e7454
Move Config::V1::Base to Vagrant::Plugin::V1::Config
2012-06-24 17:06:11 -07:00
Mitchell Hashimoto
ffab8cab68
Renamespace V1 plugin root to Vagrant::Plugin::V1::Plugin
...
This is mostly a transparent change to end users, but I'm going to put
all base classes for V1 into Vagrant::Plugin::V1.
2012-06-24 14:24:52 -07:00
Mitchell Hashimoto
6231bef3f0
Simple logging text change
2012-06-23 23:40:55 -07:00
Mitchell Hashimoto
7a299ae2de
Configuration loader can handle upgrading.
...
The basic process for this is to:
1. Load the configuration using the proper loader for that version. i.e.
if you're loading V1 config, then use the V1 loader.
2. If we just loaded a version that isn't current (imagine we're
currently at V3), then we need to upgrade that config. So we first
ask the V2 loader to upgrade the V1 config to V2, then we ask the V3
loader to upgrade the V2 config to V3. We keep track of warnings and
errors throughout this process.
3. Finally, we have a current config, so we merge it into the in-process
configuration that is being loaded.
2012-06-23 19:56:31 -07:00
Mitchell Hashimoto
9bc1ea5f04
Use config finalize to move some version-specific logic to the version
...
This moves out the concept of a "default VM" from the Environment class
and makes it the responsibility of the V1 configuration that at least
one VM is defined on it. This lets the configuration ultimately decide
what a "default" implementation is.
2012-06-23 12:48:53 -07:00
Mitchell Hashimoto
70fb804128
Configuration versions can finalize config after loading
...
This is useful so that it can take a look at the final loaded
configuration object and possibly make some tweaks to the configuration
object. The use case this was built for was so that config V1 can verify
that there is always at least a single VM defined as a sub-VM, the
"default" VM.
2012-06-23 12:27:32 -07:00
Mitchell Hashimoto
7e19d6849b
Config loader no longer assumes latest version for procs.
...
Previously, all procs were assumed to just be the current version. This
is certainly not going to be true always so now the version number of
the configuration must be explicit if you're assigning a proc to the
configuration loader.
2012-06-23 12:06:54 -07:00
Mitchell Hashimoto
b3db82e516
Separate out the versions the config loader knows as init params.
...
This means that the Config::Loader now only knows how to load
configuration for versions used to initialize the class. This lets
things like the tests be completely isolated from what the actual
configuration is for Vagrant. This will be immensely useful to verify
that the loader functionality works for non-trivial bits (like
upgrading) without depending on Vagrant's upgrading functionality.
2012-06-23 11:33:53 -07:00
Mitchell Hashimoto
a677c15e86
Use `next` instead of `return` for 1.8.x compatibility.
...
Since we're not calling this lambda from inside a method, the `return`
causes a LocalJumpError on 1.8.x. It appears this functionality works
fine on 1.9.x but we'd like to support both. The correct behavior
appears to use `next`.
2012-06-23 10:47:01 -07:00
Mitchell Hashimoto
ba64c28304
Convert the path to a string because it may be a Pathname
2012-06-22 21:06:49 -07:00
Mitchell Hashimoto
fa99eb7e54
Check for permission denied when using SCP to upload [GH-924]
2012-06-22 21:04:21 -07:00
Mitchell Hashimoto
d8c16035c8
Don't use Pathname#each_child for 1.8.7 compat [GH-979]
...
each_child is a 1.9.x feature. The implementation however is simple
enough that I copied it over and just use the 1.8.7 compatible version.
2012-06-22 20:47:43 -07:00
Mitchell Hashimoto
51be92eeb6
Remove dependence on V1 Kernel from Environment
2012-06-14 18:46:48 -07:00
Paul Morton
922a5aade5
Update drivers to support reading MAC Addresses
2012-06-11 21:29:21 -07:00
Matt Robenolt
db76b42ef5
Allow the .vagrant dotfile to be moved into a completely different directory tree
...
I wanted to define my dotfile as: `config.vagrant.dotfile_name =
"~/.vagrant-projectname"` and noticed that the full path wasn't
expanded as expected.
This patch allows the vagrant file to be placed anywhere on the
filesystem.
2012-06-09 22:56:54 -07:00
mxtthias
447d6810f7
Explicitly tell ssh server we're done sending data
2012-06-08 14:40:49 +02:00
Mitchell Hashimoto
b393de052f
Subprocess now only yields stdout/stderr if you're listening
2012-06-01 23:17:48 +02:00
Mitchell Hashimoto
2441961a34
Fix bug where SSH didn't work properly
...
Forgot to set the `shell` variable properly
2012-06-01 23:17:38 +02:00
Mitchell Hashimoto
1a6ae81aa9
Require what to be notified for with block and Subprocess.execute
...
There was an issue before where the stdin buffer would always have space
so it would always yield that block and Ruby would spin at 100%. Now we
require all callers to say what they want to listen for. This drops
CPU down to almost nothing.
See GH-832
2012-06-01 17:02:12 +02:00
Mitchell Hashimoto
903fd3acdc
Easy operations API `local` now echoes stdout/stderr
2012-06-01 16:38:40 +02:00
Mitchell Hashimoto
ca6d49bc94
Easy operations `run` and `sudo` now echo stdout/stderr
2012-06-01 16:33:41 +02:00
Mitchell Hashimoto
f133f39bcc
Add comment to explain unclear code
2012-06-01 16:08:41 +02:00
Mitchell Hashimoto
fd9ad904fe
Easy commands now take a target VM name
...
It is assumed to be the first arg, as long as the first arg doesn't
begin as a flag "-foo"
2012-06-01 15:59:05 +02:00
Mitchell Hashimoto
83917a6bb0
Added `arg` and `arg_extra` API to easy commands
...
Easy commands can now easily get arguments from the command line.
Using `arg`, you can get named arguments on the command line, such as
"--foo" or "-f"
With `arg_extra`, you can get any remaining arguments after a "--"
on the command line, which is a common pattern used to grab longer
parameters.
2012-06-01 15:57:55 +02:00
Mitchell Hashimoto
100e1f7eb0
Primary VMs are respected again.
...
At some point in the past, primary VMs were no longer respected for
commands. This fixes taht.
2012-06-01 15:10:26 +02:00
Mitchell Hashimoto
9cb53860c2
New easy command APIs: argv, info, error, success
...
Some new APIs were added to the easy command operations. `info`,
`error`, and `success` are simple ways to output messages to the UI
without resorting to "puts" in Ruby, since the Vagrant UI object is the
idiomatic way to do communication with the world.
Additionally, `argv` was added which gives commands access to the
command-line arguments that are remaining that does not include the
vagrant binary or subcommand.
Also, behavior was changed: Previously, easy commands would run for
every target VM. Now, it is only run once with the primary VM. In the
next commit, I plan on adding a new flag that signifies an easy command
is meant to work with a named VM.
2012-06-01 14:55:08 +02:00
Mitchell Hashimoto
1ef679f683
SSH log level fatal. Thanks @petejkim
...
This change makes it so that SSH errors are shown, whereas QUIET hid
those as well. The main change to QUIET was to get rid of warnings,
not errors, so this fixes that.
2012-05-31 23:42:28 +02:00
Zsolt Takács
cac79cf409
preserve attributes on packaging when using ruby 1.9.2
...
see http://bugs.ruby-lang.org/issues/4507
2012-05-26 16:51:18 -07:00
Matt Callaway
117a9c146a
On Linux where IPv6 is disabled, where /etc/hosts has '::1 localhost', a socket connect to localhost 2222 results in ENETUNREACH which needs to be caught as per this patch.
2012-05-25 15:45:18 -05:00
Mitchell Hashimoto
d5a7ca6159
config.ssh.shell now contains full shell command
...
Before, it only contained the shell executable and "-l" was magically
appended to it. However, every shell doesn't support "-l" and maybe "-l"
isn't even the behavior that users want!
Therefore, the config.ssh.shell command must now contain the full
command to execute.
2012-05-23 15:30:16 -07:00
Mitchell Hashimoto
de78a3637a
Plugin activation
...
Vagrant is only guaranteeing that the plugin definition superclass (the
Vagrant.plugin("1") part) is backwards compatible. Anything else, such
as Vagrant::Command::Base and so on, will likely change in future
versions. Beacuse of this, plugins should only immediately expose their
definition.
In order to support loading the other classes, plugins should defer
loading to the "activation" phase of a plugin. This can be done using
the `activated` block:
class MyPlugin < Vagrant.plugin("1")
name "my plugin"
activated do
require "myplugin/my_command"
end
command("foo") { MyCommand }
end
Plugin activation is done at two specific times:
* Right when a Vagrant::Environment is created and the global plugins
(such as from ~.vagrantrc) are loaded.
* Right before loading configuration, but after the Vagrantfiles have
been evaluated. This allows plugins to be defined within these files
as well.
2012-05-21 22:23:50 -07:00
Mitchell Hashimoto
3204b3a580
Vagrant.configure and versioned configuration
...
Vagrant.configure is now how configuration is done in Vagrantfiles
(previously it was Vagrant::Config.run). This function takes a single
argument which is the version of configuration to use.
Various internals were updated for this new versioned configuration.
Note that multiple versions of configuration aren't yet used so aren't
fully supported by Vagrant, but the foundation is being set here.
2012-05-21 21:47:01 -07:00
Mitchell Hashimoto
95e554314e
Foundation for supporting multiple version types
...
I created VersionBase which is the abstract base class for any
configuration versions. Configuration versions are responsible for
knowing how to load configuration given a proc (from a
Vagrant.configure block), as well as merging configuration procs. In the
future, it will have to upgrade versions as well. This is not done yet.
The VERSIONS constant was added to Vagrant::Config which is a registry
to keep track of all the available configuration versions. The
VERSIONS_ORDER constant is an array of the ordering of these versions.
The ordering is important so that in the future Vagrant can attempt to
gracefully upgrade the configurations. It is also used to determine the
current configuration version (which is assumed to be the last version
in the order).
The loader was modified to use the current version and the VERSIONS
registry instead of hardcoding V1.
2012-05-20 17:47:24 -07:00
Mitchell Hashimoto
0f85cb7b74
Log the guest class chosen
2012-05-19 09:32:43 -07:00
Josh Mahowald
174df1edf0
Setting up hostname before setting up the network to minimize issues as described in http://serverfault.com/questions/38114/why-does-sudo-command-take-long-to-execute
2012-05-19 09:17:44 -07:00
Mitchell Hashimoto
73c8299ecd
Merge pull request #868 from justinlynn/add_dhcp_default_route_option
...
Issue #862 : Allow bridged networking without removing the interface's DHCP assigned default route
2012-05-06 14:46:58 -07:00
Mitchell Hashimoto
8c6f3edf2d
Single-VM mode still allows target name in vagrant commands
2012-05-06 14:33:47 -07:00
Mitchell Hashimoto
bc0643613a
Vagrant.require_plugin [GH-916]
2012-05-06 14:01:10 -07:00
Mitchell Hashimoto
d230f0a41c
Environment.rb doesn't need to load in "rubygems" anymore
2012-05-06 13:49:22 -07:00
Mitchell Hashimoto
de92f5217c
Use `load` for the Vagrantrc, make sure it is only loaded once
2012-05-06 10:09:33 -07:00
Mitchell Hashimoto
0d6248394c
Tests for the Easy command base
2012-05-06 10:01:50 -07:00
Mitchell Hashimoto
dc4f6e1939
Allow creating multiple easy commands
2012-05-06 09:54:23 -07:00
Ryan LeCompte
2355a4b9a6
fix support for multiple unique easy commands
2012-05-06 01:47:43 -07:00
Mitchell Hashimoto
b7854c1ef6
Easy hooks
2012-05-05 22:31:21 -07:00
Mitchell Hashimoto
31ac7271aa
Rename EasyCommand namespace to Easy
2012-05-05 22:16:13 -07:00
Mitchell Hashimoto
3d147f1d96
Raise exception if the insert_before middleware is not found
2012-05-05 22:10:26 -07:00
Mitchell Hashimoto
879f98b5d5
Action builder supports indexing middlewares by name
2012-05-05 22:01:53 -07:00
Mitchell Hashimoto
c2649074c3
Test command name validation and fix up some bugs
2012-05-05 20:11:26 -07:00
Mitchell Hashimoto
e4fa5bb489
Validate that commands only contain proper characters
2012-05-05 20:01:14 -07:00
Mitchell Hashimoto
64ece507ad
`download` operation
2012-05-05 19:52:10 -07:00
Mitchell Hashimoto
f8ab516082
`upload` operation for easy commands
2012-05-05 19:44:52 -07:00
Mitchell Hashimoto
1d7e02cd63
Build up some operations that can be run.
...
These are heavily inspired by Fabric! Thanks!
2012-05-05 19:28:50 -07:00
Mitchell Hashimoto
00aba5ac03
Plugin easy commands.
...
Easy commands are well... easy! They don't offer the full power of
creating a completely custom command class, but they let you do the
basics (what almost everyone needs) with minimal fuss. Example:
class MyPlugin < Vagrant.plugin("1")
name "my-plugin"
easy_command "foo" do |action|
puts "HELLO!"
end
end
NOTE: The "action" stuff isn't done yet, but will be soon!
2012-05-05 18:57:29 -07:00
Mitchell Hashimoto
8850c086b1
Plugins can now have action_hooks
2012-05-05 18:28:07 -07:00
Mitchell Hashimoto
462136cbf2
Use the .vagrantrc for plugins!
2012-05-05 13:08:07 -07:00
Mitchell Hashimoto
d9034da8a4
Remove gem-based plugin loading
2012-05-05 12:57:31 -07:00
Mitchell Hashimoto
3b7030ed2c
Merge pull request #905 from LarsFronius/master
...
Fix for issue #898 - interfaces assigned in wrong order under ruby1.8
2012-05-04 20:52:04 -07:00
Mitchell Hashimoto
359ea23069
Support multiple paths in VBOX_INSTALL_PATH [GH-885]
2012-05-04 20:48:52 -07:00
Mitchell Hashimoto
04df9bc80b
Merge pull request #877 from bitprophet/allow-agents-in-plain-mode
...
Don't use IdentitiesOnly under 'ssh -p'
2012-05-04 20:31:15 -07:00
Jorgen H. Fjeld
6f5a9d13f3
Detect and disable DNS settings that break on Ubuntu 12.04.
2012-05-01 22:24:07 -07:00
Sean Wolfe
e10e8aae86
After changing the file permissions, we need to reload the stat before comparing again. Otherwise we will always throw an exception even if we set the permissions successfully.
2012-05-01 13:26:12 -07:00
Lars Fronius
534faeae7c
Fixes a bug where interfaces are assigned in a wrong order when using ruby1.8, causing vm boot to stop as documented in issue #898
2012-04-26 21:11:16 +02:00
Mitchell Hashimoto
9956e6d012
Better directory structure for plugins
2012-04-20 16:53:01 -07:00
Mitchell Hashimoto
cae80a7716
Make Vagrant::Plugin a module
2012-04-19 21:42:35 -07:00
Mitchell Hashimoto
86a846e445
Remove old command directory
2012-04-19 21:33:26 -07:00
Mitchell Hashimoto
945f3bba67
Remove old commands
2012-04-19 21:29:25 -07:00
Mitchell Hashimoto
deb346d5a1
Remove guest subdirectory
2012-04-19 21:28:24 -07:00
Mitchell Hashimoto
3a79aa0beb
Remove hosts directory
2012-04-19 21:27:16 -07:00
Mitchell Hashimoto
9593ad3fdb
Get rid of provisioners directory
2012-04-19 20:30:14 -07:00
Mitchell Hashimoto
6161c04fcf
Fix some issues with commands not referencing proper classes
2012-04-19 14:02:03 -07:00
Mitchell Hashimoto
1489854d70
Move commands into plugins
2012-04-19 13:59:48 -07:00
Mitchell Hashimoto
661f20bb91
Move hosts to a plugin system
2012-04-18 22:20:45 -07:00
Mitchell Hashimoto
1cbac3167f
Move provisioners into plugins
2012-04-18 21:53:19 -07:00
Mitchell Hashimoto
0d7b9f84e2
Add logging to v1 plugin registration
2012-04-18 21:32:15 -07:00
Mitchell Hashimoto
1b2fa748f9
Move all guests to plugins, even the distros
2012-04-18 21:23:25 -07:00
Mitchell Hashimoto
7766eb6098
Major guests have been moved to plugins
2012-04-18 21:03:03 -07:00
Mitchell Hashimoto
dd459170dd
Start moving guest configuration out into plugins
2012-04-18 17:38:20 -07:00
Mitchell Hashimoto
a23fee4848
Remove old configuration classes
2012-04-18 17:16:03 -07:00
Mitchell Hashimoto
a62e859231
Get rid of the UNSET_VALUE stuff, save it for v2
2012-04-18 17:09:25 -07:00
Mitchell Hashimoto
b38fb5e974
Loader uses the new configuration classes
2012-04-18 17:03:34 -07:00
Mitchell Hashimoto
98d6bf958e
Move core config into a plugin
2012-04-17 22:12:27 -07:00
Mitchell Hashimoto
c0ee3b06ff
Config merging
2012-04-17 10:22:24 -07:00
Mitchell Hashimoto
92ee042fc2
V1 config loading using plugins as a source for config keys
2012-04-16 22:26:38 -07:00
Mitchell Hashimoto
b46daa82bc
Ability to define configuration classes on plugins
2012-04-15 16:04:54 -05:00
Mitchell Hashimoto
2eebc2cb68
Basic Plugin class
2012-04-15 15:34:44 -05:00
Mitchell Hashimoto
4034a2db21
`vagrant destroy` works in "guru meditation" state
2012-04-12 10:18:34 -07:00
Jeff Forcier
e35fac0986
Protip, don't apply changes from old released versions to master
2012-04-09 18:01:03 -07:00
Jeff Forcier
59852e79de
Don't use IdentitiesOnly under 'ssh -p'
2012-04-09 17:57:41 -07:00
Justin Lynn
a20ee32c9a
Need to correctly configure the template's options.
...
pull the config through the bridged interface configuration routine
template debugging
add another test line
set the setting in the correct areas, yay dynamic method calls
2012-04-05 10:58:58 -07:00
Justin Lynn
bf3d3b0245
add use_dhcp_assigned_default_route setting to allow for dhcp bridged interfaces which have a default route assigned by dhcp
2012-04-05 09:21:09 -07:00
Mitchell Hashimoto
00c4193b43
Merge pull request #856 from stevehodgkiss/fix_error_when_changing_users
...
Cleanup any tmp files set by vagrant to fix a permissions issue when switching users.
2012-04-03 21:56:16 -07:00
Mitchell Hashimoto
e98cedf0e1
LogLevel QUIET for SSH to suppress known hosts warning [GH-847]
2012-04-02 09:57:16 -07:00
Mitchell Hashimoto
285a07ebb3
Don't use unless
2012-04-02 09:55:39 -07:00
Steve Hodgkiss
3561c1c5ba
Guests should clean up after themselves
2012-04-02 17:33:54 +10:00
Steve Hodgkiss
092e8a95b3
Cleanup any tmp files set by vagrant to fix a permissions issue when switching users.
2012-04-02 14:56:43 +10:00