Commit Graph

2646 Commits

Author SHA1 Message Date
Mitchell Hashimoto f8b49afe8a Nice error message on plugin install conflict 2014-01-05 16:28:05 -08:00
Mitchell Hashimoto 73c71dbcc6 Work some things around so that Bundler is not setup with no plugins 2014-01-05 16:16:04 -08:00
Mitchell Hashimoto e1c9431085 commands/plugin: uninstall works again 2014-01-05 16:02:00 -08:00
Mitchell Hashimoto 8cfa24143d Put plugins in their own Gemfile group so we can load on their own 2014-01-05 15:57:10 -08:00
Mitchell Hashimoto 91751f6e41 load with bundler context 2014-01-05 15:26:44 -08:00
Mitchell Hashimoto 86610bf735 installing gems works 2014-01-05 14:54:50 -08:00
Mitchell Hashimoto 1eef75a715 commands/plugin: list uses PluginManager 2014-01-05 08:42:34 -08:00
Mitchell Hashimoto 8450f20e87 Move StateFile into Vagrant::Plugin core 2014-01-04 16:45:41 -08:00
Mitchell Hashimoto d98868d150 core: Vagrant.require_plugin is gone 2014-01-04 16:35:28 -08:00
Mitchell Hashimoto 8adef9c15f warn if running in a bundler env, don't load plugins 2014-01-04 16:29:22 -08:00
Mitchell Hashimoto f2c6175d16 Use bundler to load plugins 2014-01-04 16:15:12 -08:00
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