Skip to content

Commit

Permalink
Fix issue with not loading and showing
Browse files Browse the repository at this point in the history
tenant name in syspanel/instance view

Fixes bug 964739

Patch2: Replaced API calls with _get(),
added unit test

The prefill of tenant_name was missing.
The same code is present in AdminIndexView.
Maybe it would be better to make UpdateRow as
part of the TableView, because they share
almost the same get_data() code...

Change-Id: Ib74f7049625292644bba41ac0ab17279274a8ca3
  • Loading branch information
ttrifonov committed Mar 28, 2012
1 parent b2ff1ee commit 5cd1e5d
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 3 deletions.
Expand Up @@ -181,9 +181,12 @@ class UpdateRow(tables.Row):

def get_data(self, request, instance_id):
instance = api.server_get(request, instance_id)
flavors = api.flavor_list(request)
keyed_flavors = [(str(flavor.id), flavor) for flavor in flavors]
instance.full_flavor = SortedDict(keyed_flavors)[instance.flavor["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


Expand Down
31 changes: 31 additions & 0 deletions horizon/dashboards/syspanel/instances/tests.py
Expand Up @@ -55,3 +55,34 @@ def test_index_server_list_exception(self):
res = self.client.get(reverse('horizon:syspanel:instances:index'))
self.assertTemplateUsed(res, 'syspanel/instances/index.html')
self.assertEqual(len(res.context['instances_table'].data), 0)

def test_ajax_loading_instances(self):
server = self.servers.first()
flavor = self.flavors.list()[0]
tenant = self.tenants.list()[0]

self.mox.StubOutWithMock(api, 'server_get')
self.mox.StubOutWithMock(api, 'flavor_get')
self.mox.StubOutWithMock(api.keystone, 'tenant_get')
api.server_get(IsA(http.HttpRequest), server.id).AndReturn(server)
api.flavor_get(IsA(http.HttpRequest),
server.flavor['id']).AndReturn(flavor)
api.keystone.tenant_get(IsA(http.HttpRequest),
server.tenant_id,
admin=True).AndReturn(tenant)
self.mox.ReplayAll()

url = reverse('horizon:syspanel:instances:index') + \
"?action=row_update&table=instances&obj_id=" + server.id

res = self.client.get(url, {},
HTTP_X_REQUESTED_WITH='XMLHttpRequest')
self.assertTemplateUsed(res, "horizon/common/_data_table_row.html")

self.assertContains(res, "test_tenant", 1, 200)
self.assertContains(res, "instance-host", 1, 200)
self.assertContains(res, "server_1", 1, 200)
self.assertContains(res, "10.0.0.1", 1, 200)
self.assertContains(res, "512MB RAM | 1 VCPU | 0 Disk", 1, 200)
self.assertContains(res, "Active", 1, 200)
self.assertContains(res, "Running", 1, 200)
1 change: 1 addition & 0 deletions horizon/tests/test_data/nova_data.py
Expand Up @@ -27,6 +27,7 @@
{
"server": {
"OS-EXT-SRV-ATTR:instance_name": "instance-00000005",
"OS-EXT-SRV-ATTR:host": "instance-host",
"OS-EXT-STS:task_state": null,
"addresses": {
"private": [
Expand Down

0 comments on commit 5cd1e5d

Please sign in to comment.