def test_instance_log_exception(self): server = self.servers.first() api.server_console_output(IsA(http.HttpRequest), server.id, tail_length=None).AndRaise(self.exceptions.nova) self.mox.ReplayAll() url = reverse("horizon:project:instances:console", args=[server.id]) tg = InstanceDetailTabs(self.request, instance=server) qs = "?%s=%s" % (tg.param_name, tg.get_tab("log").get_id()) res = self.client.get(url + qs) self.assertContains(res, "Unable to get log for")
def test_instance_log_exception(self): server = self.servers.first() api.server_console_output(IsA(http.HttpRequest), server.id, tail_length=None) \ .AndRaise(self.exceptions.nova) self.mox.ReplayAll() url = reverse('horizon:project:instances:console', args=[server.id]) tg = InstanceDetailTabs(self.request, instance=server) qs = "?%s=%s" % (tg.param_name, tg.get_tab("log").get_id()) res = self.client.get(url + qs) self.assertContains(res, "Unable to get log for")
def test_instance_log(self): server = self.servers.first() CONSOLE_OUTPUT = "output" api.server_console_output(IsA(http.HttpRequest), server.id, tail_length=None).AndReturn(CONSOLE_OUTPUT) self.mox.ReplayAll() url = reverse("horizon:project:instances:console", args=[server.id]) tg = InstanceDetailTabs(self.request, instance=server) qs = "?%s=%s" % (tg.param_name, tg.get_tab("log").get_id()) res = self.client.get(url + qs) self.assertNoMessages() self.assertIsInstance(res, http.HttpResponse) self.assertContains(res, CONSOLE_OUTPUT)
def test_instance_log(self): server = self.servers.first() CONSOLE_OUTPUT = 'output' api.server_console_output(IsA(http.HttpRequest), server.id, tail_length=None) \ .AndReturn(CONSOLE_OUTPUT) self.mox.ReplayAll() url = reverse('horizon:project:instances:console', args=[server.id]) tg = InstanceDetailTabs(self.request, instance=server) qs = "?%s=%s" % (tg.param_name, tg.get_tab("log").get_id()) res = self.client.get(url + qs) self.assertNoMessages() self.assertIsInstance(res, http.HttpResponse) self.assertContains(res, CONSOLE_OUTPUT)
def get_context_data(self, request): instance = self.tab_group.kwargs['instance'] try: data = api.server_console_output(request, instance.id, tail_length=35) except: data = _('Unable to get log for instance "%s".') % instance.id exceptions.handle(request, ignore=True) return {"instance": instance, "console_log": data}
def console(request, instance_id): try: # TODO(jakedahn): clean this up once the api supports tailing. tail = request.GET.get('length', None) data = api.server_console_output(request, instance_id, tail_length=tail) except: data = _('Unable to get log for instance "%s".') % instance_id exceptions.handle(request, ignore=True) response = http.HttpResponse(mimetype='text/plain') response.write(data) response.flush() return response