From 6146c7cd0843a3ba12d59b69107148f6080a00fc Mon Sep 17 00:00:00 2001 From: Gabriel Hurley Date: Mon, 2 Apr 2012 11:47:37 -0700 Subject: [PATCH] Don't try to make an admin call in a user-level dashboard. Fixes bug 971723. Change-Id: I5c5f74163ec912f599e1f0e606bb6906327b4f61 --- .../nova/instances_and_volumes/instances/tables.py | 6 ------ horizon/dashboards/syspanel/instances/tables.py | 13 ++++++++++++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/horizon/dashboards/nova/instances_and_volumes/instances/tables.py b/horizon/dashboards/nova/instances_and_volumes/instances/tables.py index 56f938f0526..ba379220830 100644 --- a/horizon/dashboards/nova/instances_and_volumes/instances/tables.py +++ b/horizon/dashboards/nova/instances_and_volumes/instances/tables.py @@ -18,7 +18,6 @@ from django import template from django.template.defaultfilters import title -from django.utils.datastructures import SortedDict from django.utils.translation import ugettext_lazy as _ from horizon import api @@ -182,11 +181,6 @@ class UpdateRow(tables.Row): def get_data(self, request, instance_id): instance = api.server_get(request, instance_id) instance.full_flavor = api.flavor_get(request, instance.flavor["id"]) - tenant = api.keystone.tenant_get(request, - instance.tenant_id, - admin=True) - instance.tenant_name = getattr(tenant, "name", None) - return instance diff --git a/horizon/dashboards/syspanel/instances/tables.py b/horizon/dashboards/syspanel/instances/tables.py index 7aa07363926..4380818ed0c 100644 --- a/horizon/dashboards/syspanel/instances/tables.py +++ b/horizon/dashboards/syspanel/instances/tables.py @@ -20,6 +20,7 @@ from django.template.defaultfilters import title from django.utils.translation import ugettext_lazy as _ +from horizon import api from horizon import tables from horizon.dashboards.nova.instances_and_volumes.instances.tables import ( TerminateInstance, EditInstance, ConsoleLink, LogLink, SnapshotLink, @@ -30,6 +31,16 @@ LOG = logging.getLogger(__name__) +class AdminUpdateRow(UpdateRow): + def get_data(self, request, instance_id): + instance = super(AdminUpdateRow, self).get_data(request, instance_id) + tenant = api.keystone.tenant_get(request, + instance.tenant_id, + admin=True) + instance.tenant_name = getattr(tenant, "name", None) + return instance + + class SyspanelInstancesTable(tables.DataTable): TASK_STATUS_CHOICES = ( (None, True), @@ -70,7 +81,7 @@ class Meta: verbose_name = _("Instances") status_columns = ["status", "task"] table_actions = (TerminateInstance,) - row_class = UpdateRow + row_class = AdminUpdateRow row_actions = (EditInstance, ConsoleLink, LogLink, SnapshotLink, TogglePause, ToggleSuspend, RebootInstance, TerminateInstance)