Most of them are outdated, but provide historical design context.
They are not user documentation and should not be treated as such.
Documentation is available here.
Allow users to take screenshot of a running VM
- Name: Saif Abu Saleh (sabusale)
- Email: email@example.com
Users need a way to see the current state of their VMs for debug purposes, when they don’t have console access
VDSM will call Libvirt screenshot API 
Libvirt will call QEMU to capture the screenshot
then VDSM will return
ppm file content as base64 string
Backend will call VDSM to capture screenshot and will receive base64 string screenshot and then base64 string will be converted to byte array and returned
Rest API will call Backend to capture the screenshot
Rest API call is synchronous operation
Rest API implementation is intended for debugging only
API call Example:
POST /vms/1234/screenshot Accept: application/xml
Response is a byte array of the screenshot
Image format issues
ppm is not a standard screenshot format, and users may have issues to see the screenshot, and it is not straight forward
to display it in HTML, unlike e.g.
issue opened to QEMU to add screen dump as PNG
other option is to convert the
ppm content to other standard format like
ways to convert it:
- Convert it in VDSM using PIL image library: example
- In Engine use java API to convert it using ImageMagick
- Add the functionality to web UI
Libvirt screenshot API provides option to capture screenshot by screen number (in case there are multiple screens).
for now by default 0 only used(first screen), add the option to take screenshot by screen number
- Change generate screenshot API call to be asynchronous