Fix issue with not loading and showing
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
This commit is contained in:
parent
b2ff1ee446
commit
5cd1e5d216
@ -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
|
||||
|
||||
|
||||
|
@ -55,3 +55,34 @@ class InstanceViewTest(test.BaseAdminViewTests):
|
||||
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)
|
||||
|
@ -27,6 +27,7 @@ SERVER_DATA = """
|
||||
{
|
||||
"server": {
|
||||
"OS-EXT-SRV-ATTR:instance_name": "instance-00000005",
|
||||
"OS-EXT-SRV-ATTR:host": "instance-host",
|
||||
"OS-EXT-STS:task_state": null,
|
||||
"addresses": {
|
||||
"private": [
|
||||
|
Loading…
x
Reference in New Issue
Block a user