From c007b37df7b7ce9c9eeda27d0209bac3b82b6830 Mon Sep 17 00:00:00 2001 From: Pierre Jaury Date: Thu, 13 Oct 2016 09:31:15 +0200 Subject: [PATCH] Display error messages when Docker is unreachable properly, related to #78 --- admin/freeposte/admin/templates/docker-error.html | 14 ++++++++++++++ admin/freeposte/admin/views/base.py | 6 +++++- .../translations/en/LC_MESSAGES/messages.po | 10 +++++++++- .../translations/fr/LC_MESSAGES/messages.po | 10 +++++++++- 4 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 admin/freeposte/admin/templates/docker-error.html diff --git a/admin/freeposte/admin/templates/docker-error.html b/admin/freeposte/admin/templates/docker-error.html new file mode 100644 index 00000000..2038c0a0 --- /dev/null +++ b/admin/freeposte/admin/templates/docker-error.html @@ -0,0 +1,14 @@ +{% extends "base.html" %} + +{% block title %} +{% trans %}Docker error{% endtrans %} +{% endblock %} + +{% block subtitle %} +{{ action }} +{% endblock %} + +{% block box_content %} +

{% trans action %}An error occurred while talking to the Docker server.{% endtrans %}

+
{{ error }}
+{% endblock %} diff --git a/admin/freeposte/admin/views/base.py b/admin/freeposte/admin/views/base.py index d2e1ef8a..de51452c 100644 --- a/admin/freeposte/admin/views/base.py +++ b/admin/freeposte/admin/views/base.py @@ -35,7 +35,11 @@ def logout(): @access.global_admin def services(): containers = {} - for brief in dockercli.containers(all=True): + try: + all_containers = dockercli.containers(all=True) + except Exception as error: + return flask.render_template('docker-error.html', error=error) + for brief in all_containers: if brief['Image'].startswith('freeposte/'): container = dockercli.inspect_container(brief['Id']) container['Image'] = dockercli.inspect_image(container['Image']) diff --git a/admin/freeposte/translations/en/LC_MESSAGES/messages.po b/admin/freeposte/translations/en/LC_MESSAGES/messages.po index b0eeb6c1..8e41d456 100644 --- a/admin/freeposte/translations/en/LC_MESSAGES/messages.po +++ b/admin/freeposte/translations/en/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-10-02 17:33+0200\n" +"POT-Creation-Date: 2016-10-13 09:28+0200\n" "PO-Revision-Date: 2016-10-02 15:02+0200\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -182,6 +182,14 @@ msgstr "" msgid "You are about to %(action)s. Please confirm your action." msgstr "" +#: freeposte/admin/templates/docker-error.html:4 +msgid "Docker error" +msgstr "" + +#: freeposte/admin/templates/docker-error.html:12 +msgid "An error occurred while talking to the Docker server." +msgstr "" + #: freeposte/admin/templates/login.html:6 msgid "Your account" msgstr "" diff --git a/admin/freeposte/translations/fr/LC_MESSAGES/messages.po b/admin/freeposte/translations/fr/LC_MESSAGES/messages.po index 804761c8..f5bc4ea5 100644 --- a/admin/freeposte/translations/fr/LC_MESSAGES/messages.po +++ b/admin/freeposte/translations/fr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-10-02 17:33+0200\n" +"POT-Creation-Date: 2016-10-13 09:28+0200\n" "PO-Revision-Date: 2016-10-02 16:32+0200\n" "Last-Translator: \n" "Language: fr\n" @@ -182,6 +182,14 @@ msgstr "Confirmer" msgid "You are about to %(action)s. Please confirm your action." msgstr "Vous allez %(action)s. Merci de confirmer votre action." +#: freeposte/admin/templates/docker-error.html:4 +msgid "Docker error" +msgstr "" + +#: freeposte/admin/templates/docker-error.html:12 +msgid "An error occurred while talking to the Docker server." +msgstr "" + #: freeposte/admin/templates/login.html:6 msgid "Your account" msgstr ""