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
4f17a70c4e
commands/plugin: ignore default gems when pruning
...
For modern RubyGems compatibility
2013-12-03 23:48:06 -08:00
Mitchell Hashimoto
72edddbb09
core: do proper type conversions for box checksum types
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
cd3e19306c
commands/box/add: custom CA cert [GH-2337]
2013-11-26 19:32:56 -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
48973a72d5
commands/box/list: clean up
2013-11-25 13:26:46 -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
7ba9d2d0a0
commands/init: add --output flag [GH-1364]
2013-11-24 11:53:15 -08:00
Mitchell Hashimoto
5cbc54d570
commands/box: list has machine-readable output
2013-11-24 11:42:24 -08:00
Mitchell Hashimoto
15d639c8dc
website: document machine-readable output
2013-11-24 11:37:57 -08:00
Mitchell Hashimoto
42a71a953d
commands/status: add machine-readable output
2013-11-24 11:11:38 -08:00
Mitchell Hashimoto
f66d08d73c
commands/plugin: style nitpick
2013-11-23 16:45:45 -08:00
Mitchell Hashimoto
63005fc1c6
Merge pull request #2420 from tmacedo/rubygems_2_compatibility
...
core: compatibility with rubygems 2.x
2013-11-23 16:44:10 -08:00
Mitchell Hashimoto
46d9ded812
commands/box/add: add --clean flag to ignore continuation
2013-11-23 15:55:52 -08:00
Mitchell Hashimoto
97389d4255
core: output synopsis with command [GH-2249]
2013-11-23 14:00:42 -08:00
Fabio Rehm
48875124b9
commands/box: Read box URL and downloaded date from JSON
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
18cf66e83a
commands/box: List base box downloaded URL and datetime when `-i` gets provided to `box list`
2013-10-29 13:09:24 -02:00
Fabio Rehm
cbc7e7eedb
commands/box: Preparing to display additional box information on `box list`
2013-10-29 13:09:23 -02:00
Fabio Rehm
031119a858
commands/box: Extract a base class for dealing with StateFile instantiation
2013-10-29 13:09:23 -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
17fd5f9e4e
commands/box: Introduce a StateFile for keeping track of downloaded boxes
2013-10-29 13:09:23 -02:00
Tiago Macedo
2d66d94ebe
compatibility with rubygems 2.x
2013-10-25 11:27:17 +02:00
canausa
10883b3be6
Add --no-parallel to provision
2013-10-21 10:19:42 -04: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
c95a68ed5d
commands/reload: dont' provision by default
2013-09-02 09:13:22 -07:00
Mitchell Hashimoto
e2ddab532d
core: Don't provision after first `up` by default [GH-1776]
2013-09-02 09:03:46 -07:00
Mitchell Hashimoto
c4e79db552
commmands/box/remove: fix exception when no provider specified [GH-2100]
2013-08-30 09:43:35 -07:00
Mitchell Hashimoto
c2012ff944
commands/up: flag --no-destroy-on-error [GH-2011]
2013-08-29 12:13:02 -07:00
Mitchell Hashimoto
602a5ce0b4
commands/plugin/install: nitpick on style
...
/cc @ipwnstuff - Just nitpicking and CCing you so you can see. I dislike
the "if (val = something)" syntax so I axed that. Then I simplified
logic a bit.
2013-08-09 11:26:39 -07:00
Mitchell Hashimoto
8e3422403f
Merge pull request #1986 from ipwnstuff/feature/plugin-post-install-message
...
commands/plugin/install: Display a plugin's post install message if available
2013-08-09 11:24:19 -07:00
Marc-André Courtois
ed03add533
Start padding with 25 characters to keep original behavior
2013-08-01 13:23:18 -04:00
Marc-André Courtois
97aed37aea
Use longest machine name to pad in status cmd
2013-08-01 13:17:55 -04:00
Mitchell Hashimoto
e1c0c48ffa
Show the correct installed plugin [GH-1834]
2013-07-28 21:38:48 -07:00
Erran Carey
2033eba2d4
Display post install messages if a plugin has any
2013-07-26 01:50:35 -05: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
80666c03d6
vagrant help <foo> works [GH-1578]
2013-07-18 12:11:36 -04:00
Mitchell Hashimoto
3840e07adb
vagrant box remove doesn't need provider if box only has one [GH-1032]
2013-07-10 19:57:53 -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
Simon Thulbourn
ea9fde9433
Merge branch 'master' into client-certs
2013-07-02 09:29:39 +01:00
Marcel Hecko
4b9c21b5a6
[status command print formatting]
...
the result line needs space between the name of the VM and short_description - otherwise the formatting of the output breaks when the name of the VM is too long - the name of the VM gets smashed together with the short_description rendering
2013-06-05 14:10:24 +02:00
Simon Thulbourn
e216b9a1d2
adds param for client certs
...
adds an option to the command parser for client certicates
2013-05-21 11:41:15 +01: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
45267c85fe
Fix vagrant package --base [GH-1615]
2013-04-17 08:22:26 -07:00
Mitchell Hashimoto
0f089c5671
`--[no-]parallel` for vagrant up
2013-04-16 15:22:14 -07:00
Mitchell Hashimoto
c1acdc2409
Get rid of ruby warning from shadowing in SSH command
2013-04-07 22:10:50 -07:00
Mitchell Hashimoto
8b2bf72e8a
Fix parsing SSH extra args in multi-machine envs [GH-1545]
2013-04-07 22:07:55 -07:00
Mitchell Hashimoto
5e2549fe8b
Add "--insecure" flag for downloader
2013-04-03 11:57:40 -07:00
Mitchell Hashimoto
df93a221e1
Up command now uses Environment#batch
2013-04-03 08:31:42 -07:00
Mitchell Hashimoto
54f7930b84
Run "up" in a batch action so it parallelizes
2013-04-03 08:31:42 -07:00
Mitchell Hashimoto
fcd93bb133
Logging on gem sources
2013-03-20 22:33:50 -07:00
Mitchell Hashimoto
408eee746d
Stylistic changes for GH-1461
2013-03-20 22:30:31 -07:00
Hugues Malphettes
135adc8904
Support a few more gem parameters - take 2
2013-03-20 14:02:32 +08:00
Mitchell Hashimoto
dea881cad2
vagrant box add --force works again [GH-1413]
2013-03-13 21:20:25 -07:00
Mitchell Hashimoto
c74251a1d9
FIx vagrant package --base to work again, wrong Machine args [GH-1410]
2013-03-11 15:46:52 -07:00
Mitchell Hashimoto
bfc8c62ffe
vagrant plugin list works properly with isolated gem env
2013-03-01 12:14:12 -08:00
Mitchell Hashimoto
a2cd7936ea
`vagrant package` works again
2013-02-21 11:14:39 -08:00
Mitchell Hashimoto
7bc72028bd
Use custom Gem.configuration to avoid loading gemrc files
2013-02-07 16:32:11 -08:00
Mitchell Hashimoto
1b3250e3b6
`vagrant plugin i nstall` shows version it installed
2013-02-06 17:08:48 -08:00
Mitchell Hashimoto
bc7237130d
Use the HashiCorp gem source for plugin installs
2013-02-04 11:18:57 -08:00
Mitchell Hashimoto
c6a4bd529d
Missing interpolated variable for output message on plugin command
2013-02-04 10:43:35 -08:00
Mitchell Hashimoto
85e458b9a8
Forgot an autoload for plugins
2013-02-04 10:41:35 -08:00
Mitchell Hashimoto
55c905b43b
`vagrant plugin license` command.
2013-02-04 10:32:04 -08:00
Mitchell Hashimoto
036fa3e96a
Set more force flags when uninstalling gems to remove monkeypatch
2013-02-03 17:33:51 -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
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
368ca71d72
Remove the `gem` command.
2013-02-03 13:21:39 -08:00
Mitchell Hashimoto
455745277c
List plugins should have output when no plugins
2013-02-03 13:13:22 -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
9690754983
Plugin listing is a bit more sophisticated, shows version
2013-02-03 12:59:32 -08:00
Mitchell Hashimoto
bc54875a25
Move the plugins.json to the home directory
2013-02-03 12:49:21 -08:00
Mitchell Hashimoto
b6821a4fc7
Fix some include requirements for pruning
2013-02-03 10:49:26 -08:00
Mitchell Hashimoto
0d7322578b
`vagrant plugin uninstall`
2013-02-03 10:47:32 -08:00
Mitchell Hashimoto
e055bc893b
Sort the state file as well for sanity
2013-02-03 10:35:59 -08:00
Mitchell Hashimoto
76457eff16
Make sure the state file only contains unique fields
2013-02-03 10:34:43 -08:00
Mitchell Hashimoto
491356c938
Better logging for prune
2013-02-03 10:33:39 -08:00
Mitchell Hashimoto
60d21e35c9
Be silent when uninstalling gems
2013-02-03 10:32:31 -08:00
Mitchell Hashimoto
572142df7e
Perform gem uninstallation for prune
2013-02-03 10:30:52 -08:00
Mitchell Hashimoto
472d4182c1
Basic logic behind prune action is good.
2013-02-03 10:15:46 -08:00
Mitchell Hashimoto
f257d1211f
List actually compares state with gems
2013-02-02 23:59:48 -08:00
Mitchell Hashimoto
8ac7b62075
A really basic "list" command
2013-02-02 23:52:34 -08:00
Mitchell Hashimoto
53667d44db
Have a base class to invoke actions on the plugins
2013-02-02 23:38:44 -08:00
Mitchell Hashimoto
150cae86b7
Only show error if exit code != 0 of gem
2013-02-02 23:33: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
db2e27bab6
Initial plugin command plugin
2013-02-02 17:12:46 -08:00
Mitchell Hashimoto
b3571eb5bb
Add message about removing box so something is clearly happening
2013-02-02 16:43:16 -08:00
Mitchell Hashimoto
2dc14af825
`vagrant up` says what provider it will use
2013-02-01 14:03:59 -08:00
Mitchell Hashimoto
26adfb0de6
Put the provider name in the status output
2013-02-01 13:54:52 -08:00
Mitchell Hashimoto
d19194d95b
`vagrant provision` accepts `--provision-with` [GH-1167]
2013-01-30 22:54:28 -08:00
Mitchell Hashimoto
25713e4568
Show proper message when viewing status for multi-machine
2013-01-30 20:22:29 -08:00
Mitchell Hashimoto
72c10b53e7
Convert provision types to symbols so they work
2013-01-30 19:51:04 -08:00
Mitchell Hashimoto
b91d7203eb
Pass the start options into the actions so that they have effect
2013-01-30 19:49:18 -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
aa980f2234
Forced halts work
2013-01-29 10:55:40 -08:00
Mitchell Hashimoto
f7b39476a0
vagrant destroy --force works [GH-1340]
2013-01-29 10:33:40 -08:00
Mitchell Hashimoto
2d2f9577af
Fix repackage command to actually work properly
2013-01-28 13:06:18 -08:00
Mitchell Hashimoto
8c4a7350fe
vagrant status uses new MachineState results
2013-01-21 11:35:46 -06:00
Mitchell Hashimoto
cfe55eb57f
Whitespace weirdness in the `status` command file
2013-01-21 10:47:29 -06:00
Mitchell Hashimoto
10a051a64b
box add works even if no provider is set
2013-01-16 22:52:44 -08:00
Mitchell Hashimoto
124a2ee5d3
Add the --provider optional flag to `box add`
2013-01-11 21:24:57 -08:00
Mitchell Hashimoto
2cfc5986d2
Wording changes in the status command. VM => machine
2012-12-24 10:00:28 -08:00
Mitchell Hashimoto
8fe0f86dbd
The --provider flag for `up` now actually does something.
2012-12-23 21:23:08 -08:00
Paul McKellar
2b0c4e6385
Change description of plugins to avoid self referencial definitions. e.g. 'destroy' will destroy your VM
2012-11-19 13:10:04 -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
e8370f0098
Convert comands to V2 plugins.
2012-11-06 21:09:29 -08:00
Mitchell Hashimoto
391dc39267
Merge branch 'machine-abstraction'
...
This branch brings in the "machine abstraction" code. This is a major
milestone in the development of Vagrant as it abstracts all of the
VirtualBox-specific code out into a plugin. There is zero VirtualBox
specific code in the core ("lib/") directory at this point. Read on for
important points.
== Gotchas
White it is technically possible now to write plugins for other
providers, there is still major work to be done to make this feasible.
The plugin interface itself is pretty much done, but there are some
issues:
* ":virtualbox" is the hardcoded provider to be used at the moment.
* There is no way to configure a provider. For example,
`config.vm.customize` would never work for anything other than
VirtualBox, so there needs to be a way to have provider-specific
configuration. This will come soon.
* Shared folders and networking need to be rearchitected to be friendly
for multiple providers, since it is unrealistic that a provider such as
EC2 could provide the same level of networking, for example.
* There is no way easy way (like `vagrant package --base`) to create
boxes for providers other than VirtualBox. This will be addressed in a
whole new feature of Vagrant probably in a future release after
provider stuff has shipped.
== Writing a Provider
To write a provider, you create a Vagrant plugin that defines a
"provider". See the "plugins/providers/virtualbox/plugin.rb" for more
details. Providers themselves have an exremely simple API. The burden
for writing providers mostly rests on the fact that you must define
complex middleware sequences.
Lots more work to come in the future, but this is a BIG MILESTONE!
2012-08-19 19:27:09 -07: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
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
85a4fb82a8
`vagrant package` a single VM works!
2012-08-15 21:04:37 -07:00
Mitchell Hashimoto
b659191a02
`vagrant up`!
2012-08-14 22:38:41 -07:00
Mitchell Hashimoto
aaeb060f33
`vagrant provision`
2012-08-14 21:21:31 -07:00
Mitchell Hashimoto
7aa083d259
`vagrant reload` now works with the new machine abstraction
2012-08-14 21:12: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
db11c16b79
ssh_config works with new machine abstraction
2012-08-13 19:48:26 -07:00
Mitchell Hashimoto
83b908f3d8
`vagrant suspend` works with new machine abstraction
2012-08-13 19:30:41 -07:00
Mitchell Hashimoto
7efee573b8
`vagrant ssh -c` now exits with the proper exit code
2012-08-11 20:35:34 -07:00
Mitchell Hashimoto
5e70ad0ec2
`vagrant ssh -c` now uses a middleware sequence
2012-08-10 00:57:23 -07:00
Mitchell Hashimoto
f1c1dfad2f
Some SSH command cleanup
2012-08-07 11:31:55 -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
002a83d7f7
Update SSH config help to properly reflect "--host" usage.
2012-07-30 11:42:29 -07:00
Mitchell Hashimoto
31a3a3f2e2
Start moving the halt commands over to the new provider interface
2012-07-28 10:43:16 -07:00
Mitchell Hashimoto
118377e6f0
Destroy sequence asks the user for confirmation.
2012-07-27 19:29:40 -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
c634cbedcc
Handle interrupts more gracefully on the warning message
2012-07-11 18:47:41 -07:00
Mitchell Hashimoto
f20666e230
Automatically upgrade the boxes all over.
2012-07-11 18:36:23 -07:00
Mitchell Hashimoto
23dfc45df2
`box repackage` now uses new Box API
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
5b18a6525d
`vagrant box remove` uses new API
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
6386ec2b79
`vagrant box list` uses the new collection stuff
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
2995b6439d
Interrupt when asking to destroy a VM should exit. [GH-1017]
2012-07-11 18:33:28 -07:00
Mitchell Hashimoto
b23dda54b8
Move command base class to a plugin component
2012-06-26 16:18:02 -07:00
Mitchell Hashimoto
a1b37980e3
Defer loading for commands to last possible moment
2012-05-23 16:18:29 -07:00
Mitchell Hashimoto
8846a19c70
Convert all command plugins to use the new `activated` block
2012-05-21 22:43:13 -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
582f214024
Fix some basic mistakes with commands
2012-04-21 17:32:13 -07:00
Mitchell Hashimoto
9956e6d012
Better directory structure for plugins
2012-04-20 16:53:01 -07:00