diff options
author | Radomir Dopieralski <openstack@sheep.art.pl> | 2013-10-23 09:23:14 +0200 |
---|---|---|
committer | Radomir Dopieralski <openstack@sheep.art.pl> | 2013-10-23 09:27:01 +0200 |
commit | d72ad6e0c490f6cc46eab8f4b636854fd96f8cd0 (patch) | |
tree | cbc1762591adbcbd7f7f384852a300c08d54a956 | |
parent | 887e7459fd9117b6d734f605d19b18e099e34b7d (diff) | |
download | tuskar-ui-d72ad6e0c490f6cc46eab8f4b636854fd96f8cd0.tar.gz |
Fail gracefully on node detail page when no overcloud
The node detail page retrieves the number of running instances from
Nova Baremetal, which makes the page fail rendering when the overcloud
nova is not accessible. I moved the query from template to
get_context_data and added some basic error handling.
Change-Id: Ie9919ba5ff6c3ae7b85f962d6fcecb5ef4e51c51
Closes-bug: #1237471
-rw-r--r-- | tuskar_ui/infrastructure/resource_management/nodes/tabs.py | 14 | ||||
-rw-r--r-- | tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/_detail_overview.html | 2 |
2 files changed, 14 insertions, 2 deletions
diff --git a/tuskar_ui/infrastructure/resource_management/nodes/tabs.py b/tuskar_ui/infrastructure/resource_management/nodes/tabs.py index 77399a14..5db0be8f 100644 --- a/tuskar_ui/infrastructure/resource_management/nodes/tabs.py +++ b/tuskar_ui/infrastructure/resource_management/nodes/tabs.py @@ -14,7 +14,9 @@ from django.utils.translation import ugettext_lazy as _ # noqa +from horizon import messages from horizon import tabs +import requests class OverviewTab(tabs.Tab): @@ -25,7 +27,17 @@ class OverviewTab(tabs.Tab): preload = False def get_context_data(self, request): - return {"node": self.tab_group.kwargs['node']} + node = self.tab_group.kwargs['node'] + try: + running_instances = len(node.running_virtual_machines) + except requests.exceptions.ConnectionError: + running_instances = _("Unknown") + messages.warning(request, + _("Can't retrieve the running instances from the overcloud.")) + return { + 'node': node, + 'running_instances': running_instances, + } class NodeDetailTabs(tabs.TabGroup): diff --git a/tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/_detail_overview.html b/tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/_detail_overview.html index 29e70954..97809e39 100644 --- a/tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/_detail_overview.html +++ b/tuskar_ui/infrastructure/resource_management/templates/resource_management/nodes/_detail_overview.html @@ -36,7 +36,7 @@ <dt>{% trans "Provisioned Image" %}</dt> <dd>{{ node.image|default:_("None") }}</dd> <dt>{% trans "Running Instances" %}</dt> - <dd>{{ node.running_virtual_machines|length }}</dd> + <dd>{{ running_instances }}</dd> </dl> </div> <div class="span4"> |