def get_console(request, vm, args): # Normal Response Code: 200 # Error Response Codes: computeFault (400, 500), # serviceUnavailable (503), # unauthorized (401), # badRequest (400), # badMediaType(415), # itemNotFound (404), # buildInProgress (409), # overLimit (413) log.info("Get console VM %s: %s", vm, args) console_type = args.get("type") if console_type is None: raise faults.BadRequest("No console 'type' specified.") supported_types = ['vnc', 'vnc-ws', 'vnc-wss'] if console_type not in supported_types: raise faults.BadRequest('Supported types: %s' % ', '.join(supported_types)) console_info = servers.console(vm, console_type) if request.serialization == 'xml': mimetype = 'application/xml' data = render_to_string('console.xml', {'console': console_info}) else: mimetype = 'application/json' data = json.dumps({'console': console_info}) return HttpResponse(data, mimetype=mimetype, status=200)
def get_console(request, vm, args): # Normal Response Code: 200 # Error Response Codes: computeFault (400, 500), # serviceUnavailable (503), # unauthorized (401), # badRequest (400), # badMediaType(415), # itemNotFound (404), # buildInProgress (409), # overLimit (413) log.debug("User: %s, VM: %s, Action: get_console, Request: %s", request.user_uniq, vm.id, args) console_type = args.get("type") if console_type is None: raise faults.BadRequest("No console 'type' specified.") supported_types = ['vnc', 'vnc-ws', 'vnc-wss'] if console_type not in supported_types: raise faults.BadRequest('Supported types: %s' % ', '.join(supported_types)) console_info = servers.console(vm, console_type) if request.serialization == 'xml': mimetype = 'application/xml' data = render_to_string('console.xml', {'console': console_info}) else: mimetype = 'application/json' data = json.dumps({'console': console_info}) log.info("User %s got console for VM %s", request.user_uniq, vm.id) return HttpResponse(data, mimetype=mimetype, status=200)
def get_console(request, vm, args): # Normal Response Code: 200 # Error Response Codes: computeFault (400, 500), # serviceUnavailable (503), # unauthorized (401), # badRequest (400), # badMediaType(415), # itemNotFound (404), # buildInProgress (409), # overLimit (413) log.info("Get console VM %s: %s", vm, args) console_type = args.get("type") if console_type is None: raise faults.BadRequest("No console 'type' specified.") elif console_type != "vnc": raise faults.BadRequest("Console 'type' can only be 'vnc'.") console_info = servers.console(vm, console_type) if request.serialization == 'xml': mimetype = 'application/xml' data = render_to_string('console.xml', {'console': console_info}) else: mimetype = 'application/json' data = json.dumps({'console': console_info}) return HttpResponse(data, mimetype=mimetype, status=200)
def os_get_vnc_console(request, server_id, args): # Normal Response Code: 200 # Error Response Codes: computeFault (400, 500), # serviceUnavailable (503), # unauthorized (401), # badRequest (400), # badMediaType(415), # itemNotFound (404), # buildInProgress (409), # overLimit (413) credentials = request.credentials log.debug("User: %s, VM: %s, Action: get_osVNC console, Request: %s", credentials.userid, server_id, args) console_type = args.get('type') if console_type is None: raise faults.BadRequest("No console 'type' specified.") supported_types = {'novnc': 'vnc-wss', 'xvpvnc': 'vnc'} if console_type not in supported_types: raise faults.BadRequest('Supported types: %s' % ', '.join(supported_types.keys())) console_info = servers.console(server_id, supported_types[console_type], credentials=credentials) global machines_console_url if machines_console_url is None: machines_console_url = reverse('synnefo.ui.views.machines_console') if console_type == 'novnc': # Return the URL of the WebSocket noVNC client url = settings.CYCLADES_BASE_URL + machines_console_url url += '?host=%(host)s&port=%(port)s&password=%(password)s' else: # Return a URL to paste into a Java VNC client # FIXME: VNC clients (and the TigerVNC Java applet) can't handle the # password. url = '%(host)s:%(port)s?password=%(password)s' resp = {'type': console_type, 'url': url % console_info} if request.serialization == 'xml': mimetype = 'application/xml' data = render_to_string('os-console.xml', {'console': resp}) else: mimetype = 'application/json' data = json.dumps({'console': resp}) log.info("User %s got VNC console for VM %s", credentials.userid, server_id) return HttpResponse(data, content_type=mimetype, status=200)