On 2015-01-28 at 14:58, Eric Blake wrote:
On 01/27/2015 12:46 PM, Max Reitz wrote:
Signed-off-by: Max Reitz <mre...@redhat.com>
---
blockdev.c | 22 ++++++++++++++++++++++
qapi/block-core.json | 14 ++++++++++++++
qmp-commands.hx | 33 +++++++++++++++++++++++++++++++++
3 files changed, 69 insertions(+)
+void qmp_blockdev_close_tray(const char *device, Error **errp)
+{
+ BlockBackend *blk;
+
+ blk = blk_by_name(device);
+ if (!blk) {
+ error_set(errp, QERR_DEVICE_NOT_FOUND, device);
+ return;
+ }
+
+ if (!blk_dev_has_removable_media(blk)) {
+ error_setg(errp, "Device '%s' is not removable", device);
+ return;
+ }
+
+ if (!blk_dev_is_tray_open(blk)) {
+ return;
+ }
Is it worth documenting that this (and the one in 38/50) are intentional
no-ops if the tray is already in the desired state?
There's certainly no harm in documenting it, so I might as well just do it.
Max
Reviewed-by: Eric Blake <ebl...@redhat.com>