qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Coiby Xu <coiby.xu@gmail.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-block@nongnu.org, qemu-devel@nongnu.org, armbru@redhat.com,
	stefanha@redhat.com, mreitz@redhat.com
Subject: Re: [PATCH v2 08/20] qemu-storage-daemon: Add --object option
Date: Wed, 10 Jun 2020 07:25:11 +0800	[thread overview]
Message-ID: <20200609232511.ucfrpj2ftfmbtfwf@r> (raw)
In-Reply-To: <20200224143008.13362-9-kwolf@redhat.com>

On Mon, Feb 24, 2020 at 03:29:56PM +0100, Kevin Wolf wrote:
>Add a command line option to create user-creatable QOM objects.
>
>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
>---
> qemu-storage-daemon.c | 47 +++++++++++++++++++++++++++++++++++++++++++
> Makefile.objs         |  2 +-
> qom/Makefile.objs     |  1 +
> 3 files changed, 49 insertions(+), 1 deletion(-)
>
>diff --git a/qemu-storage-daemon.c b/qemu-storage-daemon.c
>index c30caaf59e..0cd8144c81 100644
>--- a/qemu-storage-daemon.c
>+++ b/qemu-storage-daemon.c
>@@ -33,15 +33,19 @@
> #include "qapi/error.h"
> #include "qapi/qapi-visit-block-core.h"
> #include "qapi/qapi-commands-block-core.h"
>+#include "qapi/qmp/qdict.h"
> #include "qapi/qobject-input-visitor.h"
>
> #include "qemu-common.h"
> #include "qemu-version.h"
> #include "qemu/config-file.h"
> #include "qemu/error-report.h"
>+#include "qemu/help_option.h"
> #include "qemu/log.h"
> #include "qemu/main-loop.h"
> #include "qemu/module.h"
>+#include "qemu/option.h"
>+#include "qom/object_interfaces.h"
>
> #include "trace/control.h"
>
>@@ -63,12 +67,31 @@ static void help(void)
> "             [,driver specific parameters...]\n"
> "                         configure a block backend\n"
> "\n"
>+"  --object help          list object types that can be added\n"
>+"  --object <type>,help   list properties for the given object type\n"
>+"  --object <type>[,<property>=<value>...]\n"
>+"                         create a new object of type <type>, setting\n"
>+"                         properties in the order they are specified. Note\n"
>+"                         that the 'id' property must be set.\n"
>+"                         See the qemu(1) man page for documentation of the\n"
>+"                         objects that can be added.\n"
>+"\n"
> QEMU_HELP_BOTTOM "\n",
>     error_get_progname());
> }
>
> enum {
>     OPTION_BLOCKDEV = 256,
>+    OPTION_OBJECT,
>+};
>+
>+static QemuOptsList qemu_object_opts = {
>+    .name = "object",
>+    .implied_opt_name = "qom-type",
>+    .head = QTAILQ_HEAD_INITIALIZER(qemu_object_opts.head),
>+    .desc = {
>+        { }
>+    },
> };
>
I'm not sure whether qemu-storage-daemon's QMP monitor is supposed to support
`object-del` or not. If it's yes, we should add `qemu_add_opts(&qemu_object_opts);`,
otherwise, qemu-storage-daemon will exit with the following error,


    Unexpected error in find_list() at util/qemu-config.c:24:

The steps to reproduce this error,

   1. start qemu-storage-daemon

     ./qemu-storage-daemon --object iothread,id=iothread0 --chardev socket,id=qmp,path=abc,server,nowait --monitor chardev=qmp

   2. send object-del command

     echo '{ "execute": "qmp_capabilities" }'\
             '{ 'object-del', 'arguments': {'id': 'iothread0'} }'\
             '{ "execute": "quit" } ' | socat - UNIX-CONNECT:abc


  parent reply	other threads:[~2020-06-09 23:26 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-24 14:29 [PATCH v2 00/20] Add qemu-storage-daemon Kevin Wolf
2020-02-24 14:29 ` [PATCH v2 01/20] qemu-storage-daemon: Add barebone tool Kevin Wolf
2020-02-24 14:29 ` [PATCH v2 02/20] stubs: Add arch_type Kevin Wolf
2020-02-24 14:29 ` [PATCH v2 03/20] block: Move system emulator QMP commands to block/qapi-sysemu.c Kevin Wolf
2020-02-24 14:29 ` [PATCH v2 04/20] block: Move common QMP commands to block-core QAPI module Kevin Wolf
2020-02-24 14:29 ` [PATCH v2 05/20] block: Move sysemu QMP commands to QAPI block module Kevin Wolf
2020-02-24 14:29 ` [PATCH v2 06/20] qemu-storage-daemon: Add --blockdev option Kevin Wolf
2020-02-24 14:29 ` [PATCH v2 07/20] qapi: Flatten object-add Kevin Wolf
2020-02-24 14:29 ` [PATCH v2 08/20] qemu-storage-daemon: Add --object option Kevin Wolf
2020-04-16  5:20   ` Coiby Xu
2020-06-09 23:25   ` Coiby Xu [this message]
2020-02-24 14:29 ` [PATCH v2 09/20] qemu-storage-daemon: Add --nbd-server option Kevin Wolf
2020-02-24 14:29 ` [PATCH v2 10/20] blockdev-nbd: Boxed argument type for nbd-server-add Kevin Wolf
2020-02-24 14:29 ` [PATCH v2 11/20] qemu-storage-daemon: Add --export option Kevin Wolf
2020-02-24 14:30 ` [PATCH v2 12/20] qemu-storage-daemon: Add main loop Kevin Wolf
2020-02-24 14:30 ` [PATCH v2 13/20] qemu-storage-daemon: Add --chardev option Kevin Wolf
2020-02-24 14:30 ` [PATCH v2 14/20] stubs: Update monitor stubs for qemu-storage-daemon Kevin Wolf
2020-02-24 14:30 ` [PATCH v2 15/20] qapi: Create 'pragma' module Kevin Wolf
2020-02-24 14:30 ` [PATCH v2 16/20] monitor: Create QAPIfied monitor_init() Kevin Wolf
2020-02-24 14:30 ` [PATCH v2 17/20] qmp: Fail gracefully if chardev is already in use Kevin Wolf
2020-02-24 14:30 ` [PATCH v2 18/20] hmp: " Kevin Wolf
2020-02-24 14:30 ` [PATCH v2 19/20] monitor: Add allow_hmp parameter to monitor_init() Kevin Wolf
2020-02-24 14:30 ` [PATCH v2 20/20] qemu-storage-daemon: Add --monitor option Kevin Wolf
2020-02-24 15:34 ` [PATCH v2 00/20] Add qemu-storage-daemon no-reply
2020-02-28 11:16 ` Stefan Hajnoczi
2020-03-03 17:00   ` Kevin Wolf

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=20200609232511.ucfrpj2ftfmbtfwf@r \
    --to=coiby.xu@gmail.com \
    --cc=armbru@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).