Change redirect of details on admin instance table
Change-Id: I3d56b9f4b76a5b02a4d3a7dd66db3a0a0ed5e84c Closes-Bug: #1282361
This commit is contained in:
@@ -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)
|
||||
|
@@ -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'),
|
||||
|
@@ -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'
|
||||
|
@@ -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()
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user