:param request: :return:
(request)
| 10 | |
| 11 | |
| 12 | def console(request): |
| 13 | """ |
| 14 | :param request: |
| 15 | :return: |
| 16 | """ |
| 17 | |
| 18 | if not request.user.is_authenticated(): |
| 19 | return HttpResponseRedirect(reverse('login')) |
| 20 | |
| 21 | if request.method == 'GET': |
| 22 | token = request.GET.get('token', '') |
| 23 | |
| 24 | try: |
| 25 | temptoken = token.split('-', 1) |
| 26 | host = int(temptoken[0]) |
| 27 | uuid = temptoken[1] |
| 28 | instance = Instance.objects.get(compute_id=host, uuid=uuid) |
| 29 | conn = wvmInstance(instance.compute.hostname, |
| 30 | instance.compute.login, |
| 31 | instance.compute.password, |
| 32 | instance.compute.type, |
| 33 | instance.name) |
| 34 | console_type = conn.get_console_type() |
| 35 | console_websocket_port = conn.get_console_websocket_port() |
| 36 | console_passwd = conn.get_console_passwd() |
| 37 | except libvirtError as lib_err: |
| 38 | console_type = None |
| 39 | console_websocket_port = None |
| 40 | console_passwd = None |
| 41 | |
| 42 | ws_port = console_websocket_port if console_websocket_port else WS_PORT |
| 43 | ws_host = WS_PUBLIC_HOST if WS_PUBLIC_HOST else request.get_host() |
| 44 | |
| 45 | if ':' in ws_host: |
| 46 | ws_host = re.sub(':[0-9]+', '', ws_host) |
| 47 | |
| 48 | if console_type == 'vnc': |
| 49 | response = render(request, 'console-vnc.html', locals()) |
| 50 | elif console_type == 'spice': |
| 51 | response = render(request, 'console-spice.html', locals()) |
| 52 | else: |
| 53 | response = "Console type %s no support" % console_type |
| 54 | |
| 55 | response.set_cookie('token', token) |
| 56 | return response |
nothing calls this directly
no test coverage detected