Commit Graph

148 Commits

Author SHA1 Message Date
Zachary Flower 968fbb2399 Update `init` command unit tests to reflect new --template option 2017-11-17 12:02:23 -07:00
Justin Campbell f1863a8243
Merge pull request #9145 from hashicorp/login-middleware-auth-hosts
Add app.vagrantup.com to allowed auth hosts
2017-11-15 14:17:55 -05:00
Brian Cain 401f1d521e
Merge pull request #9131 from bpietraga/fix-outputh-pathname-folder-creation
Fix --output path with specified folder
2017-11-15 09:55:32 -08:00
Justin Campbell 40d8dc4582 Add app.vagrantup.com to allowed auth hosts
This should allow users setting VAGRANT_SERVER_URL to app.vagrantup.com to authenticate to private boxes.
2017-11-07 10:35:16 -05:00
Bernard Pietraga b026be7cb3 Fix --output path with specified folder 2017-11-04 12:00:55 +01:00
Brian Cain 8be2ae8e6a Add unit test for destroy command 2017-11-01 15:30:59 -07:00
Justin Campbell 3ddc98c2e4 command/login: Support 2FA login on Vagrant Cloud 2017-08-30 10:39:58 -04:00
Brian Cain b45ee4f455 (#6656) Format windows paths for ssh_config command
Prior to this commit, if the ssh-config command was invoked within
cygwin or msys2, it would show a regular windows style path for private
keys rather than a path that could be used within msys2 or cygwin. This
commit updates that behavior by converting all of the private key paths
to the proper msys2 or cygwin path if the platform is windows and the
command was invoked from one of those two shells.
2017-08-25 13:17:19 -07:00
Brian Cain d9e088ba5d (#8479) Disable install providers when using global id on vagrant up
Prior to this commit, when using a global id to bring up a vagrant vm,
vagrant would fail during the "install provider" step due to the fact
that the global vagrant machine was not configured for the local vagrant
environment. Since this global vm exists elsewhere, we disable the
install provider step so that vagrant can just bring up the global
vagrant machine.
2017-08-22 10:08:05 -07:00
Brian Cain 4bd95cbfe2 (#8864) Improve `vagrant validate` command
Prior to this commit, the `vagrant validate` command would only validate
the first machine in a vagrant file. This commit improves that by
validating all known machines in the environment. If one is not found,
it will properly throw an exception instead of a stacktrace.
2017-08-15 13:53:45 -07:00
Brian Cain 335aa35ff4 Merge pull request #8871 from briancain/8719/master/add-force-flag-for-update
Add force flag for box upgrade command
2017-08-14 08:49:46 -07:00
Justin Campbell 92578aed4b command/login: Add description to created token
This adds a prompt for a token description, which is now supported in
Vagrant Cloud. Pressing enter on the prompt uses the default description
of `"Vagrant login"`.

    $ vagrant login
    In a moment we will ask for your username and password to HashiCorp's
    Vagrant Cloud. After authenticating, we will store an access token locally on
    disk. Your login details will be transmitted over a secure connection, and
    are never stored on disk locally.

    If you do not have an Vagrant Cloud account, sign up at
    https://www.vagrantcloud.com

    Vagrant Cloud Username: justincampbell
    Password (will be hidden):
    Token description (Defaults to "Vagrant login"):
    You are now logged in.
    $

Which created a token with the default description of "Vagrant login":

![](http://c.justincampbell.me/2V0p0T0U0d0O/Screen%20Shot%202017-08-10%20at%205.08.21%20PM.png)

Entering a description:

    Token description (Defaults to "Vagrant login"): Justin's MacBook Pro

![](http://c.justincampbell.me/2m1N0d1M3k3P/Screen%20Shot%202017-08-10%20at%205.09.39%20PM.png)
2017-08-10 17:12:38 -04:00
Brian Cain 324a08bd75 (#8719) Add force flag for box upgrade command
Prior to this commit, if a state was reached where the action_box_add
command needed a force flag, it would fail requesting the user to
provide that flag to override adding a new box. However that flag did
not exist on the box update command, and could not be passed onto the
action_box_add action. This commit updates that to include a force flag,
and if used, pass that value onto the action_box_add action.
2017-08-09 16:21:13 -07:00
Brian Cain 8b1043c199 Remove stub methods and replace with allows for rpsec 3 2017-08-04 15:02:59 -07:00
Chris Roberts 1a62743bc5 Update rspec to recent version and fix deprecations 2017-08-03 17:54:07 -07:00
Chris Roberts 5f955c3d38 Convert atlas references to vagrant cloud 2017-06-23 10:01:51 -07:00
Brian Cain 87b7514603 (#7188) Clean up vagrant snapshot restore/delete error messages
This commit adds some better handling around the snapshot restore and
delete commands for the virtualbox provider. If a user attempts to restore from
a vm that does not exist, instead of exiting 0 it will raise an
exception saying the virtual machine has not been created yet.
Addtionally, if a user attempts to restore from a snapshot id that does
not exist, instead of printing a complicated exception from the
virtualbox cli tool, it prints a more useful error message telling the
user that the snapshot does not exist.
2017-06-07 09:12:20 -07:00
Brian Cain b349d664e4 Include snapshot list unit test
This commit introduces a new set of unit tests for the snapshot list
command.
2017-05-30 15:19:58 -07:00
Brian Cain eadb0ac831 Raise exception if provider doesn't have snapshot capability
Prior to this commit, if a user attempted to use the `vagrant snapshot
save` or `vagrant snapshot list` commands on a vm whose provider did not
support snapshots, it would simply print a warning. This commit changes
that behavior by instead raising an error.
2017-05-26 15:22:25 -07:00
Brian Cain 6ddba4f7b3 (#7810) Enforce unique snapshot names
Prior to this commit, the vagrant snapshot plugin would save snapshots
with existing names which lead to duplicate snapshot names being saved.
This commit fixes that by checking to see if the given snapshot name
already exists and if so, fails telling the user the given snapshot name
already exists. If a user passes a --force flag, vagrant will first
delete the existing snapshot, and take a new one with the given name.
2017-05-25 16:28:17 -07:00
Chris Roberts 256ce3b0d5 Merge pull request #8264 from hasyimibhar/command-validate
Add validate command
2017-03-23 09:52:12 -07:00
Chris Roberts e7abd1114b Merge pull request #8393 from chrisroberts/fix/default-provider-env-var
Prevent other provider install attempts when explicit provider given
2017-03-23 09:35:59 -07:00
Chris Roberts 72d0eb497d Isolate push deprecation to atlas strategy only 2017-03-21 15:08:17 -07:00
Chris Roberts 7c4252e24a Prevent other provider install attempts when explicit provider given 2017-03-21 10:58:06 -07:00
Chris Roberts 60cd9057a7 Add command deprecation module to push 2017-02-24 06:47:44 -08:00
Chris Roberts 9394679cb7 Add coverage on box version in minimal init 2017-02-22 12:31:24 -08:00
Hasyimi Bahrudin 3d089a62d1 Add unit test for validate command 2017-02-07 14:59:20 +08:00
Chris Roberts cf93efca2d Update tests for new information and cleaning method 2016-11-16 13:27:34 -08:00
Chris Roberts 2d6071a55b Merge pull request #7793 from chrisroberts/enhancement/bundler-less
[core] Remove bundler usage for plugin management
2016-11-09 16:17:47 -08:00
Björn Brala cdc5018b59 Add tests for prune command 2016-11-09 09:24:41 +01:00
Chris Roberts 36d21f3c3f Add testing for plugin expunge command 2016-11-07 19:26:33 -08:00
Chris Roberts f577ca3d23 commands/package: provide machine data directory for base box 2016-08-17 06:49:12 -07:00
Zack Train cb70749bd8 redux of pr 7398 for ssh-agent key fix 2016-08-11 11:48:10 -07:00
Seth Vargo bba1cbc72f
Add --box-version to `vagrant init`
This also adds a test suite for that particular command, updates the
documentation, and adds some examples.

Fixes GH-5004
2016-05-30 15:33:58 -04:00
Seth Vargo fb60d34236
Add unique names to all tmpdir and tempfile calls in tests + cleanup
This commit attempts to uniquely identify the temporary files and
directories that are created during test runs. Where it was a quick
fix, this commit also removes the temporary files and directories.

There are still a ton of temporary files due to calls to
.isolated_environment in the tests without an easy API an easy way
to provide a closer to that function.
2016-05-28 23:22:34 -04:00
Seth Vargo 2d0943b0ad Print a warning when token and envvar are set
Fixes GH-7206
2016-04-08 10:16:10 -04:00
Seth Vargo 3f6ac05d7c Revert "Escape identify file path" 2016-02-02 09:38:53 -05:00
Seth Vargo 3502042d96 Lol whitespace [ci skip] 2015-11-24 16:36:36 -05:00
Seth Vargo 050f8d4d71 Allow specifying the guest port search 2015-11-24 16:33:09 -05:00
Seth Vargo beb84d3212 Move to I18n 2015-11-24 16:33:09 -05:00
Seth Vargo 063f60e593 Add `vagrant port` command 2015-11-24 16:33:08 -05:00
Seth Vargo bd48d24825 Respect proxy envvars for login command 2015-11-23 20:19:45 -05:00
Seth Vargo 8f420837a4 Escape identify file path 2015-11-23 20:00:12 -05:00
Mitchell Hashimoto 1ccd91aada Merge pull request #4473 from rtkrruvinskiy/https_metadata
Add HTTPS download options to `box update` and `box outdated`
2015-11-19 16:16:48 -08:00
Seth Vargo ff95fc5c1e Only append access_token the first time
This fixes GH-6395 by only appending the access_token once. It also fixes a
bug that was never reported. If a user supplied an access_token for a box URL,
Vagrant would silently overwrite it.

After this commit, Vagrant only appends an access_token to the URL if no
value exists at the key.
2015-11-18 10:44:35 -08:00
Mitchell Hashimoto 72e13ee9ef test: add tests for provider command 2015-11-04 14:26:22 -08:00
Mitchell Hashimoto ec0326f1c8 Merge pull request #6377 from mitchellh/f-cap-command
"cap" command
2015-10-08 10:52:14 -04:00
Mitchell Hashimoto 99d29f17fa commands/cap 2015-10-08 10:35:36 -04:00
Mitchell Hashimoto 31ae00cfc3 test: more tests for snapshots 2015-10-08 09:10:55 -04:00
Seth Vargo 114858c7d2 Verify the token is valid when saving 2015-01-09 13:24:53 -05:00
Seth Vargo 07bb6e549e Add tests for the login command 2015-01-08 17:16:30 -05:00
Seth Vargo 39233e802f Validate pushes in the global config 2015-01-07 15:51:20 -05:00
Seth Vargo c4eb0261bb Add tests for validating push configuration 2015-01-07 13:20:53 -05:00
Mitchell Hashimoto 5903bfb3c6 commands/push: validate configuration
/cc @sethvargo - Some weirdness here but overall should work fine. I'm
not sure if there was a GH issue this should be attached to or close. To
explain:

We just use the first machine with the default provider. A
Vagrant::Environment guarantees there is at least one machine, so
`env.machine_names.first` will always work. And we can just use the
default provider because we don't really care. Finally, it can be any
old machine we pass in because we just want the "global" config to
validate and there is no way to say "don't validate machine-specific
configs", so we might as well just pick the first machine to validate.
2015-01-04 15:43:30 -08:00
Seth Vargo 288b6c11ff stub_env is a real helper now :) 2014-12-15 01:29:58 -05:00
Seth Vargo f06703cdb1 Stub ATLAS_TOKEN in tests
Without this stub, the tests will fail if ATLAS_TOKEN is set locally 
when running the tests.
2014-12-14 23:28:14 -05:00
Mitchell Hashimoto fdd7bc3ffd commands/login: append access token to vagrantcloud => atlas URLs 2014-12-12 14:53:05 -08:00
Seth Vargo 7d6a6cd263 Read the ATLAS_TOKEN in vagrant-login 2014-12-10 15:08:43 -08:00
Seth Vargo 9ec16774ac Fix failing specs 2014-12-09 00:08:23 -08:00
Seth Vargo b973186cb5 Add vagrant-login to core ;) 2014-12-08 18:26:36 -08:00
Seth Vargo 8df0b1848c Just return a symbol 2014-12-08 11:35:15 -08:00
Seth Vargo 78a4fdd6cd Be consistent 2014-12-08 11:35:15 -08:00
Seth Vargo 70b61047c7 Do not support multiple strategies right now 2014-12-08 11:35:15 -08:00
Seth Vargo 6b48199346 Infer push name when only one strategy is defined, support multiple strategies 2014-12-08 11:35:15 -08:00
Mitchell Hashimoto 4a64da5663 Fix some issues around push, fix tests, add missing translations 2014-12-08 11:35:15 -08:00
Seth Vargo 03b8105571 Super primitive implementation of Environment#push 2014-12-08 11:35:10 -08:00
Seth Vargo b6c5ca6b7a Add Push command and tests 2014-12-08 11:35:10 -08:00
Ray Ruvinskiy 5a7e00c5b1 Add HTTPS download options to `box update` and `box outdated`
Vagrant::Box.load_metadata did not provide a way to specify the HTTPS
download options that could be specified when downloading boxes
(ca cert, ca path, client cert, insecure). As a result, while it was
possible to add a box whose metadata file needed to be downloaded with one of
those options specified, it was impossible to check for updates. The following
changes have been made to address the situation:

1. Create a DownloadMixins module to provide the --insecure, --cacert, --capth,
   and --cert command line options to all of `vagrant box add`,
   `vagrant box update`, and `vagrant box outdated`.
2. Extend `Vagrant::Box.has_update?` and `Vagrant::Box.load_metadata` to accept
   said download options.
3. Extend `box outdated` and `box update` commands to pass download options
   down.
4. Extend `Vagrant::Builtin::Action::BoxCheckOutdated` to honour download
   options.
5. Options specified on the command line take precedence over options specified
   in the machine configuration, if any.
6. Fix bug in `vagrant box add` where client cert was being passed down using
   the wrong environment key.
7. Unit test coverage in update_test and box_check_outdated_test.

Resolves #4420
2014-09-07 23:57:34 -04:00
Mitchell Hashimoto a6163d4062 Fix failing test 2014-08-29 11:26:09 -07:00
Kalman Hazins bb052366f7 Change symbols inside hashes to 1.9 JSON-like syntax 2014-05-22 12:35:12 -04:00
Mitchell Hashimoto 5da77dee5c commands/box/remove: add --force flag 2014-04-23 06:16:51 -07:00
Mitchell Hashimoto 2b07dec059 core: Use the MachineIndex#vagrant_env method 2014-04-21 13:54:31 -07:00
Mitchell Hashimoto 09ff31e3a3 commands/global-status: add --prune flag 2014-04-21 13:54:29 -07:00
Mitchell Hashimoto 6bf1f51e5b core: add global-status tests 2014-04-21 13:54:26 -07:00
Mitchell Hashimoto e52556b5f5 tests passing 2014-04-21 13:53:00 -07:00
Mitchell Hashimoto e7e9bcd360 Fix tests 2014-04-12 18:04:17 -07:00
Fabio Rehm 54656151cf Convert specs to RSpec 2.14.8 syntax with Transpec
This conversion is done by Transpec 1.10.2 with the following command:
    transpec test/unit/

* 507 conversions
    from: obj.should
      to: expect(obj).to

* 394 conversions
    from: == expected
      to: eq(expected)

* 260 conversions
    from: obj.should_receive(:message)
      to: expect(obj).to receive(:message)

* 85 conversions
    from: obj.stub(:message)
      to: allow(obj).to receive(:message)

* 25 conversions
    from: its(:attr) { }
      to: describe '#attr' do subject { super().attr }; it { } end

* 19 conversions
    from: obj.should_not
      to: expect(obj).not_to

* 7 conversions
    from: obj.should_not_receive(:message)
      to: expect(obj).not_to receive(:message)

* 3 conversions
    from: Klass.any_instance.should_receive(:message)
      to: expect_any_instance_of(Klass).to receive(:message)
2014-03-14 12:02:07 -03:00
Mitchell Hashimoto 7926f7f051 core: box URLs can be authenticated by hooking 2014-03-01 11:38:04 +01:00
Mitchell Hashimoto 85aa7db17e commands/box: repackage tests 2014-02-05 21:20:29 -08:00
Mitchell Hashimoto 7a6d1a3ff1 commands/box: update command can update a specific box now 2014-02-05 21:20:23 -08:00
Mitchell Hashimoto 88b64f93a4 commands/box: "update" command 2014-02-05 21:20:19 -08:00
Mitchell Hashimoto 29da748702 commands/box/remove: update for new syntax 2014-02-05 21:19:41 -08:00
Mitchell Hashimoto 96e92167d9 commands/box: broken box adding, but more options/tests 2014-02-05 21:19:16 -08:00
Mitchell Hashimoto 8bc36824bf commands/list-commands: lists all commands primary and non-primary 2014-01-11 09:32:13 -08:00
Mitchell Hashimoto 13e9f8037a test: get all the tests passing with new CLI changes 2014-01-11 08:59:13 -08:00
Mitchell Hashimoto 198e142794 commands/plugin: add more tests for installgem 2014-01-06 10:55:34 -08:00
Mitchell Hashimoto f612ec7549 core: support plugin sources, and mask Bundler errors 2014-01-05 23:13:49 -08:00
Mitchell Hashimoto 35d711c91b commands/plugin: add tests for UpdateGems 2014-01-05 22:37:29 -08:00
Mitchell Hashimoto e231890e7e commands/plugin: UninstallPlugin tests 2014-01-05 21:10:43 -08:00
Mitchell Hashimoto bef7051943 commands/plugin: InstallGem tests 2014-01-05 21:08:55 -08:00
Mitchell Hashimoto aeb0d1a480 commands/plugin: fix plugin existence middleware, add tests 2014-01-05 20:57:55 -08:00
Mitchell Hashimoto 8450f20e87 Move StateFile into Vagrant::Plugin core 2014-01-04 16:45:41 -08:00
Teemu Matilainen a5b84f413e core: More informative error if plugin.json parsing fails 2013-12-20 07:10:10 -03: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