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.3.0.tar.gz (6.4 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.3.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

endymion-1.3.0-py2-none-any.whl (8.7 kB view details)

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for endymion-1.3.0.tar.gz
Algorithm Hash digest
SHA256 9f35b3940a4d4bb221420f8167d57eec945de541a9d555f29ec3f0d2334fe318
MD5 0df0a2d2b0042f68a803dd7e8f08d4a6
BLAKE2b-256 6a7bef736b5c290074ab093aee4ac001361a38f972eaabbd1a2024bba065a15a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for endymion-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 201b07b10819f33c68cc1fe53c27032e4437757f926654984141e00b791c1acb
MD5 082316db19ef8575af57a5425986e2f0
BLAKE2b-256 2097dececcc506d8a021833c07a2b571c418d509d2a45635c8cf21d4fc20fa63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for endymion-1.3.0-py2-none-any.whl
Algorithm Hash digest
SHA256 bd4f7a6cfbbcb4757d7f757df380b4f249fbb57eed5e29cda53261569ff9c900
MD5 5a5bcba8d73e66b1167d71fbcb74d1e2
BLAKE2b-256 d8966178ab4282fbd448862aef60f20638bd20b875842c7c114b0b872a756174

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