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
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
John Bellone
8909018af6
Add unit tests for Registry#keys.
2013-12-16 18:16:19 -05:00
Charlie Huggard
0e2b7a7c0b
Unit tests for ChangeHostName on Enterprise Linux
2013-12-16 01:57:11 -06: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
72398faeaf
core: put shell quoting into its own util class, it is useful
2013-12-13 21:17:15 -08:00
Paul Hinze
abe0731d2e
guests/{ubuntu,debian}: fix change_host_name for trailing dots [GH-2610]
...
When `/etc/hosts` contained a FQDN with a trailing dot, the `\b` in the
sed expression would not match, since dot is not considered to be a word
character.
Fix this by regexp-escaping the hostname search, and matching the end of
the line on optional space followed by additional characters.
Also add some tests that extract the regexp used by sed and verify that
it does what we want. These will hopefully serve us in the future if we
ever need to test additional edge cases.
2013-12-09 18:56:45 -06: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
2c65d247da
core: Allow options to be passed down into SF cleanup
2013-12-06 16:40:24 -08:00
Mitchell Hashimoto
47b99d9bb8
test/acceptance: don't have the context show up as a component
2013-12-05 21:44:19 -08:00
Mitchell Hashimoto
5a0fdec789
test/acceptance: set the VBOX_USER_HOME
2013-12-05 13:39:33 -08:00
Mitchell Hashimoto
dbfce21e05
Start acceptance test config stuff
2013-12-05 13:19:15 -08:00
Mitchell Hashimoto
944130b8c6
move test/acceptance to test/acceptance_old
2013-12-04 15:35:50 -08:00
Mitchell Hashimoto
d354cdda4a
core: request users upgrade plugins if they're old
2013-12-04 11:43:39 -08:00
Mitchell Hashimoto
236141ba90
commands/plugin: old state files default to 0 for vagrant version
2013-12-04 11:29:17 -08:00
Mitchell Hashimoto
39b2539ec7
commands/plugin: state file keeps track of the Vagrant version
2013-12-04 11:17:48 -08:00
Mitchell Hashimoto
b2844d420d
commands/plugin: tests for state file
2013-12-04 10:50:19 -08:00
Paul Hinze
ec97a45125
commands/ssh-config: fix for multiple private keys
...
since we merged multiple private keys, the :private_key_path item of
ssh_info now comes back as an array. the ssh-config command had not yet
been updated to handle this properly.
here we fix that oversight and add a few unit tests around the config
generation.
2013-12-04 09:33:27 -06:00
Mitchell Hashimoto
1a51f42ee7
core: update rspec, fix deprecations
2013-12-03 18:42:21 -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
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
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
aff26b832d
core: Retrofit some test for Method support on Action::Runner
2013-12-02 22:26:51 -02:00
Emiliano Ticci
578393ac8e
Add cleanup routine to synced folder plugin implementation
2013-12-02 11:19:09 +01:00
Paul Hinze
4daa21e0b1
guests/debian: remove empty test file added by mistake
2013-12-01 09:49:31 -05:00
Mitchell Hashimoto
7c25a23352
core: get tests passing cleanly on Ruby 2.0.0
2013-11-30 16:21:19 -08:00
Mitchell Hashimoto
3c06e9458c
Merge pull request #2556 from phinze/fix-shell-array-args-validation
...
provisioners/shell: fix validation for args [GH-1949]
2013-11-29 00:01:19 -08:00
Fabio Rehm
61733bbfbf
core: Fix broken SSHExec spec
2013-11-29 00:26:42 -02:00
Paul Hinze
fef60242b0
provisioners/shell: fix validation for args [GH-1949]
...
The logic change in 57d4775140
introduced
a bug where neither strings nor arrays provided as `args` for shell
provisioners would pass validation.
This fixes that problem along with a few extras:
- split out arg validation into a private method
- update comment describing valid args
- add a few unit tests around config validation
2013-11-28 19:54:10 -06:00
Mitchell Hashimoto
1e7084e1e1
core: fix tests
2013-11-26 19:13:21 -08:00
Mitchell Hashimoto
45e09eb677
core: allow multiple private keys [GH-907]
2013-11-25 15:45:39 -08:00
Mitchell Hashimoto
8d99382993
core: allow custom callables in hooks
2013-11-24 21:07:11 -08:00
Mitchell Hashimoto
f5cc112a4b
core: allow hooks to send arbitrary data
2013-11-24 21:01:41 -08:00
phinze
688bca14f5
refactoring ubuntu/debian change_host_name
...
there's been a lot of churn around this code, so i figure it was worth
trying to clean it up.
- the methods were doing a lot, so make them into template methods with
one helper per step
- spread out /etc/hosts regexp into a couple of helper variables for
clarity
- remove handling for broken hostname implementations (like basing all
of the checks on name.split('.')[0]), since it seems reasonable to
remove code dedicated only to handling broken boxes
- DRY up the shared code between debian/ubuntu implementations, which
clarifies the differences as well
- add unit tests around the behavior; this will help us in the future
to separate flaws in our understanding from flaws in implementation
- includes a new DummyCommunicator in tests which should be useful in
supporting additional unit testing of this kind
- manually tested this on squeeze, wheezy, precise, quantal, raring,
and saucy successfully.
handles the issue in #2333
2013-11-24 11:46:12 -06:00
Mitchell Hashimoto
0506f47a4a
core: get tests passing again
2013-11-23 16:43:15 -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
1b8c3b62af
core: scope hash override synced folder settings
2013-11-23 13:38:15 -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
125584aaf4
core: SyncedFolders middleware passes inoptions
2013-11-22 17:13:14 -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
Fabio Rehm
a0c1cc0231
core: Add spec for running environment hooks with a custom Action::Runner
2013-10-29 13:28:04 -02: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
00f61e67e1
core: errors can use error_message to specify string error message
2013-10-01 21:45:05 -07:00
Paul Hinze
abe7830421
core: fix NoMethodError in Vagrant.has_plugin? [GH-1736]
2013-09-11 15:13:21 -05:00
Mitchell Hashimoto
77036c7eea
fix failing test
2013-09-06 00:13:32 -07:00
Mitchell Hashimoto
95aba27e59
core: VAGRANT_VAGRANTFILE affects only project vagrantfile [GH-2130]
2013-09-05 14:46:26 -07:00
Mitchell Hashimoto
283d2ae74b
fix broken test
2013-08-29 16:42:59 -07:00
Fabio Rehm
bf4131af17
Clean up downloader test a bit
2013-07-28 20:23:27 -03: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
Mitchell Hashimoto
7ef6c5d9d7
Unused config objects are finalized properly [GH-1877]
2013-07-23 17:36:48 -05:00
Mitchell Hashimoto
80f06605fb
config.vm.guest now forces guest setting again [GH-1800]
2013-06-09 13:17:23 -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
43c14dfb26
Fix the tests
2013-04-16 13:32:37 -07:00
Mitchell Hashimoto
d03938e3c1
config.ssh properly overrides provder-detected [GH-1479]
2013-04-08 20:50:15 -07:00
Mitchell Hashimoto
f203c29fbb
Builders are merged when using hooks. [GH-1555]
2013-04-07 14:17:40 -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
fbdd46a130
On Windows, prefer USERPROFILE for home directory path
2013-04-06 15:53:58 -07:00
Jeff LaBarge
8746d0193d
Remove redundant test that breaks if `VAGRANT_DEFAULT_PROVIDER` is set.
2013-04-04 13:47:37 -07:00
Mitchell Hashimoto
d490c840df
Tests passing for halt capability change
2013-04-03 23:48:44 -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
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
Mitchell Hashimoto
932f15665b
Fix downloader tests
2013-04-03 12:04:58 -07:00
Mitchell Hashimoto
a9f269af24
Tests for GH-1478
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
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
2e50a238fc
Provider plugins can provide arbitrary options
2013-04-03 08:31:42 -07:00
Mitchell Hashimoto
25f66cee51
Remove downloaders, no longer needed
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
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
9464796c6d
Human friendly error when metadata.json is missing from a box
2013-03-15 11:12:50 -07:00
Mitchell Hashimoto
43f3764e5b
Properly quote regular expression inputs to StringBlockEditor
2013-03-14 12:41:03 -07:00
Mitchell Hashimoto
dea881cad2
vagrant box add --force works again [GH-1413]
2013-03-13 21:20:25 -07: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
2081fe5650
Tests passing for V1 config changes
2013-02-28 00:11:06 -08:00
Mitchell Hashimoto
7c5d118e0d
Use Dir.mktmpdir for tests more
2013-02-26 11:32:44 -08:00
Mitchell Hashimoto
c9d9bf679b
Get rid of a pending test
2013-02-26 11:30:51 -08:00
Mitchell Hashimoto
803269f729
Test to make sure hooks return the action runner result
2013-02-24 18:00:01 -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
1b6538354d
Be smarter about determining if plugin load failed
2013-02-22 15:10:34 -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
be01d57034
action_hooks can hook into specific actions
2013-02-22 12:12:55 -08:00