Reviewed-by: Konstantin Kostiuk <kkost...@redhat.com> On Thu, Jun 13, 2024 at 6:44 PM Daniel P. Berrangé <berra...@redhat.com> wrote:
> 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 other UNIX. > > 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. > > Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> > --- > meson.build | 1 + > qga/commands-posix.c | 8 -------- > qga/qapi-schema.json | 3 ++- > 3 files changed, 3 insertions(+), 9 deletions(-) > > diff --git a/meson.build b/meson.build > index d9f3349b0a..92b8c02582 100644 > --- a/meson.build > +++ b/meson.build > @@ -2234,6 +2234,7 @@ config_host_data.set('CONFIG_ATTR', libattr.found()) > config_host_data.set('CONFIG_BDRV_WHITELIST_TOOLS', > get_option('block_drv_whitelist_in_tools')) > config_host_data.set('CONFIG_BRLAPI', brlapi.found()) > config_host_data.set('CONFIG_BSD', host_os in bsd_oses) > +config_host_data.set('CONFIG_FREEBSD', host_os == 'freebsd') > config_host_data.set('CONFIG_CAPSTONE', capstone.found()) > config_host_data.set('CONFIG_COCOA', cocoa.found()) > config_host_data.set('CONFIG_DARWIN', host_os == 'darwin') > diff --git a/qga/commands-posix.c b/qga/commands-posix.c > index a353f64ae6..f4104f2760 100644 > --- a/qga/commands-posix.c > +++ b/qga/commands-posix.c > @@ -877,14 +877,6 @@ void qmp_guest_set_user_password(const char *username, > return; > } > } > -#else /* __linux__ || __FreeBSD__ */ > -void qmp_guest_set_user_password(const char *username, > - const char *password, > - bool crypted, > - Error **errp) > -{ > - error_setg(errp, QERR_UNSUPPORTED); > -} > #endif /* __linux__ || __FreeBSD__ */ > > #ifdef HAVE_GETIFADDRS > diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json > index 70d4f173ad..571be3a914 100644 > --- a/qga/qapi-schema.json > +++ b/qga/qapi-schema.json > @@ -1108,7 +1108,8 @@ > # Since: 2.3 > ## > { 'command': 'guest-set-user-password', > - 'data': { 'username': 'str', 'password': 'str', 'crypted': 'bool' } } > + 'data': { 'username': 'str', 'password': 'str', 'crypted': 'bool' }, > + 'if': { 'any': [ 'CONFIG_WIN32', 'CONFIG_LINUX', 'CONFIG_FREEBSD'] } } > > ## > # @GuestMemoryBlock: > -- > 2.45.1 > >