Commit graph

20 commits

Author SHA1 Message Date
Chris Roberts
51adb12547 Add architecture support for boxes
Introduce support for handling box architecture. Adds a new
`box_architecture` setting that defaults to `:auto` which will perform
automatic detection of the host system, but can be overridden with a
custom value. Can also be set to `nil` which will result in it fetching
the box flagged with the default architecture within the metadata.

Box collection has been modified to allow existing boxes already
downloaded and unpacked to still function as expected when architecture
information is not available.
2023-09-14 16:15:03 -07:00
hashicorp-copywrite[bot]
36a312ee26
add missing license headers and update copyright file headers to BUS-1.1 2023-08-10 21:53:25 +01:00
Brian Cain
e2d017b219
Continue updating environment boxes if metadata not found
Prior to this commit, if a user ran a `vagrant box update` on their
entire environment and one of the boxes did not have a metadata file,
the rest of the boxes in the update would be skipped. This commit fixes
that by ignoring those boxes and showng a warning, so that the rest of
the boxes could check for updates.
2019-05-08 09:04:45 -07:00
Alex Goncharov
b75768fc56 Fix box version sort in Update.update_specific 2019-04-24 18:57:34 -04:00
Matt Adams
a3836f5fec Change remaining box_client_cert refs
This fixes issues with box add/update when self hosting with client
certs. The --cert option was not being added to the curl subprocess
in these cases.
2019-01-28 08:45:24 -06:00
Chris Roberts
ceb7a0b5ac When doing box lookup, use explicit provider, machine provider, then default 2018-08-02 16:41:28 -07:00
Chris Roberts
00b783a6a5 Lookup latest available installed box if required on update
When performing a box update and the box version has been updated
to be different than the installed version, perform a lookup for
the latest available installed box to allow the update command to
continue successfully
2018-08-02 16:12:10 -07: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
Seth Vargo
dab4537682
core/boxes: Do not update the same box twice
Vagrant's environment (which includes the known list of boxes and
versions) is established at the start of the Vagrant run. This means
that box downloads which occur during the run are not contained in the
set until the next run. This causes duplicate box downloads to raise an
error in multi-machine Vagrantfiles.

This commit fixes that issue by pre-processing the machines by provider
and version, creating a unique set of boxes to update.

Fixes GH-6042
2016-05-31 23:08:51 -04: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
e5a7bfebbc commands/box/update: proper provider is updated [GH-4374] 2014-08-29 12:05:44 -07:00
Mitchell Hashimoto
059243670f commands/box: update gives nice message if no box 2014-08-29 11:19:54 -07:00
Mitchell Hashimoto
ae8be9356e commands/box/update: show current version [GH-3467] 2014-04-14 18:55:22 -07:00
Christian Berendt
764c007a93 When there are multiple versions of a box are available it should be checked if an update is available for the highest version.
Example:

There are version 0.2.10 and 0.2.11 available. The latest update is version 0.2.12.

```
berendt/ubuntu-14.04-amd64          (virtualbox, 0.2.10)
berendt/ubuntu-14.04-amd64          (virtualbox, 0.2.11)
```

Without this patch it will be checked if a higher version than 0.2.10 is available.

```
Checking for updates to 'berendt/ubuntu-14.04-amd64'
Version constraints: > 0.2.10
Provider: virtualbox
Updating 'berendt/ubuntu-14.04-amd64' with provider 'virtualbox' from version
'0.2.10' to '0.2.12'...
Loading metadata for box 'https://vagrantcloud.com/berendt/ubuntu-14.04-amd64'
Adding box 'berendt/ubuntu-14.04-amd64' (v0.2.12) for provider: virtualbox
Downloading: https://vagrantcloud.com/berendt/ubuntu-14.04-amd64/version/23/provider/virtualbox.box
Successfully added box 'berendt/ubuntu-14.04-amd64' (v0.2.12) for 'virtualbox'!
```

with this patch it will be checked if a higher version than 0.2.11 is available (the expected behaviour).

```
Checking for updates to 'berendt/ubuntu-14.04-amd64'
Version constraints: > 0.2.11
Provider: virtualbox
Updating 'berendt/ubuntu-14.04-amd64' with provider 'virtualbox' from version
'0.2.11' to '0.2.12'...
Loading metadata for box 'https://vagrantcloud.com/berendt/ubuntu-14.04-amd64'
Adding box 'berendt/ubuntu-14.04-amd64' (v0.2.12) for provider: virtualbox
Downloading: https://vagrantcloud.com/berendt/ubuntu-14.04-amd64/version/23/provider/virtualbox.box
Successfully added box 'berendt/ubuntu-14.04-amd64' (v0.2.12) for 'virtualbox'!
```
2014-04-12 11:03:04 +02:00
gnawhleinad
fbcac2978e clean up usage 2014-02-08 00:20:50 -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
386938f0b1 commands/box: update looks prettier on output 2014-02-05 21:20:22 -08:00
Mitchell Hashimoto
cf9004241e core: output what we're updating and what we're not 2014-02-05 21:20:21 -08:00
Mitchell Hashimoto
88b64f93a4 commands/box: "update" command 2014-02-05 21:20:19 -08:00
Mitchell Hashimoto
61a1082d65 core: BoxCheckOutdated is *much* simpler, unified logic, tests 2014-02-05 21:20:18 -08:00