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 schema to fully > exclude generation of the filesystem trimming commands on POSIX > platforms lacking required APIs. > > 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> > --- > qga/commands-linux.c | 8 -------- > qga/qapi-schema.json | 8 ++++---- > 2 files changed, 4 insertions(+), 12 deletions(-) > > diff --git a/qga/commands-linux.c b/qga/commands-linux.c > index 73b13fbaf6..89bdcded01 100644 > --- a/qga/commands-linux.c > +++ b/qga/commands-linux.c > @@ -1049,14 +1049,6 @@ GuestDiskInfoList *qmp_guest_get_disks(Error **errp) > return ret; > } > > -#else > - > -GuestDiskInfoList *qmp_guest_get_disks(Error **errp) > -{ > - error_setg(errp, QERR_UNSUPPORTED); > - return NULL; > -} > - > #endif > > /* Return a list of the disk device(s)' info which @mount lies on */ > diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json > index 0f27375ea0..0b7f911ca5 100644 > --- a/qga/qapi-schema.json > +++ b/qga/qapi-schema.json > @@ -985,7 +985,7 @@ > 'media-errors-hi': 'uint64', > 'number-of-error-log-entries-lo': 'uint64', > 'number-of-error-log-entries-hi': 'uint64' }, > - 'if': { 'any': [ 'CONFIG_WIN32', 'CONFIG_LINUX' ] } } > + 'if': { 'any': [ 'CONFIG_WIN32', 'CONFIG_LIBUDEV' ] } } > > ## > # @GuestDiskSmart: > @@ -1000,7 +1000,7 @@ > 'base': { 'type': 'GuestDiskBusType' }, > 'discriminator': 'type', > 'data': { 'nvme': 'GuestNVMeSmart' }, > - 'if': { 'any': [ 'CONFIG_WIN32', 'CONFIG_LINUX' ] } } > + 'if': { 'any': [ 'CONFIG_WIN32', 'CONFIG_LIBUDEV' ] } } > > ## > # @GuestDiskInfo: > @@ -1026,7 +1026,7 @@ > 'data': {'name': 'str', 'partition': 'bool', '*dependencies': ['str'], > '*address': 'GuestDiskAddress', '*alias': 'str', > '*smart': 'GuestDiskSmart'}, > - 'if': { 'any': [ 'CONFIG_WIN32', 'CONFIG_LINUX' ] } } > + 'if': { 'any': [ 'CONFIG_WIN32', 'CONFIG_LIBUDEV' ] } } > > ## > # @guest-get-disks: > @@ -1040,7 +1040,7 @@ > ## > { 'command': 'guest-get-disks', > 'returns': ['GuestDiskInfo'], > - 'if': { 'any': [ 'CONFIG_WIN32', 'CONFIG_LINUX' ] } } > + 'if': { 'any': [ 'CONFIG_WIN32', 'CONFIG_LIBUDEV' ] } } > > ## > # @GuestFilesystemInfo: > -- > 2.45.1 > >