Skip to content

Commit

Permalink
qapi-schema: Fix up misleading specification of netdev_add
Browse files Browse the repository at this point in the history
It doesn't take a 'props' argument, let alone one in the format
"NAME=VALUE,..."

The bogus arguments specification doesn't matter due to 'gen': false.
Clean it up to be incomplete rather than wrong, and document the
incompleteness.

While there, improve netdev_add usage example in the manual: add a
device option to show how it's done.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Message-Id: <1442401589-24189-24-git-send-email-armbru@redhat.com>
  • Loading branch information
Markus Armbruster committed Sep 21, 2015
1 parent 6eb3937 commit b8a9832
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 8 deletions.
2 changes: 1 addition & 1 deletion docs/qapi-code-gen.txt
Expand Up @@ -471,7 +471,7 @@ try to avoid adding new commands that rely on this, and instead use
type-safe unions. For an example of bypass usage:

{ 'command': 'netdev_add',
'data': {'type': 'str', 'id': 'str', '*props': '**'},
'data': {'type': 'str', 'id': 'str'},
'gen': false }

Normally, the QAPI schema is used to describe synchronous exchanges,
Expand Down
13 changes: 7 additions & 6 deletions qapi-schema.json
Expand Up @@ -2079,20 +2079,21 @@
#
# @id: the name of the new network backend
#
# @props: #optional a list of properties to be passed to the backend in
# the format 'name=value', like 'ifname=tap0,script=no'
# Additional arguments depend on the type.
#
# Notes: The semantics of @props is not well defined. Future commands will be
# introduced that provide stronger typing for backend creation.
# TODO This command effectively bypasses QAPI completely due to its
# "additional arguments" business. It shouldn't have been added to
# the schema in this form. It should be qapified properly, or
# replaced by a properly qapified command.
#
# Since: 0.14.0
#
# Returns: Nothing on success
# If @type is not a valid network backend, DeviceNotFound
##
{ 'command': 'netdev_add',
'data': {'type': 'str', 'id': 'str', '*props': '**'},
'gen': false }
'data': {'type': 'str', 'id': 'str'},
'gen': false } # so we can get the additional arguments

##
# @netdev_del:
Expand Down
4 changes: 3 additions & 1 deletion qmp-commands.hx
Expand Up @@ -917,7 +917,9 @@ Arguments:

Example:

-> { "execute": "netdev_add", "arguments": { "type": "user", "id": "netdev1" } }
-> { "execute": "netdev_add",
"arguments": { "type": "user", "id": "netdev1",
"dnssearch": "example.org" } }
<- { "return": {} }

Note: The supported device options are the same ones supported by the '-netdev'
Expand Down

0 comments on commit b8a9832

Please sign in to comment.