summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-11-20 19:25:56 +0000
committerGerrit Code Review <review@openstack.org>2015-11-20 19:25:56 +0000
commit7ab5dcf8ed8fadc45cfa0bce641776704cecf24a (patch)
treecce17731f7aded139224e8bb0e86be46e1a0df3c
parent09d1480840f0f83b4c016e136a473f338f16e43d (diff)
parentb1b4f8480c78663a5807d12e6917a94421d5b0b6 (diff)
downloadoslo-middleware-7ab5dcf8ed8fadc45cfa0bce641776704cecf24a.tar.gz
Merge "Allow health check results to provide there own details"
-rw-r--r--oslo_middleware/healthcheck/__init__.py22
-rw-r--r--oslo_middleware/healthcheck/disable_by_file.py16
-rw-r--r--oslo_middleware/healthcheck/pluginbase.py11
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)