Hyper-V RDP console access

Registered by Alessandro Pilotti

Hyper-V, unlike the majority of the hypervisors employed on Nova compute nodes, uses RDP instead of VNC as a desktop sharing protocol to provide instance console access, which means that novnc / xvpvnc are not a viable options for providing console connections to Hyper-V hosted instances.

Goals:

1) Add Hyper-V RDP console access support to Openstack
2) From a user perspective, console access should be handled in a way as consistent as possible between hypervisors.

User oriented docs: http://wiki.cloudbase.it/nova-rdp

Blueprint information

Status:
Complete
Approver:
Russell Bryant
Priority:
Medium
Drafter:
Alessandro Pilotti
Direction:
Approved
Assignee:
Alessandro Pilotti
Definition:
Approved
Series goal:
Accepted for icehouse
Implementation:
Implemented
Milestone target:
milestone icon 2014.1
Started by
Russell Bryant
Completed by
Joe Gordon

Related branches

Sprints

Whiteboard

nova-core sponsors: russellb

I'm happy with the design direction this has taken. The biggest thing missing before I think we can approve it is some clear user-level documentation for the openstack docs team to consume. It can be on a wiki page linked from this blueprint. Ping me when something is written up and I can approve this. --russellb

Notes:

We already implemented a working HTML5/Websocket RDP console prototype based on extensions provided to FreeRDP-WebConnect. From a feature perspective, the implementation is consistent with the existing novnc console access.

There are a few areas that need to be discussed:

1) nova-consoleauth token validation uses Nova internal RPC APIs. A public (REST) API for token validation is required to allow external components (e.g. FreeRDP-WebConnect) to manage console access consistently.

2) There's currently a very tight coupling between console features and protocols, leading to a proliferation of methods in the compute drivers (get_vnc_console, get_spice_console). It would be detrimental to add another implementation (e.g. get_rdp_console) instead of thinking about some form of refactoring. The RDP console can be easily managed by providing a "get_vnc_console" implementation, but the name should be changed in order to guarantee consistency and to decouple the feature from the protocol.

User level documentation: http://wiki.cloudbase.it/nova-rdp

API Documentation: http://wiki.cloudbase.it/nova-rdp-api

Gerrit topic: https://review.openstack.org/#q,topic:bp/hyper-v-rdp-console,n,z

Addressed by: https://review.openstack.org/41265
    Adds get_console_connect_info API

Addressed by: https://review.openstack.org/43312
    Hyper-V driver RDP console access support

Addressed by: https://review.openstack.org/39195
    Improves Hyper-V vmutils module for subclassing

Addressed by: https://review.openstack.org/38160
    Adds support for Hyper-V WMI V2 namespace

Addressed by: https://review.openstack.org/43502
    Adds RDP console support

Deferred to icehouse-3 as the blueprint was not approved by the icehouse-2 blueprint approval deadline. --russellb

One last patch:
==================================

Addressed by: https://review.openstack.org/41265
    Adds get_console_connect_info API

Moving to medium as it would be bad not to have this feature for the sake of this one patch!! --johnthetubaguy (28th Feb 14)

Marking as Implemented, the final patch has merged. jogo (3 Mar 14)

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.