[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v6 3/4] qmp: add monitor command to add/remove a
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-block] [PATCH v6 3/4] qmp: add monitor command to add/remove a child |
Date: |
Mon, 9 Nov 2015 17:04:17 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 16.10.2015 um 10:57 hat Wen Congyang geschrieben:
> +##
> +# @ChangeOperation:
> +#
> +# An enumeration of block device change operation.
> +#
> +# @add: Add a new block driver state to a existed block driver state.
> +#
> +# @delete: Delete a block driver state's child.
> +#
> +# Since: 2.5
> +##
> +{ 'enum': 'ChangeOperation',
> + 'data': [ 'add', 'delete' ] }
What's the advantage of this enum compared to separate QMP commands? The
way it is specified here, ChangeOperation is already implicit by whether
or not child and node are given.
> +##
> +# @x-blockdev-change
> +#
> +# Dynamic reconfigure the block driver state graph. It can be used to
> +# add, remove, insert, replace a block driver state. Currently only
> +# the Quorum driver implements this feature to add and remove its child.
> +# This is useful to fix a broken quorum child.
> +#
> +# @operation: the chanage operation. It can be add, delete.
> +#
> +# @parent: the id or node name of which node will be changed.
> +#
> +# @child: the child node-name which will be deleted.
#optional
Must be present for operation = delete, must not be present otherwise.
> +# @node: the new node-name which will be added.
#optional
Must be present for operation = add, must not be present otherwise.
> +#
> +# Note: this command is experimental, and not a stable API.
> +#
> +# Since: 2.5
> +##
> +{ 'command': 'x-blockdev-change',
> + 'data' : { 'operation': 'ChangeOperation',
> + 'parent': 'str',
> + '*child': 'str',
> + '*node': 'str' } }
Let me suggest this alternative:
{ 'command': 'x-blockdev-change',
'data' : { 'parent': 'str',
'child': 'str',
'*node': 'str' } }
child doesn't describe a node name then, but a child name (adds a
dependency on my patches which add a name to BdrvChild, though).
Depending on whether node is given and whether the child already exists,
this may add, remove or replace a child.
Kevin