From bf95c0d55c24e8ce1c03e1ba491437297f8f96f4 Mon Sep 17 00:00:00 2001 From: Michael Roth Date: Tue, 6 Dec 2011 22:03:43 -0600 Subject: guest agent: add supported command list to guest-info RPC Not that there is blacklisting functionality we can no longer infer the agent's capabilities via version. This patch extends the current guest-info RPC to also return a list of dictionaries containing the name of each supported RPC, along with a boolean indicating whether or not the command has been disabled by a guest administrator/distro. Signed-off-by: Michael Roth Signed-off-by: Anthony Liguori --- qapi/qmp-core.h | 1 + qapi/qmp-registry.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) (limited to 'qapi') diff --git a/qapi/qmp-core.h b/qapi/qmp-core.h index 3cf1781fa4..3bb3acb589 100644 --- a/qapi/qmp-core.h +++ b/qapi/qmp-core.h @@ -38,6 +38,7 @@ void qmp_register_command(const char *name, QmpCommandFunc *fn); QmpCommand *qmp_find_command(const char *name); QObject *qmp_dispatch(QObject *request); void qmp_disable_command(const char *name); +bool qmp_command_is_enabled(const char *name); char **qmp_get_command_list(void); #endif diff --git a/qapi/qmp-registry.c b/qapi/qmp-registry.c index abafa347fb..25c89ad098 100644 --- a/qapi/qmp-registry.c +++ b/qapi/qmp-registry.c @@ -52,6 +52,19 @@ void qmp_disable_command(const char *name) } } +bool qmp_command_is_enabled(const char *name) +{ + QmpCommand *cmd; + + QTAILQ_FOREACH(cmd, &qmp_commands, node) { + if (strcmp(cmd->name, name) == 0) { + return cmd->enabled; + } + } + + return false; +} + char **qmp_get_command_list(void) { QmpCommand *cmd; -- cgit v1.2.3