aboutsummaryrefslogtreecommitdiff
path: root/qga
diff options
context:
space:
mode:
authorTomáš Golembiovský <tgolembi@redhat.com>2020-10-12 10:36:01 +0200
committerMichael Roth <michael.roth@amd.com>2020-11-02 08:14:36 -0600
commitc27ea3f9ef7c7f29e55bde91879f8514abce9c38 (patch)
tree630a9d8d95961696a5e4b6768289c90417a0cc7b /qga
parent0083124b3adb67bb740f1f06c2360335a5ce1533 (diff)
downloadqemu-c27ea3f9ef7c7f29e55bde91879f8514abce9c38.zip
qemu-c27ea3f9ef7c7f29e55bde91879f8514abce9c38.tar.gz
qemu-c27ea3f9ef7c7f29e55bde91879f8514abce9c38.tar.bz2
qga: add command guest-get-disks
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ý <tgolembi@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Michael Roth <michael.roth@amd.com>
Diffstat (limited to 'qga')
-rw-r--r--qga/commands-posix.c6
-rw-r--r--qga/commands-win32.c6
-rw-r--r--qga/qapi-schema.json31
3 files changed, 43 insertions, 0 deletions
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index 3bffee9..422144b 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -3051,3 +3051,9 @@ GuestDeviceInfoList *qmp_guest_get_devices(Error **errp)
return NULL;
}
+
+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 0c33d48..f7bdd5a 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -2458,3 +2458,9 @@ GuestDeviceInfoList *qmp_guest_get_devices(Error **errp)
}
return head;
}
+
+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 fe10631..e123a00 100644
--- a/qga/qapi-schema.json
+++ b/qga/qapi-schema.json
@@ -866,6 +866,37 @@
'*serial': 'str', '*dev': 'str'} }
##
+# @GuestDiskInfo:
+#
+# @name: device node (Linux) or device UNC (Windows)
+# @partition: whether this is a partition or disk
+# @dependents: list of dependent devices; e.g. for LVs of the LVM this will
+# hold the list of PVs, for LUKS encrypted volume this will
+# contain the disk where the volume is placed. (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', 'dependents': ['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:
#
# @name: disk name