Expose serial ports from VMs
Make serial ports available to Openstack users from VMs
Blueprint information
- Status:
- Complete
- Approver:
- John Garbutt
- Priority:
- Low
- Drafter:
- Vladan Popovic
- Direction:
- Approved
- Assignee:
- Vladan Popovic
- Definition:
- Approved
- Series goal:
- Accepted for juno
- Implementation:
- Implemented
- Milestone target:
- 2014.2
- Started by
- Ian Wells
- Completed by
- Michael Still
Related branches
Related bugs
Sprints
Whiteboard
Is it possible to get a another interface wouldn't require a web browser and that we could access from a standard terminal (maybe telnet first and ssh later)? I'd be happy to help out - is the code posted somewhere? -- Zak
Well, using websockets you get authentication, which is the benefit - and you can easily write a client app or use one that exists (such as wssh). Or you can just come up with your own proxy.
The code's written, not tested and not currently publicly posted (I'm stretched a bit thin at the moment). I'll try and get it up somewhere. -- Ian.
If you can get the code up somewhere, I'll have some time in the next month to work on it. -liko
Spec updated and open for comment. Trying to get the code through our open source process... -- Ian.
I got the code from Ian and his permission to publish it so I could continue with the implementation and getting it to the review process if nobody else has the time. I took a quick peak and it's a relatively big patch since it contains the javascript term emulator and a bunch of api samples, the websocket proxy implementation, libvirt config to open a tcp cnannel for the serial port, nova commands that print out the serial console access URL, unittests, etc. I'll post the complete code and then split it up into multiple patches.
I'd do the required steps to push it to the review process and try to make it for icehouse.
It's also possible to open a serial channel through SPICE, but unfortunately libvirt doesn't (yet) expose the XML config to open a spice serial channel [1]. The libvirt team has their hands on this and will try to make it as soon as possible.
[1] http://
-- Vladan
SPICE is the right architectural approach for exposing serial port access, since it provides a seemless user experience across graphical display, soundcard input/output, USB device redirection, smartcard integration, and serial ports. It is still possible to create a 100% serial port text mode only client for SPICE - there's no fundamental GUI dependency there. This avoids us having the burden in maintaining a huge pile more code. -- (almost certainly Daniel)
SPICE is much nicer. It's also qemu-specific. I think we need a longer discussion on the long term approach for this. The question is whether to put the serialproxy stuff in as a stopgap. I would seriously appreciate having it available upstream (I've had that patch in various forms since Folsom) and I assume Vladan also has his motives; I've also had a few other pings for serial port functionality. -- Ian.
https:/
Well, using websockets you get authentication, which is the benefit - and you can easily write a client app or use one that exists (such as wssh). Or you can just come up with your own proxy.
The code's written, not tested and not currently publicly posted (I'm stretched a bit thin at the moment). I'll try and get it up somewhere. -- Ian.
If you can get the code up somewhere, I'll have some time in the next month to work on it. -liko
Spec updated and open for comment. Trying to get the code through our open source process... -- Ian.
I got the code from Ian and his permission to publish it so I could continue with the implementation and getting it to the review process if nobody else has the time. I took a quick peak and it's a relatively big patch since it contains the javascript term emulator and a bunch of api samples, the websocket proxy implementation, libvirt config to open a tcp cnannel for the serial port, nova commands that print out the serial console access URL, unittests, etc. I'll post the complete code and then split it up into multiple patches.
I'd do the required steps to push it to the review process and try to make it for icehouse.
It's also possible to open a serial channel through SPICE, but unfortunately libvirt doesn't (yet) expose the XML config to open a spice serial channel [1]. The libvirt team has their hands on this and will try to make it as soon as possible.
[1] http://
-- Vladan
SPICE is the right architectural approach for exposing serial port access, since it provides a seemless user experience across graphical display, soundcard input/output, USB device redirection, smartcard integration, and serial ports. It is still possible to create a 100% serial port text mode only client for SPICE - there's no fundamental GUI dependency there. This avoids us having the burden in maintaining a huge pile more code. -- (almost certainly Daniel)
SPICE is much nicer. It's also qemu-specific. I think we need a longer discussion on the long term approach for this. The question is whether to put the serialproxy stuff in as a stopgap. I would seriously appreciate having it available upstream (I've had that patch in various forms since Folsom) and I assume Vladan also has his motives; I've also had a few other pings for serial port functionality. -- Ian.
https:/
If you are still working on this, please re-submit via nova-specs. If not, please mark as obsolete, and add a quick comment to describe why. --johnthetubaguy (20th April 2014)
Gerrit topic: https:/
Addressed by: https:/
Expose serial ports through a web interface
Addressed by: https:/
libvirt: add serial ports config
Addressed by: https:/
libvirt: add serial console driver setup
Addressed by: https:/
libvirt: get the serial console from the driver
Addressed by: https:/
Add serial console in compute manager
Addressed by: https:/
Add nova-serialproxy service
Addressed by: https:/
Add serial consoles rpc and cells api calls
Addressed by: https:/
Add serial console consoleauth methods
Addressed by: https:/
Add serial console API calls
Addressed by: https:/
Add serial consoles to v3 API
Addressed by: https:/
console: add serial console module
Addressed by: https:/
console: add typed console objects
All patches in the gate, leaving in juno. --johnthetubaguy 2nd September 2014
Sorry, this has now missed Feature Freeze. Please consider applying for a FFE for this already approved code. --johnthetubaguy 4th September 2014
FFE approved --johnthetubaguy 5ht September 2014
Gerrit topic: https:/
Addressed by: https:/
console: make websocketproxy handles token from path