Skip to main content

A small tool to check the link validity of external Vagrant boxes on Atlas

Project description

Endymion is a command-line tool that checks if the specified Vagrant boxes can be downloaded from Hashicorp’s Atlas. In the case of the official CentOS Linux images for Vagrant, it will also check if the images correspond to the version listed on Atlas.

Installation

Endymion doesn’t have any external dependencies outside of the Python standard library, so it shouldn’t pose any problems to install it directly. You can also install it in a virtualenv if you prefer.

If you only plan to use Endymion, the simplest way is to install it from PyPI:

$ pip install endymion

Developers can also run the development version:

$ git clone https://github.com/lpancescu/endymion.git
$ git checkout python3 # only if you use Python 3.x
$ pip install -e .

Usage

By default, endymion checks the latest version of the boxes provided as arguments, displaying any errors:

$ endymion centos/6 centos/7

Use -v to see more details (-vv to also show the redirects):

$ endymion -v centos/6
INFO:root:http://cloud.centos.org/centos/6/vagrant/x86_64/images/CentOS-6-x86_64-Vagrant-1611_01.Libvirt.box: OK
INFO:root:http://cloud.centos.org/centos/6/vagrant/x86_64/images/CentOS-6-x86_64-Vagrant-1611_01.VirtualBox.box: OK
INFO:root:http://cloud.centos.org/centos/6/vagrant/x86_64/images/CentOS-6-x86_64-Vagrant-1611_01.VMwareFusion.box: OK
INFO:root:http://cloud.centos.org/centos/6/vagrant/x86_64/images/CentOS-6-x86_64-Vagrant-1611_01.VMwareFusion.box: OK

If you want to check all versions available on Atlas, use --all (not recommended for day-to-day use because of the large number of requests to Atlas, for boxes with many versions).

The return code will be 0 if no errors were found, and non-zero otherwise.

Limitations

  • endymion uses the HEAD method of HTTP 1.1 to check the availability of the boxes without downloading them. This usually works with external boxes like the ones provided by CentOS or Fedora, but it will fail with 405 Method Not Allowed for boxes hosted by Hashicorp; using GET with a Content-range header produces the same response.

  • The CentOS project provides GnuPG-signed SHA256 checksums, but endymion doesn’t try to validate them (this would require downloading each variant of a box)

Supported Python versions

Both Python 2.7 and Python 3.x are supported, although they have different codebases:

  • The master branch contains the Python 2.7 source code

  • The python3 branch, unsurprisingly, only runs under Python 3.x (instead of unifying the two code bases, I decided to convert the Python 2.7 code to Python 3, to avoid needlessly complicating the code to support both versions in the long term; if CentOS Linux 8 will default to Python 3, I can just move the Python 3 code to master).

If you are a regular user, this doesn’t matter: pip install endymion will always install the right package for your Python version.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

endymion-1.2.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

endymion-1.2.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

endymion-1.2.0-py2-none-any.whl (7.5 kB view details)

Uploaded Python 2

File details

Details for the file endymion-1.2.0.tar.gz.

File metadata

  • Download URL: endymion-1.2.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for endymion-1.2.0.tar.gz
Algorithm Hash digest
SHA256 cbe0dd89c36c7f9c24954fcaba6a67cb7ff05abfad217871d3010ea1bcf011f6
MD5 1af8fc5c31f14ee71b22d280a7278930
BLAKE2b-256 1eefaeaec0a2ec0ec66d2736abe3e81ef6256d28aecd4d4c94206e61c1ad9131

See more details on using hashes here.

File details

Details for the file endymion-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for endymion-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 08cbbc00af6c23b6bb45a5d85187796185d1fe053dbed60b1f0315f26352dc9a
MD5 ec89375081df726fbd1be7a8047b108c
BLAKE2b-256 09623a8874d5b50caf3fd9c00024067f2061d05b0360e4137919ef2f4ffcacb8

See more details on using hashes here.

File details

Details for the file endymion-1.2.0-py2-none-any.whl.

File metadata

File hashes

Hashes for endymion-1.2.0-py2-none-any.whl
Algorithm Hash digest
SHA256 ab80d5cb5535160c16c22944941281dc6273fcd38ae7263759594fa92e4ae051
MD5 21ae638466f7edc20432c261298f9c22
BLAKE2b-256 84e864c75e5810807f0c40b88ddad140f4e82f7fc7ff5d6c3a9e687323579da7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page