114 lines
4.8 KiB
Diff
114 lines
4.8 KiB
Diff
|
From ff881d64d3f29825ab093eb2be183658226ccba3 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
||
|
Date: Wed, 16 Dec 2020 16:06:15 -0500
|
||
|
Subject: [PATCH 14/14] qga: update schema for guest-get-disks 'dependents'
|
||
|
field
|
||
|
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: <20201216160615.324213-11-marcandre.lureau@redhat.com>
|
||
|
Patchwork-id: 100480
|
||
|
O-Subject: [RHEL-8.4.0 qemu-kvm PATCH v2 10/10] qga: update schema for guest-get-disks 'dependents' field
|
||
|
Bugzilla: 1859494
|
||
|
RH-Acked-by: Danilo de Paula <ddepaula@redhat.com>
|
||
|
RH-Acked-by: Sergio Lopez Pascual <slp@redhat.com>
|
||
|
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||
|
|
||
|
From: Michael Roth <michael.roth@amd.com>
|
||
|
|
||
|
The recently-added 'guest-get-disk' command returns a list of
|
||
|
GuestDiskInfo entries, which in turn have a 'dependents' field which
|
||
|
lists devices these entries are dependent upon. Thus, 'dependencies'
|
||
|
is a better name for this field. Address this by renaming the field
|
||
|
accordingly.
|
||
|
|
||
|
Additionally, 'dependents' is specified as non-optional, even though
|
||
|
it's not implemented for w32. This is misleading, since it gives users
|
||
|
the impression that a particular disk might not have dependencies,
|
||
|
when in reality that information is simply not known to the guest
|
||
|
agent. Address this by making 'dependents' an optional field, and only
|
||
|
marking it as in-use when the facilities to obtain this information are
|
||
|
available to the guest agent.
|
||
|
|
||
|
Cc: Eric Blake <eblake@redhat.com>
|
||
|
Cc: Tomáš Golembiovský <tgolembi@redhat.com>
|
||
|
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||
|
Reviewed-by: Eric Blake <eblake@redhat.com>
|
||
|
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||
|
Signed-off-by: Michael Roth <michael.roth@amd.com>
|
||
|
|
||
|
(cherry-picked from commit a8aa94b5f8427cc2924d8cdd417c8014db1c86c0)
|
||
|
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 | 10 ++++++----
|
||
|
qga/qapi-schema.json | 8 ++++----
|
||
|
2 files changed, 10 insertions(+), 8 deletions(-)
|
||
|
|
||
|
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
|
||
|
index 9a170dee14c..c02373cdf7d 100644
|
||
|
--- a/qga/commands-posix.c
|
||
|
+++ b/qga/commands-posix.c
|
||
|
@@ -1287,6 +1287,7 @@ static void get_disk_deps(const char *disk_dir, GuestDiskInfo *disk)
|
||
|
g_debug("failed to list entries in %s", deps_dir);
|
||
|
return;
|
||
|
}
|
||
|
+ disk->has_dependencies = true;
|
||
|
while ((dep = g_dir_read_name(dp_deps)) != NULL) {
|
||
|
g_autofree char *dep_dir = NULL;
|
||
|
strList *dep_item = NULL;
|
||
|
@@ -1299,8 +1300,8 @@ static void get_disk_deps(const char *disk_dir, GuestDiskInfo *disk)
|
||
|
g_debug(" adding dependent device: %s", dev_name);
|
||
|
dep_item = g_new0(strList, 1);
|
||
|
dep_item->value = dev_name;
|
||
|
- dep_item->next = disk->dependents;
|
||
|
- disk->dependents = dep_item;
|
||
|
+ dep_item->next = disk->dependencies;
|
||
|
+ disk->dependencies = dep_item;
|
||
|
}
|
||
|
}
|
||
|
g_dir_close(dp_deps);
|
||
|
@@ -1353,8 +1354,9 @@ static GuestDiskInfoList *get_disk_partitions(
|
||
|
partition->name = dev_name;
|
||
|
partition->partition = true;
|
||
|
/* Add parent disk as dependent for easier tracking of hierarchy */
|
||
|
- partition->dependents = g_new0(strList, 1);
|
||
|
- partition->dependents->value = g_strdup(disk_dev);
|
||
|
+ partition->dependencies = g_new0(strList, 1);
|
||
|
+ partition->dependencies->value = g_strdup(disk_dev);
|
||
|
+ partition->has_dependencies = true;
|
||
|
|
||
|
item = g_new0(GuestDiskInfoList, 1);
|
||
|
item->value = partition;
|
||
|
diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json
|
||
|
index 22df375c92f..4222cb92d34 100644
|
||
|
--- a/qga/qapi-schema.json
|
||
|
+++ b/qga/qapi-schema.json
|
||
|
@@ -857,9 +857,9 @@
|
||
|
#
|
||
|
# @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)
|
||
|
+# @dependencies: list of device dependencies; 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
|
||
|
@@ -867,7 +867,7 @@
|
||
|
# Since 5.2
|
||
|
##
|
||
|
{ 'struct': 'GuestDiskInfo',
|
||
|
- 'data': {'name': 'str', 'partition': 'bool', 'dependents': ['str'],
|
||
|
+ 'data': {'name': 'str', 'partition': 'bool', '*dependencies': ['str'],
|
||
|
'*address': 'GuestDiskAddress', '*alias': 'str'} }
|
||
|
|
||
|
##
|
||
|
--
|
||
|
2.27.0
|
||
|
|