[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v2 12/25] qga: conditionalize schema for commands only supported o
From: |
Konstantin Kostiuk |
Subject: |
[PULL v2 12/25] qga: conditionalize schema for commands only supported on Windows |
Date: |
Tue, 23 Jul 2024 10:02:38 +0300 |
From: Daniel P. Berrangé <berrange@redhat.com>
Rather than creating stubs for every command that just return
QERR_UNSUPPORTED, use 'if' conditions in the QAPI schema to
fully exclude generation of the commands on non-Windows.
The command will be rejected at QMP dispatch time instead,
avoiding reimplementing rejection by blocking the stub commands.
This changes the error message for affected commands from
{"class": "CommandNotFound", "desc": "Command FOO has been disabled"}
to
{"class": "CommandNotFound", "desc": "The command FOO has not been found"}
This has the additional benefit that the QGA protocol reference
now documents what conditions enable use of the command.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Message-ID: <20240712132459.3974109-13-berrange@redhat.com>
Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
---
qga/commands-posix.c | 9 ---------
qga/qapi-schema.json | 15 ++++++++++-----
2 files changed, 10 insertions(+), 14 deletions(-)
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index 838dc3cf98..b7f96aa005 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -1207,8 +1207,6 @@ GList *ga_command_init_blockedrpcs(GList *blockedrpcs)
blockedrpcs = g_list_append(blockedrpcs, g_strdup("guest-fstrim"));
#endif
- blockedrpcs = g_list_append(blockedrpcs, g_strdup("guest-get-devices"));
-
return blockedrpcs;
}
@@ -1419,13 +1417,6 @@ GuestOSInfo *qmp_guest_get_osinfo(Error **errp)
return info;
}
-GuestDeviceInfoList *qmp_guest_get_devices(Error **errp)
-{
- error_setg(errp, QERR_UNSUPPORTED);
-
- return NULL;
-}
-
#ifndef HOST_NAME_MAX
# ifdef _POSIX_HOST_NAME_MAX
# define HOST_NAME_MAX _POSIX_HOST_NAME_MAX
diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json
index 9bd5aa53bc..de3fc46d2e 100644
--- a/qga/qapi-schema.json
+++ b/qga/qapi-schema.json
@@ -1527,7 +1527,8 @@
# @pci: PCI device
##
{ 'enum': 'GuestDeviceType',
- 'data': [ 'pci' ] }
+ 'data': [ 'pci' ],
+ 'if': 'CONFIG_WIN32' }
##
# @GuestDeviceIdPCI:
@@ -1539,7 +1540,8 @@
# Since: 5.2
##
{ 'struct': 'GuestDeviceIdPCI',
- 'data': { 'vendor-id': 'uint16', 'device-id': 'uint16' } }
+ 'data': { 'vendor-id': 'uint16', 'device-id': 'uint16' },
+ 'if': 'CONFIG_WIN32' }
##
# @GuestDeviceId:
@@ -1553,7 +1555,8 @@
{ 'union': 'GuestDeviceId',
'base': { 'type': 'GuestDeviceType' },
'discriminator': 'type',
- 'data': { 'pci': 'GuestDeviceIdPCI' } }
+ 'data': { 'pci': 'GuestDeviceIdPCI' },
+ 'if': 'CONFIG_WIN32' }
##
# @GuestDeviceInfo:
@@ -1574,7 +1577,8 @@
'*driver-date': 'int',
'*driver-version': 'str',
'*id': 'GuestDeviceId'
- } }
+ },
+ 'if': 'CONFIG_WIN32' }
##
# @guest-get-devices:
@@ -1586,7 +1590,8 @@
# Since: 5.2
##
{ 'command': 'guest-get-devices',
- 'returns': ['GuestDeviceInfo'] }
+ 'returns': ['GuestDeviceInfo'],
+ 'if': 'CONFIG_WIN32' }
##
# @GuestAuthorizedKeys:
--
2.45.2
- [PULL v2 02/25] qga: move linux vcpu command impls to commands-linux.c, (continued)
- [PULL v2 02/25] qga: move linux vcpu command impls to commands-linux.c, Konstantin Kostiuk, 2024/07/23
- [PULL v2 03/25] qga: move linux suspend command impls to commands-linux.c, Konstantin Kostiuk, 2024/07/23
- [PULL v2 07/25] qga: move CONFIG_FSFREEZE/TRIM to be meson defined options, Konstantin Kostiuk, 2024/07/23
- [PULL v2 04/25] qga: move linux fs/disk command impls to commands-linux.c, Konstantin Kostiuk, 2024/07/23
- [PULL v2 06/25] qga: move linux memory block command impls to commands-linux.c, Konstantin Kostiuk, 2024/07/23
- [PULL v2 05/25] qga: move linux disk/cpu stats command impls to commands-linux.c, Konstantin Kostiuk, 2024/07/23
- [PULL v2 09/25] qga: conditionalize schema for commands unsupported on non-Linux POSIX, Konstantin Kostiuk, 2024/07/23
- [PULL v2 08/25] qga: conditionalize schema for commands unsupported on Windows, Konstantin Kostiuk, 2024/07/23
- [PULL v2 10/25] qga: conditionalize schema for commands requiring getifaddrs, Konstantin Kostiuk, 2024/07/23
- [PULL v2 11/25] qga: conditionalize schema for commands requiring linux/win32, Konstantin Kostiuk, 2024/07/23
- [PULL v2 12/25] qga: conditionalize schema for commands only supported on Windows,
Konstantin Kostiuk <=
- [PULL v2 13/25] qga: conditionalize schema for commands requiring fsfreeze, Konstantin Kostiuk, 2024/07/23
- [PULL v2 14/25] qga: conditionalize schema for commands requiring fstrim, Konstantin Kostiuk, 2024/07/23
- [PULL v2 15/25] qga: conditionalize schema for commands requiring libudev, Konstantin Kostiuk, 2024/07/23
- [PULL v2 17/25] qga: conditionalize schema for commands not supported on other UNIX, Konstantin Kostiuk, 2024/07/23
- [PULL v2 16/25] qga: conditionalize schema for commands requiring utmpx, Konstantin Kostiuk, 2024/07/23
- [PULL v2 19/25] qga: move declare of QGAConfig struct to top of file, Konstantin Kostiuk, 2024/07/23
- [PULL v2 18/25] qga: don't disable fsfreeze commands if vss_init fails, Konstantin Kostiuk, 2024/07/23
- [PULL v2 20/25] qga: remove pointless 'blockrpcs_key' variable, Konstantin Kostiuk, 2024/07/23
- [PULL v2 24/25] guest-agent: document allow-rpcs in config file section, Konstantin Kostiuk, 2024/07/23
- [PULL v2 23/25] qga/commands-posix: Make ga_wait_child() return boolean, Konstantin Kostiuk, 2024/07/23