118 lines
3.9 KiB
Diff
118 lines
3.9 KiB
Diff
|
From 9ed672656f15a47bdc0f9af0f96e55132ad5c0cf Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
||
|
Date: Fri, 8 Jan 2021 07:40:57 -0500
|
||
|
Subject: [PATCH 06/10] qga: add command guest-get-disks
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
RH-Author: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||
|
Message-id: <20210108074101.290008-7-marcandre.lureau@redhat.com>
|
||
|
Patchwork-id: 100525
|
||
|
O-Subject: [RHEL-8.3.0.z qemu-kvm PATCH 06/10] qga: add command guest-get-disks
|
||
|
Bugzilla: 1913818
|
||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||
|
RH-Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||
|
RH-Acked-by: Stefano Garzarella <sgarzare@redhat.com>
|
||
|
|
||
|
From: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||
|
|
||
|
From: Tomáš Golembiovský <tgolembi@redhat.com>
|
||
|
|
||
|
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>
|
||
|
|
||
|
(cherry-picked from commit c27ea3f9ef7c7f29e55bde91879f8514abce9c38)
|
||
|
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||
|
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||
|
---
|
||
|
qga/commands-posix.c | 6 ++++++
|
||
|
qga/commands-win32.c | 6 ++++++
|
||
|
qga/qapi-schema.json | 31 +++++++++++++++++++++++++++++++
|
||
|
3 files changed, 43 insertions(+)
|
||
|
|
||
|
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
|
||
|
index 1c1a165daed..9b690f3cceb 100644
|
||
|
--- a/qga/commands-posix.c
|
||
|
+++ b/qga/commands-posix.c
|
||
|
@@ -2978,3 +2978,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 55ba5b263af..be63fa2b208 100644
|
||
|
--- a/qga/commands-win32.c
|
||
|
+++ b/qga/commands-win32.c
|
||
|
@@ -2234,3 +2234,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 fb4605cc19c..22df375c92f 100644
|
||
|
--- a/qga/qapi-schema.json
|
||
|
+++ b/qga/qapi-schema.json
|
||
|
@@ -852,6 +852,37 @@
|
||
|
'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
|
||
|
+# @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:
|
||
|
#
|
||
|
--
|
||
|
2.27.0
|
||
|
|