On Mon, Sep 7, 2020 at 1:16 PM Tomáš Golembiovský <tgole...@redhat.com> wrote:
> Add API and stubs for new guest-get-disks command. > > The command guest-get-fsinfo can be used to list information about disks > and partitions but it is limited only to mounted disks with filesystem. > This new command should allow listing information about disks of the VM > regardles whether they are mounted or not. This can be usefull for > management applications for mapping virtualized devices or pass-through > devices to device names in the guest OS. > > Signed-off-by: Tomáš Golembiovský <tgole...@redhat.com> > Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- > qga/commands-posix.c | 6 ++++++ > qga/commands-win32.c | 6 ++++++ > qga/qapi-schema.json | 29 +++++++++++++++++++++++++++++ > 3 files changed, 41 insertions(+) > > diff --git a/qga/commands-posix.c b/qga/commands-posix.c > index 744c2b5a5d..f99731af51 100644 > --- a/qga/commands-posix.c > +++ b/qga/commands-posix.c > @@ -3042,3 +3042,9 @@ GuestOSInfo *qmp_guest_get_osinfo(Error **errp) > > return info; > } > + > +GuestDiskInfoList *qmp_guest_get_disks(Error **errp) > +{ > + error_setg(errp, QERR_UNSUPPORTED); > + return NULL; > +} > diff --git a/qga/commands-win32.c b/qga/commands-win32.c > index aaa71f147b..e9976a0c46 100644 > --- a/qga/commands-win32.c > +++ b/qga/commands-win32.c > @@ -2229,3 +2229,9 @@ GuestOSInfo *qmp_guest_get_osinfo(Error **errp) > > return info; > } > + > +GuestDiskInfoList *qmp_guest_get_disks(Error **errp) > +{ > + error_setg(errp, QERR_UNSUPPORTED); > + return NULL; > +} > diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json > index 408a662ea5..70b54e0d07 100644 > --- a/qga/qapi-schema.json > +++ b/qga/qapi-schema.json > @@ -862,6 +862,35 @@ > 'bus': 'int', 'target': 'int', 'unit': 'int', > '*serial': 'str', '*dev': 'str'} } > > +## > +# @GuestDiskInfo: > +# > +# @name: device node (Linux) or device UNC (Windows) > +# @partition: whether this is a partition or disk > +# @slaves: list of slave devices (Linux) > +# @address: disk address information (only for non-virtual devices) > +# @alias: optional alias assigned to the disk, on Linux this is a name > assigned > +# by device mapper > +# > +# Since 5.2 > +## > +{ 'struct': 'GuestDiskInfo', > + 'data': {'name': 'str', 'partition': 'bool', 'slaves': ['str'], > + '*address': 'GuestDiskAddress', '*alias': 'str'} } > + > +## > +# @guest-get-disks: > +# > +# Returns: The list of disks in the guest. For Windows these are only the > +# physical disks. On Linux these are all root block devices of > +# non-zero size including e.g. removable devices, loop devices, > +# NBD, etc. > +# > +# Since: 5.2 > +## > +{ 'command': 'guest-get-disks', > + 'returns': ['GuestDiskInfo'] } > + > ## > # @GuestFilesystemInfo: > # > -- > 2.25.0 > > > -- Marc-André Lureau