def test_instance_vnc_exception(self): server = self.servers.first() self.mox.StubOutWithMock(api, "server_vnc_console") api.server_vnc_console(IsA(http.HttpRequest), server.id).AndRaise(self.exceptions.nova) self.mox.ReplayAll() url = reverse("horizon:nova:instances_and_volumes:instances:vnc", args=[server.id]) res = self.client.get(url) self.assertRedirectsNoFollow(res, INDEX_URL)
def test_instance_vnc_exception(self): server = self.servers.first() self.mox.StubOutWithMock(api, 'server_vnc_console') api.server_vnc_console(IsA(http.HttpRequest), server.id) \ .AndRaise(self.exceptions.nova) self.mox.ReplayAll() url = reverse('horizon:nova:instances_and_volumes:instances:vnc', args=[server.id]) res = self.client.get(url) self.assertRedirectsNoFollow(res, INDEX_URL)
def test_instance_vnc_exception(self): server = self.servers.first() api.server_vnc_console(IsA(http.HttpRequest), server.id) \ .AndRaise(self.exceptions.nova) self.mox.ReplayAll() url = reverse('horizon:nova:instances:vnc', args=[server.id]) res = self.client.get(url) self.assertRedirectsNoFollow(res, INDEX_URL)
def test_instance_vnc_exception(self): INSTANCE_ID = self.servers[0].id exception = nova_exceptions.ClientException(500) self.mox.StubOutWithMock(api, 'server_vnc_console') api.server_vnc_console(IsA(http.HttpRequest), unicode(INSTANCE_ID)).AndRaise(exception) self.mox.ReplayAll() res = self.client.get( reverse('horizon:nova:instances_and_volumes:instances:vnc', args=[INSTANCE_ID])) self.assertRedirectsNoFollow(res, INDEX_URL)
def get_data(self, request, context, *args, **kwargs): instance_id = kwargs["instance_id"] if "show" in request.GET: show_tab = request.GET["show"] else: show_tab = "overview" try: instance = api.server_get(request, instance_id) volumes = api.volume_instance_list(request, instance_id) # Gather our flavors and images and correlate our instances to # them. Exception handling happens in the parent class. flavors = api.flavor_list(request) full_flavors = SortedDict([(str(flavor.id), flavor) for flavor in flavors]) instance.full_flavor = full_flavors[instance.flavor["id"]] context.update({"instance": instance, "volumes": volumes}) except: redirect = reverse("horizon:nova:instances_and_volumes:index") exceptions.handle( request, _("Unable to retrieve details for " 'instance "%s".') % instance_id, redirect=redirect ) if show_tab == "vnc": try: console = api.server_vnc_console(request, instance_id) vnc_url = "%s&title=%s(%s)" % (console.url, getattr(instance, "name", ""), instance_id) context.update({"vnc_url": vnc_url}) except: exceptions.handle(request, _("Unable to get vnc console for " 'instance "%s".') % instance_id) context.update({"show_tab": show_tab}) return context
def test_instance_vnc(self): server = self.servers.first() CONSOLE_OUTPUT = "/vncserver" console_mock = self.mox.CreateMock(api.VNCConsole) console_mock.url = CONSOLE_OUTPUT self.mox.StubOutWithMock(api, "server_vnc_console") self.mox.StubOutWithMock(api, "server_get") api.server_get(IsA(http.HttpRequest), server.id).AndReturn(server) api.server_vnc_console(IgnoreArg(), server.id).AndReturn(console_mock) self.mox.ReplayAll() url = reverse("horizon:project:instances:vnc", args=[server.id]) res = self.client.get(url) redirect = CONSOLE_OUTPUT + "&title=%s(1)" % server.name self.assertRedirectsNoFollow(res, redirect)
def test_instance_vnc(self): server = self.servers.first() CONSOLE_OUTPUT = '/vncserver' console_mock = self.mox.CreateMock(api.VNCConsole) console_mock.url = CONSOLE_OUTPUT self.mox.StubOutWithMock(api, 'server_vnc_console') self.mox.StubOutWithMock(api, 'server_get') api.server_get(IsA(http.HttpRequest), server.id).AndReturn(server) api.server_vnc_console(IgnoreArg(), server.id).AndReturn(console_mock) self.mox.ReplayAll() url = reverse('horizon:nova:instances:vnc', args=[server.id]) res = self.client.get(url) redirect = CONSOLE_OUTPUT + '&title=%s(1)' % server.name self.assertRedirectsNoFollow(res, redirect)
def test_instance_vnc(self): server = self.servers.first() CONSOLE_OUTPUT = '/vncserver' console_mock = self.mox.CreateMock(api.VNCConsole) console_mock.url = CONSOLE_OUTPUT self.mox.StubOutWithMock(api, 'server_vnc_console') self.mox.StubOutWithMock(api, 'server_get') api.server_get(IsA(http.HttpRequest), server.id).AndReturn(server) api.server_vnc_console(IgnoreArg(), server.id).AndReturn(console_mock) self.mox.ReplayAll() url = reverse('horizon:nova:instances_and_volumes:instances:vnc', args=[server.id]) res = self.client.get(url) redirect = CONSOLE_OUTPUT + '&title=%s(1)' % server.name self.assertRedirectsNoFollow(res, redirect)
def vnc(request, instance_id): try: console = api.server_vnc_console(request, instance_id) instance = api.server_get(request, instance_id) return shortcuts.redirect(console.url + ("&title=%s(%s)" % (instance.name, instance_id))) except: redirect = reverse("horizon:nova:instances_and_volumes:index") msg = _('Unable to get VNC console for instance "%s".') % instance_id exceptions.handle(request, msg, redirect=redirect)
def vnc(request, instance_id): try: console = api.server_vnc_console(request, instance_id) instance = api.server_get(request, instance_id) return shortcuts.redirect(console.url + ("&title=%s(%s)" % (instance.name, instance_id))) except: redirect = reverse("horizon:nova:instances:index") msg = _('Unable to get VNC console for instance "%s".') % instance_id exceptions.handle(request, msg, redirect=redirect)
def test_server_vnc_console(self): server = self.servers.first() console = self.servers.console_data console_type = console["console"]["type"] novaclient = self.stub_novaclient() novaclient.servers = self.mox.CreateMockAnything() novaclient.servers.get_vnc_console(server.id, console_type).AndReturn(console) self.mox.ReplayAll() ret_val = api.server_vnc_console(self.request, server.id, console_type) self.assertIsInstance(ret_val, api.nova.VNCConsole)
def test_instance_vnc(self): INSTANCE_ID = self.servers[0].id CONSOLE_OUTPUT = '/vncserver' console_mock = self.mox.CreateMock(api.VNCConsole) console_mock.url = CONSOLE_OUTPUT self.mox.StubOutWithMock(api, 'server_vnc_console') self.mox.StubOutWithMock(api, 'server_get') api.server_get(IsA(http.HttpRequest), str(self.servers[0].id)).AndReturn(self.servers[0]) api.server_vnc_console(IgnoreArg(), unicode(INSTANCE_ID)).AndReturn(console_mock) self.mox.ReplayAll() res = self.client.get( reverse('horizon:nova:instances_and_volumes:instances:vnc', args=[INSTANCE_ID])) self.assertRedirectsNoFollow(res, CONSOLE_OUTPUT + '&title=serverName(1)')
def get_data(self, request, context, *args, **kwargs): instance_id = kwargs['instance_id'] if "show" in request.GET: show_tab = request.GET["show"] else: show_tab = "overview" try: instance = api.server_get(request, instance_id) volumes = api.volume_instance_list(request, instance_id) # Gather our flavors and images and correlate our instances to # them. Exception handling happens in the parent class. flavors = api.flavor_list(request) full_flavors = SortedDict([(str(flavor.id), flavor) for \ flavor in flavors]) instance.full_flavor = full_flavors[instance.flavor["id"]] context.update({'instance': instance, 'volumes': volumes}) except: redirect = reverse('horizon:nova:instances_and_volumes:index') exceptions.handle(request, _('Unable to retrieve details for ' 'instance "%s".') % instance_id, redirect=redirect) if show_tab == "vnc": try: console = api.server_vnc_console(request, instance_id) vnc_url = "%s&title=%s(%s)" % ( console.url, getattr(instance, "name", ""), instance_id) context.update({'vnc_url': vnc_url}) except: exceptions.handle( request, _('Unable to get vnc console for ' 'instance "%s".') % instance_id) context.update({'show_tab': show_tab}) return context