All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, mreitz@redhat.com, eblake@redhat.com,
	qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 07/10] block: Accept device model name for eject
Date: Fri, 19 Aug 2016 18:50:32 +0200	[thread overview]
Message-ID: <1471625435-6190-8-git-send-email-kwolf@redhat.com> (raw)
In-Reply-To: <1471625435-6190-1-git-send-email-kwolf@redhat.com>

In order to remove the necessity to use BlockBackend names in the
external API, we want to allow qdev device names in all device related
commands.

This converts eject to accept a qdev device name.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 blockdev.c      | 10 +++++++---
 hmp.c           |  2 +-
 qapi/block.json |  7 ++++++-
 qmp-commands.hx |  8 +++++---
 4 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/blockdev.c b/blockdev.c
index 77cf8db..7bed3f6 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -2263,7 +2263,9 @@ exit:
     block_job_txn_unref(block_job_txn);
 }
 
-void qmp_eject(const char *device, bool has_force, bool force, Error **errp)
+void qmp_eject(bool has_device, const char *device,
+               bool has_id, const char *id,
+               bool has_force, bool force, Error **errp)
 {
     Error *local_err = NULL;
     int rc;
@@ -2272,14 +2274,16 @@ void qmp_eject(const char *device, bool has_force, bool force, Error **errp)
         force = false;
     }
 
-    rc = do_open_tray(device, NULL, force, &local_err);
+    rc = do_open_tray(has_device ? device : NULL,
+                      has_id ? id : NULL,
+                      force, &local_err);
     if (rc && rc != -ENOSYS) {
         error_propagate(errp, local_err);
         return;
     }
     error_free(local_err);
 
-    qmp_x_blockdev_remove_medium(true, device, false, NULL, errp);
+    qmp_x_blockdev_remove_medium(has_device, device, has_id, id, errp);
 }
 
 void qmp_block_passwd(bool has_device, const char *device,
diff --git a/hmp.c b/hmp.c
index ad33b44..fbd451a 100644
--- a/hmp.c
+++ b/hmp.c
@@ -1376,7 +1376,7 @@ void hmp_eject(Monitor *mon, const QDict *qdict)
     const char *device = qdict_get_str(qdict, "device");
     Error *err = NULL;
 
-    qmp_eject(device, true, force, &err);
+    qmp_eject(true, device, false, NULL, true, force, &err);
     hmp_handle_error(mon, &err);
 }
 
diff --git a/qapi/block.json b/qapi/block.json
index 8b08bd2..8234cca 100644
--- a/qapi/block.json
+++ b/qapi/block.json
@@ -127,6 +127,8 @@
 #
 # @device:  The name of the device
 #
+# @id:      The name or QOM path of the guest device (since: 2.8)
+#
 # @force:   @optional If true, eject regardless of whether the drive is locked.
 #           If not specified, the default value is false.
 #
@@ -137,7 +139,10 @@
 #
 # Since: 0.14.0
 ##
-{ 'command': 'eject', 'data': {'device': 'str', '*force': 'bool'} }
+{ 'command': 'eject',
+  'data': { '*device': 'str',
+            '*id': 'str',
+            '*force': 'bool' } }
 
 ##
 # @nbd-server-start:
diff --git a/qmp-commands.hx b/qmp-commands.hx
index 6f10cdf..8822fd5 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -83,7 +83,7 @@ EQMP
 
     {
         .name       = "eject",
-        .args_type  = "force:-f,device:B",
+        .args_type  = "force:-f,device:B?,id:s?",
         .mhandler.cmd_new = qmp_marshal_eject,
     },
 
@@ -95,8 +95,10 @@ Eject a removable medium.
 
 Arguments: 
 
-- force: force ejection (json-bool, optional)
-- device: device name (json-string)
+- "force": force ejection (json-bool, optional)
+- "device": block device name (deprecated, use @id instead)
+            (json-string, optional)
+- "id": the name or QOM path of the guest device (json-string, optional)
 
 Example:
 
-- 
1.8.3.1

  parent reply	other threads:[~2016-08-19 16:51 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-19 16:50 [Qemu-devel] [PATCH 00/10] block: Accept qdev IDs in device level QMP commands Kevin Wolf
2016-08-19 16:50 ` [Qemu-devel] [PATCH 01/10] block: Add blk_by_dev() Kevin Wolf
2016-08-19 16:50 ` [Qemu-devel] [PATCH 02/10] qdev-monitor: Factor out find_device_state() Kevin Wolf
2016-08-19 16:50 ` [Qemu-devel] [PATCH 03/10] qdev-monitor: Add blk_by_qdev_id() Kevin Wolf
2016-08-19 16:50 ` [Qemu-devel] [PATCH 04/10] block: Accept device model name for blockdev-open/close-tray Kevin Wolf
2016-09-14 20:49   ` Eric Blake
2016-09-15  8:35     ` Kevin Wolf
2016-09-15 15:51       ` Eric Blake
2016-09-19 15:10         ` Kevin Wolf
2016-08-19 16:50 ` [Qemu-devel] [PATCH 05/10] block: Accept device model name for x-blockdev-insert-medium Kevin Wolf
2016-09-14 20:57   ` Eric Blake
2016-09-15  8:37     ` Kevin Wolf
2016-09-15 15:53       ` Eric Blake
2016-08-19 16:50 ` [Qemu-devel] [PATCH 06/10] block: Accept device model name for x-blockdev-remove-medium Kevin Wolf
2016-09-14 21:01   ` Eric Blake
2016-08-19 16:50 ` Kevin Wolf [this message]
2016-09-14 21:09   ` [Qemu-devel] [PATCH 07/10] block: Accept device model name for eject Eric Blake
2016-08-19 16:50 ` [Qemu-devel] [PATCH 08/10] block: Accept device model name for blockdev-change-medium Kevin Wolf
2016-09-14 22:06   ` Eric Blake
2016-08-19 16:50 ` [Qemu-devel] [PATCH 09/10] block: Accept device model name for block_set_io_throttle Kevin Wolf
2016-09-14 22:07   ` Eric Blake
2016-08-19 16:50 ` [Qemu-devel] [PATCH 10/10] qemu-iotests/118: Test media change with qdev name Kevin Wolf
2016-09-14 22:13   ` Eric Blake
2016-09-15  8:47     ` Kevin Wolf
2016-09-15 16:16     ` Sascha Silbe
2016-09-15 16:23       ` Eric Blake
2016-09-15 16:28       ` Sascha Silbe
2016-09-15 16:33         ` Eric Blake
2016-09-15 17:57           ` Sascha Silbe
2016-09-05 15:55 ` [Qemu-devel] [PATCH 00/10] block: Accept qdev IDs in device level QMP commands Kevin Wolf
2016-09-14 13:03   ` [Qemu-devel] [Qemu-block] " Kevin Wolf
2016-09-14 21:52     ` John Snow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1471625435-6190-8-git-send-email-kwolf@redhat.com \
    --to=kwolf@redhat.com \
    --cc=eblake@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.