Show reason of failure in case of deployment error

* Display information about up to 3 last failed events,
  including the reason of failure
* Add the Reason column to the log table of Heat stack events

Closes-Bug: #1288195
Partially implements: blueprint tripleo-deployment-failed-page

Change-Id: I18c6b90f21dce85ab3114cb1fb8f73422659cb03
This commit is contained in:
Ana Krivokapic 2014-03-05 21:41:20 +01:00
parent dda4d81969
commit ade04fc60a
3 changed files with 22 additions and 12 deletions

View File

@ -54,6 +54,8 @@ class LogTable(tables.DataTable):
verbose_name=_("Resource Name"))
resource_status = tables.Column('resource_status',
verbose_name=_("Status"))
resource_status_reason = tables.Column('resource_status_reason',
verbose_name=_("Reason"))
class Meta:
name = "log"

View File

@ -66,17 +66,16 @@ class OverviewTab(tabs.Tab):
total = sum(d['node_count'] for d in role_data)
progress = 100 * sum(d.get('running_node_count', 0)
for d in role_data) // (total or 1)
try:
last_event = overcloud.stack_events[-1]
except IndexError:
last_event = None
events = overcloud.stack_events
last_failed_events = [e for e in events
if e.resource_status == 'CREATE_FAILED'][-3:]
return {
'overcloud': overcloud,
'roles': role_data,
'progress': progress,
'dashboard_url': overcloud.dashboard_url,
'last_event': last_event,
'last_failed_events': last_failed_events,
}

View File

@ -31,13 +31,22 @@
</div>
{% endif %}
<div class="span10">
{% if last_event %}
<strong>Last update:</strong>
<p>
<time datetime="{{ last_event.event_time }}">{{ last_event.event_time }}</time>
{{ last_event.resource_name }}
{{ last_event.resource_status }}
</p>
{% if last_failed_events %}
<strong>{% trans "Last failed events:" %}</strong>
{% for event in last_failed_events %}
<div>
<dl>
<dt>{% trans "Timestamp" %}</dt>
<dd><time datetime="{{ event.event_time }}">{{ event.event_time }}</time></dd>
<dt>{% trans "Resource Name" %}</dt>
<dd>{{ event.resource_name }}</dd>
<dt>{% trans "Status" %}</dt>
<dd>{{ event.resource_status }}</dd>
<dt>{% trans "Reason" %}</dt>
<dd>{{ event.resource_status_reason }}</dd>
</dl>
</div>
{% endfor %}
{% endif %}
<a href="?tab=detail__log" data-toggle="tab" data-target="#detail__log" class="pull-right">See full log</a>
</div>