
This patch adds a new console type, "spice-direct", which provides the connection information required to talk the native SPICE protocol directly to qemu on the hypervisor. This is intended to be fronted by a proxy which will handle authentication separately. A new microversion is introduced which adds the type "spice-direct" to the existing "spice" protocol. An example request: POST /servers/<uuid>/remote-consoles { "remote_console": { "protocol": "spice", "type": "spice-direct" } } An example response: { "remote_console": { "protocol": "spice", "type": "spice-direct", "url": "http://localhost:13200/nova?token=XXX"; } } This token can then be used to lookup connection details for the console using a request like this: GET /os-console-auth-tokens/<consoletoken> Which returns something like this: { "console": { "instance_uuid": <uuid>, "host": <hypervisor>, "port": <a TCP port number>, "tls_port": <another TCP port number>, "internal_access_path": null } } APIImpact Change-Id: I1e701cbabc0e2c435685e31465159eec09e3b1a0
120 lines
3.2 KiB
ReStructuredText
120 lines
3.2 KiB
ReStructuredText
.. -*- rst -*-
|
|
|
|
=================
|
|
Server Consoles
|
|
=================
|
|
|
|
Manage server consoles.
|
|
|
|
Create Console
|
|
==============
|
|
|
|
.. rest_method:: POST /servers/{server_id}/remote-consoles
|
|
|
|
.. note:: Microversion 2.6 or greater is required for this API.
|
|
|
|
The API provides a unified request for creating a remote console. The user can
|
|
get a URL to connect the console from this API. The URL includes the token
|
|
which is used to get permission to access the console. Servers may support
|
|
different console protocols. To return a remote console using a specific
|
|
protocol, such as VNC, set the ``protocol`` parameter to ``vnc``.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404),
|
|
conflict(409), notImplemented(501)
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
|
|
- server_id: server_id_path
|
|
- remote_console: remote_console
|
|
- protocol: remote_console_protocol
|
|
- type: remote_console_type
|
|
|
|
**Example Get Remote VNC Console**
|
|
|
|
.. literalinclude:: ../../doc/api_samples/os-remote-consoles/v2.6/create-vnc-console-req.json
|
|
:language: javascript
|
|
|
|
**Example Get Remote spice-direct Console**
|
|
|
|
*``spice-direct`` consoles were added in microversion 2.99.*
|
|
|
|
.. literalinclude:: ../../doc/api_samples/os-remote-consoles/v2.99/create-spice-direct-console-req.json
|
|
:language: javascript
|
|
|
|
Response
|
|
--------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- remote_console: remote_console
|
|
- protocol: remote_console_protocol
|
|
- type: remote_console_type
|
|
- url: remote_console_url
|
|
|
|
**Example Get Remote VNC Console**
|
|
|
|
.. literalinclude:: ../../doc/api_samples/os-remote-consoles/v2.6/create-vnc-console-resp.json
|
|
:language: javascript
|
|
|
|
**Example Get Remote spice-direct Console**
|
|
|
|
*``spice-direct`` consoles were added in microversion 2.99.*
|
|
|
|
.. literalinclude:: ../../doc/api_samples/os-remote-consoles/v2.99/create-spice-direct-console-resp.json
|
|
:language: javascript
|
|
|
|
Show Console Connection Information
|
|
===================================
|
|
|
|
.. rest_method:: GET /os-console-auth-tokens/{console_token}
|
|
|
|
Given the console authentication token for a server, shows the related
|
|
connection information.
|
|
|
|
Nova HyperV driver has been removed therefore requests for RDP console connection
|
|
information will always return an http 400 error. Starting from microversion 2.31
|
|
it's available for all other console types.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: badRequest(400), unauthorized(401), forbidden(403),
|
|
itemNotFound(404)
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- console_token: console_token
|
|
|
|
|
|
Response
|
|
--------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- console: console
|
|
- instance_uuid: instance_id_body
|
|
- host: console_host
|
|
- port: port_number
|
|
- tls_port: tls_port_number
|
|
- internal_access_path: internal_access_path
|
|
|
|
**Example Show Console Authentication Token**
|
|
|
|
.. literalinclude:: ../../doc/api_samples/os-console-auth-tokens/v2.31/get-console-connect-info-get-resp.json
|
|
:language: javascript
|
|
|
|
**Example Console Connection Information for a spice-direct Console**
|
|
|
|
*``spice-direct`` consoles were added in microversion 2.99.*
|
|
|
|
.. literalinclude:: ../../doc/api_samples/os-console-auth-tokens/v2.99/get-console-connect-info-get-resp.json
|
|
:language: javascript
|