summaryrefslogtreecommitdiff
path: root/qga
diff options
context:
space:
mode:
authorJohn Snow <jsnow@redhat.com>2022-07-08 11:34:52 -0400
committerThomas Huth <thuth@redhat.com>2022-07-18 20:24:36 +0200
commitbbb0151cf2e82489120a15df5e2eb9653312b0ec (patch)
tree21540a87b0851f2df1ee1014fd24ffa3836b4702 /qga
parent782378973121addeb11b13fd12a6ac2e69faa33f (diff)
qga: treat get-guest-fsinfo as "best effort"
In some container environments, there may be references to block devices witnessable from a container through /proc/self/mountinfo that reference devices we simply don't have access to in the container, and cannot provide information about. Instead of failing the entire fsinfo command, return stub information for these failed lookups. This allows test-qga to pass under docker tests, which are in turn used by the CentOS VM tests. Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20220708153503.18864-2-jsnow@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'qga')
-rw-r--r--qga/commands-posix.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index f18530d85f..954efed01b 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -1207,7 +1207,15 @@ static void build_guest_fsinfo_for_device(char const *devpath,
syspath = realpath(devpath, NULL);
if (!syspath) {
- error_setg_errno(errp, errno, "realpath(\"%s\")", devpath);
+ if (errno != ENOENT) {
+ error_setg_errno(errp, errno, "realpath(\"%s\")", devpath);
+ return;
+ }
+
+ /* ENOENT: This devpath may not exist because of container config */
+ if (!fs->name) {
+ fs->name = g_path_get_basename(devpath);
+ }
return;
}