aquarist-labs / aquarium

Project Aquarium is a SUSE-sponsored open source project aiming at becoming an easy to use, rock solid storage appliance based on Ceph.
https://aquarist-labs.io/
Other
71 stars 23 forks source link

Invalid container image name errors are also spectacularly inscrutable :-) #761

Closed tserong closed 1 year ago

tserong commented 2 years ago

While testing #758 I had a similar experience to #707 when specifying a bogus container image name:

nonexistent-image

This results in a brief "Http failure response for [...]/api/deploy/create: 400 Bad Request" when you hit the "Install" button:

bad-request

journalctl -u aquarium just says:

Dec 21 07:52:40 node1 uvicorn[1446]: INFO:     2021-12-21 07:52:40 -- mgr -- Attempt to create a new deployment.
Dec 21 07:52:42 node1 uvicorn[1446]: ERROR:    2021-12-21 07:52:42 -- create -- Unable to create deployment: pre-checks failed:
Dec 21 07:52:42 node1 uvicorn[1446]: ERROR:    2021-12-21 07:52:42 -- mgr -- Error creating a new deployment: Pre-checks failed, unable to create.

The debug log isn't really any more enlightening:

DEBUG:    2021-12-21 07:56:18 -- deploy -- Create new deployment.
INFO:     2021-12-21 07:56:18 -- mgr -- Attempt to create a new deployment.
DEBUG:    2021-12-21 07:56:18 -- create -- Preflight checks: registry='registry.opensuse.org' image='filesystems/ceph/master/.../this-does-not-exist' secure=True
DEBUG:    2021-12-21 07:56:18 -- connectionpool -- Starting new HTTPS connection (1): registry.opensuse.org:443
DEBUG:    2021-12-21 07:56:19 -- connectionpool -- https://registry.opensuse.org:443 "GET /v2/ HTTP/1.1" 200 2
ERROR:    2021-12-21 07:56:19 -- create -- Unable to create deployment: pre-checks failed: 
ERROR:    2021-12-21 07:56:19 -- mgr -- Error creating a new deployment: Pre-checks failed, unable to create.

Looking at registry_check() in src/gravel/controllers/containers.py, there seems to be plenty of good error messages attached to the various exceptions that are raised, but these don't seem to make it back into the log file, or to the UI.

Also, semi-related: should we really be splitting the Image URL into "Image registry URL" and "Image Name" in the UI? Wouldn't it be more intuitive to just have the image URL as a single field?