diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-11-20 19:25:56 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-11-20 19:25:56 +0000 |
commit | 7ab5dcf8ed8fadc45cfa0bce641776704cecf24a (patch) | |
tree | cce17731f7aded139224e8bb0e86be46e1a0df3c | |
parent | 09d1480840f0f83b4c016e136a473f338f16e43d (diff) | |
parent | b1b4f8480c78663a5807d12e6917a94421d5b0b6 (diff) | |
download | oslo-middleware-7ab5dcf8ed8fadc45cfa0bce641776704cecf24a.tar.gz |
Merge "Allow health check results to provide there own details"
-rw-r--r-- | oslo_middleware/healthcheck/__init__.py | 22 | ||||
-rw-r--r-- | oslo_middleware/healthcheck/disable_by_file.py | 16 | ||||
-rw-r--r-- | oslo_middleware/healthcheck/pluginbase.py | 11 |
3 files changed, 40 insertions, 9 deletions
diff --git a/oslo_middleware/healthcheck/__init__.py b/oslo_middleware/healthcheck/__init__.py index d3b6a35..ceb2301 100644 --- a/oslo_middleware/healthcheck/__init__.py +++ b/oslo_middleware/healthcheck/__init__.py @@ -162,6 +162,23 @@ class Healthcheck(base.ConfigurableMiddleware): <H2>Result of {{results|length}} checks:</H2> <TABLE bgcolor="#ffffff" border="1"> <TBODY> +<TR> +{% if detailed -%} +<TH> +Kind +</TH> +<TH> +Reason +</TH> +<TH> +Details +</TH> +{% else %} +<TH> +Reason +</TH> +{%- endif %} +</TR> {% for result in results -%} {% if result.reason -%} <TR> @@ -169,6 +186,9 @@ class Healthcheck(base.ConfigurableMiddleware): <TD>{{result.class|e}}</TD> {%- endif %} <TD>{{result.reason|e}}</TD> +{% if detailed -%} + <TD>{{result.details|e}}</TD> +{%- endif %} </TR> {%- endif %} {%- endfor %} @@ -293,6 +313,7 @@ class Healthcheck(base.ConfigurableMiddleware): for result in results: reasons.append({ 'reason': result.reason, + 'details': result.details or '', 'class': reflection.get_class_name(result, fully_qualified=False), }) @@ -317,6 +338,7 @@ class Healthcheck(base.ConfigurableMiddleware): translated_results = [] for result in results: translated_results.append({ + 'details': result.details or '', 'reason': result.reason, 'class': reflection.get_class_name(result, fully_qualified=False), diff --git a/oslo_middleware/healthcheck/disable_by_file.py b/oslo_middleware/healthcheck/disable_by_file.py index e422f91..8a0403b 100644 --- a/oslo_middleware/healthcheck/disable_by_file.py +++ b/oslo_middleware/healthcheck/disable_by_file.py @@ -95,11 +95,15 @@ class DisableByFileHealthcheck(pluginbase.HealthcheckBaseExtension): if path is None: LOG.warning(_LW('DisableByFile healthcheck middleware enabled ' 'without disable_by_file_path set')) - return pluginbase.HealthcheckResult(available=True, - reason="OK") + return pluginbase.HealthcheckResult( + available=True, reason="OK", + details="No 'disable_by_file_path' configuration value" + " specified") elif not os.path.exists(path): - return pluginbase.HealthcheckResult(available=True, - reason="OK") + return pluginbase.HealthcheckResult( + available=True, reason="OK", + details="Path '%s' was not found" % path) else: - return pluginbase.HealthcheckResult(available=False, - reason="DISABLED BY FILE") + return pluginbase.HealthcheckResult( + available=False, reason="DISABLED BY FILE", + details="Path '%s' was found" % path) diff --git a/oslo_middleware/healthcheck/pluginbase.py b/oslo_middleware/healthcheck/pluginbase.py index e95749c..e370967 100644 --- a/oslo_middleware/healthcheck/pluginbase.py +++ b/oslo_middleware/healthcheck/pluginbase.py @@ -14,12 +14,17 @@ # under the License. import abc -import collections import six -HealthcheckResult = collections.namedtuple( - 'HealthcheckResult', ['available', 'reason']) + +class HealthcheckResult(object): + """Result of a ``healthcheck`` method call should be this object.""" + + def __init__(self, available, reason, details=None): + self.available = available + self.reason = reason + self.details = details @six.add_metaclass(abc.ABCMeta) |