From: "Benoît Canet" <benoit.canet@irqsave.net>
To: Eric Blake <eblake@redhat.com>
Cc: kwolf@redhat.com, famz@redhat.com, jcody@redhat.com,
qemu-devel@nongnu.org, armbru@redhat.com, stefanha@redhat.com
Subject: Re: [Qemu-devel] [RFC V3 3/7] qapi: Add skeletton of command to query a drive bs graph.
Date: Thu, 5 Dec 2013 15:24:16 +0100 [thread overview]
Message-ID: <20131205142416.GD2892@irqsave.net> (raw)
In-Reply-To: <529FBEDA.9050409@redhat.com>
Le Wednesday 04 Dec 2013 à 16:46:34 (-0700), Eric Blake a écrit :
> On 12/03/2013 06:26 AM, Benoît Canet wrote:
>
> In addition to Fam's review,
>
> s/skeletton/skeleton/ in subject
>
> > ---
> > blockdev.c | 8 ++++++++
> > qapi-schema.json | 32 ++++++++++++++++++++++++++++++++
> > 2 files changed, 40 insertions(+)
> >
> > diff --git a/blockdev.c b/blockdev.c
> > index a474bb5..824e718 100644
> > --- a/blockdev.c
> > +++ b/blockdev.c
> > @@ -1940,6 +1940,14 @@ void qmp_drive_backup(const char *device, const char *target,
> > }
> > }
> >
> > +BlockGraphNode * qmp_query_drive_graph(const char *device, Error **errp)
>
> Style: no space after *
>
> > +{
> > + /* the implementation of this function would recurse through the
> > + * BlockDriverState graph to build it's result
> > + */
> > + return NULL;
>
> Shouldn't you set errp when returning failure?
>
> > +++ b/qapi-schema.json
> > @@ -2008,6 +2008,38 @@
> > { 'command': 'drive-backup', 'data': 'DriveBackup' }
> >
> > ##
> > +# @BlockGraphNode
> > +#
> > +# Information about a node of the block driver state graph
> > +#
> > +# @node-name: the name of the node in the graph
> > +#
> > +# @drv: the name of the block format used by this node as described in
> > +# @BlockDeviceInfo.
>
> It would be nice if BlockDeviceInfo and BlockGraphNode used an enum
> rather than an open-coded string for this field.
>
> > +#
> > +# @children: a list of @BlockGraphNode being the children of this node
>
> s/being/that are/
>
> > +##
> > +# @query-drive-graph
> > +#
> > +# Get the block driver states graph for a given drive
> > +#
> > +# @device: the name of the device to get the graph from
> > +#
> > +# Returns: the root @BlockGraphNode
> > +#
> > +# Since 1.8
> > +##
> > +{ 'command': 'query-drive-graph',
> > + 'data': { 'device': 'str' },
> > + 'returns': 'BlockGraphNode' }
>
> Am I correct that it will be possible to have named nodes that are not
> currently associated with any device? If so, how do we learn about
> those nodes? Would it be better to have a command that returns an array
> of structs for all known node roots, with an optional member describing
> which device owns that node root? Something like:
The code have a list of all named nodes but not a list of named nodes roots.
Also it's difficult to get the device name for a named node because the bses don't
have any backward pointers to their parents.
It could be done by recursing into all the blockbackend bs but it's twisted.
In fact I am wondering if we really need something to spit out the named nodes
topology in QMP for the simple reason that the names of the nodes are given by the
management so the management should already know the topology.
Best regards
Benoît
>
> # Represent a root of a block graph
> # @root: a named node forming a root of a node graph
> # @device: #optional device name that owns this root
> { 'type': 'BlockGraphRoot',
> 'data': { 'root': 'BlockGraphNode',
> '*device': 'str' } }
>
> # @query_drive-graphs
> # Returns an array of all node graph roots
> { 'command': 'query-drive-graphs',
> 'returns': [ 'BlockGraphRoot' ] }
>
> possibly with 'data':{'*device':'str'} to allow filtering to just a
> 1-element array based on the device name (although I'm not sure if
> providing the complexity of filtering is worth it).
>
> --
> Eric Blake eblake redhat com +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
>
next prev parent reply other threads:[~2013-12-05 14:24 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-03 13:25 [Qemu-devel] [RFC V3 0/7] Giving names to BlockDriverState graph nodes Benoît Canet
2013-12-03 13:25 ` [Qemu-devel] [RFC V3 1/7] block: Add bs->node_name to hold the name of a bs node of the bs graph Benoît Canet
2013-12-04 23:26 ` Eric Blake
2013-12-03 13:26 ` [Qemu-devel] [RFC V3 2/7] block: Allow the user to define "node-name" option Benoît Canet
2013-12-04 23:33 ` Eric Blake
2013-12-03 13:26 ` [Qemu-devel] [RFC V3 3/7] qapi: Add skeletton of command to query a drive bs graph Benoît Canet
2013-12-04 3:10 ` Fam Zheng
2013-12-04 23:46 ` Eric Blake
2013-12-05 14:24 ` Benoît Canet [this message]
2013-12-05 14:38 ` Eric Blake
2013-12-05 14:43 ` Benoît Canet
2013-12-05 14:59 ` Eric Blake
2013-12-05 16:37 ` Benoît Canet
2013-12-03 13:26 ` [Qemu-devel] [RFC V3 4/7] qmp: Allow block_passwd to manipulate bs graph nodes Benoît Canet
2013-12-04 23:56 ` Eric Blake
2013-12-05 14:12 ` Benoît Canet
2013-12-03 13:26 ` [Qemu-devel] [RFC V3 5/7] qmp: Allow block_resize " Benoît Canet
2013-12-05 0:01 ` Eric Blake
2013-12-03 13:26 ` [Qemu-devel] [RFC V3 6/7] block: Create authorizations mechanism for external snapshots Benoît Canet
2013-12-04 3:35 ` Fam Zheng
2013-12-04 5:22 ` Benoît Canet
2013-12-04 3:47 ` Fam Zheng
2013-12-04 5:20 ` Benoît Canet
2013-12-04 6:12 ` Fam Zheng
2013-12-04 6:34 ` Benoît Canet
2013-12-04 7:03 ` Fam Zheng
2013-12-05 14:52 ` Benoît Canet
2013-12-03 13:26 ` [Qemu-devel] [RFC V3 7/7] qmp: Allow to take external snapshots on bs graphs node Benoît Canet
2013-12-04 3:51 ` Fam Zheng
2013-12-04 5:15 ` Benoît Canet
2013-12-05 0:11 ` Eric Blake
2013-12-05 14:16 ` Benoît Canet
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=20131205142416.GD2892@irqsave.net \
--to=benoit.canet@irqsave.net \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=famz@redhat.com \
--cc=jcody@redhat.com \
--cc=kwolf@redhat.com \
--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).