Package: endymion
Endymion is a command-line tool that checks if the specified Vagrant
boxes can be downloaded from Hashicorp’sAtlas. In the case of the
officialCentOS Linux images for Vagrant, it will also check if the
images correspond to the version listed on Atlas.InstallationEndymion 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 endymionDevelopers 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 .UsageChecking linksBy default,endymionchecks the latest version of the boxes
provided as arguments, displaying any errors:$ endymion centos/6 centos/7Use-vto see more details (-vvto 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: OKIf 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.Exporting Atlas data as JSONIf you would like to export the existing metadata from Atlas, use the--exportoption.  Endymion expects to find the SHA256 checksum
files in the same directory, named after the corresponding image
(e.g.centos_7.sha256sum.txtforcentos/7); since Atlas typically
has no checksum information in the metadata, the checksums will be
read from these external files and inserted in the generated JSON
metadata.$ endymion –export centos/6 centos/7Limitationsendymionuses theHEADmethod 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 with405 Method Not Allowedfor boxes
hosted by Hashicorp; usingGETwith aContent-rangeheader
produces the same response.The CentOS project provides GnuPG-signed SHA256 checksums, butendymiondoesn’t try to validate them (this would require
downloading each variant of a box)Supported Python versionsBoth Python 2.7 and Python 3.x are supported, although they have
different codebases:Themasterbranch contains the Python 2.7 source codeThepython3branch, 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 tomaster).If you are a regular user, this doesn’t matter:pip install endymionwill always install the right package for your Python
version.