Change redirect of details on admin instance table

Change-Id: I3d56b9f4b76a5b02a4d3a7dd66db3a0a0ed5e84c
Closes-Bug: #1282361
This commit is contained in:
Zhenguo Niu
2014-02-20 15:39:04 +08:00
parent 7404d7acdc
commit 417372a802
5 changed files with 37 additions and 5 deletions

View File

@@ -316,3 +316,18 @@ class InstanceViewTest(test.BaseAdminViewTests):
args=[server.id])
res = self.client.post(url, {'host': host, 'instance_id': server.id})
self.assertRedirectsNoFollow(res, INDEX_URL)
@test.create_stubs({api.nova: ('server_get',)})
def test_instance_details_exception(self):
server = self.servers.first()
api.nova.server_get(IsA(http.HttpRequest), server.id) \
.AndRaise(self.exceptions.nova)
self.mox.ReplayAll()
url = reverse('horizon:admin:instances:detail',
args=[server.id])
res = self.client.get(url)
self.assertRedirectsNoFollow(res, INDEX_URL)

View File

@@ -22,8 +22,6 @@ from django.conf.urls import patterns # noqa
from django.conf.urls import url # noqa
from openstack_dashboard.dashboards.admin.instances import views
from openstack_dashboard.dashboards.project.instances \
import views as project_views
INSTANCES = r'^(?P<instance_id>[^/]+)/%s$'
@@ -32,8 +30,7 @@ INSTANCES = r'^(?P<instance_id>[^/]+)/%s$'
urlpatterns = patterns('openstack_dashboard.dashboards.admin.instances.views',
url(r'^$', views.AdminIndexView.as_view(), name='index'),
url(INSTANCES % 'update', views.AdminUpdateView.as_view(), name='update'),
url(INSTANCES % 'detail',
project_views.DetailView.as_view(), name='detail'),
url(INSTANCES % 'detail', views.DetailView.as_view(), name='detail'),
url(INSTANCES % 'console', 'console', name='console'),
url(INSTANCES % 'vnc', 'vnc', name='vnc'),
url(INSTANCES % 'spice', 'spice', name='spice'),

View File

@@ -163,3 +163,7 @@ class LiveMigrateView(forms.ModalFormView):
'current_host': current_host,
'hosts': self.get_hosts()})
return initial
class DetailView(views.DetailView):
redirect_url = 'horizon:admin:instances:index'

View File

@@ -739,6 +739,21 @@ class InstanceTests(test.TestCase):
res = self.client.get(url)
self.assertItemsEqual(res.context['instance'].fault, server.fault)
@test.create_stubs({api.nova: ('server_get',)})
def test_instance_details_exception(self):
server = self.servers.first()
api.nova.server_get(IsA(http.HttpRequest), server.id) \
.AndRaise(self.exceptions.nova)
self.mox.ReplayAll()
url = reverse('horizon:project:instances:detail',
args=[server.id])
res = self.client.get(url)
self.assertRedirectsNoFollow(res, INDEX_URL)
@test.create_stubs({api.nova: ('server_console_output',)})
def test_instance_log(self):
server = self.servers.first()

View File

@@ -217,6 +217,7 @@ class RebuildView(forms.ModalFormView):
class DetailView(tabs.TabView):
tab_group_class = project_tabs.InstanceDetailTabs
template_name = 'project/instances/detail.html'
redirect_url = 'horizon:project:instances:index'
def get_context_data(self, **kwargs):
context = super(DetailView, self).get_context_data(**kwargs)
@@ -237,7 +238,7 @@ class DetailView(tabs.TabView):
instance.security_groups = api.network.server_security_groups(
self.request, instance_id)
except Exception:
redirect = reverse('horizon:project:instances:index')
redirect = reverse(self.redirect_url)
exceptions.handle(self.request,
_('Unable to retrieve details for '
'instance "%s".') % instance_id,