Some, but not all error messages are of the form
Guest agent command failed, error was '<actual error message>'
For instance, command guest-exec can fail with an error message like
Guest agent command failed, error was 'Failed to execute child process “/bin/invalid-cmd42” (No such file or directory)'
Shorten this to just just the actual error message. The guest-exec
example becomes
Failed to execute child process “/bin/invalid-cmd42” (No such file or directory)
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
qga/commands-win32.c | 24 ++++++++----------------
qga/commands.c | 5 ++---
2 files changed, 10 insertions(+), 19 deletions(-)
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
index ed31077457..0d1b836e87 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -278,8 +278,7 @@ static void acquire_privilege(const char *name, Error **errp)
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &token))
{
if (!LookupPrivilegeValue(NULL, name, &priv.Privileges[0].Luid)) {
- error_setg(errp, QERR_QGA_COMMAND_FAILED,
- "no luid for requested privilege");
+ error_setg(errp, "no luid for requested privilege");
goto out;
}
@@ -287,14 +286,12 @@ static void acquire_privilege(const char *name, Error **errp)
priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges(token, FALSE, &priv, 0, NULL, 0)) {
- error_setg(errp, QERR_QGA_COMMAND_FAILED,
- "unable to acquire requested privilege");
+ error_setg(errp, "unable to acquire requested privilege");
goto out;
}
} else {
- error_setg(errp, QERR_QGA_COMMAND_FAILED,
- "failed to open privilege token");
+ error_setg(errp, "failed to open privilege token");
}
out:
@@ -308,8 +305,7 @@ static void execute_async(DWORD WINAPI (*func)(LPVOID), LPVOID opaque,
{
HANDLE thread = CreateThread(NULL, 0, func, opaque, 0, NULL);
if (!thread) {
- error_setg(errp, QERR_QGA_COMMAND_FAILED,
- "failed to dispatch asynchronous command");
+ error_setg(errp, "failed to dispatch asynchronous command");
}
}
@@ -1418,22 +1414,19 @@ static void check_suspend_mode(GuestSuspendMode mode, Error **errp)
ZeroMemory(&sys_pwr_caps, sizeof(sys_pwr_caps));
if (!GetPwrCapabilities(&sys_pwr_caps)) {
- error_setg(errp, QERR_QGA_COMMAND_FAILED,
- "failed to determine guest suspend capabilities");
+ error_setg(errp, "failed to determine guest suspend capabilities");
return;
}
switch (mode) {
case GUEST_SUSPEND_MODE_DISK:
if (!sys_pwr_caps.SystemS4) {
- error_setg(errp, QERR_QGA_COMMAND_FAILED,
- "suspend-to-disk not supported by OS");
+ error_setg(errp, "suspend-to-disk not supported by OS");
}
break;
case GUEST_SUSPEND_MODE_RAM:
if (!sys_pwr_caps.SystemS3) {
- error_setg(errp, QERR_QGA_COMMAND_FAILED,
- "suspend-to-ram not supported by OS");
+ error_setg(errp, "suspend-to-ram not supported by OS");
}
break;
default:
@@ -2175,8 +2168,7 @@ static void ga_get_win_version(RTL_OSVERSIONINFOEXW *info, Error **errp)
HMODULE module = GetModuleHandle("ntdll");
PVOID fun = GetProcAddress(module, "RtlGetVersion");
if (fun == NULL) {
- error_setg(errp, QERR_QGA_COMMAND_FAILED,
- "Failed to get address of RtlGetVersion");
+ error_setg(errp, "Failed to get address of RtlGetVersion");
return;
}
diff --git a/qga/commands.c b/qga/commands.c
index 88c1c99fe5..27b16313ea 100644
--- a/qga/commands.c
+++ b/qga/commands.c
@@ -475,7 +475,7 @@ GuestExec *qmp_guest_exec(const char *path,
guest_exec_task_setup, &has_merge, &pid, input_data ? &in_fd : NULL,
has_output ? &out_fd : NULL, has_output ? &err_fd : NULL, &gerr);
if (!ret) {
- error_setg(errp, QERR_QGA_COMMAND_FAILED, gerr->message);
+ error_setg(errp, "%s", gerr->message);
g_error_free(gerr);
goto done;
}
@@ -586,8 +586,7 @@ GuestTimezone *qmp_guest_get_timezone(Error **errp)
info = g_new0(GuestTimezone, 1);
tz = g_time_zone_new_local();
if (tz == NULL) {
- error_setg(errp, QERR_QGA_COMMAND_FAILED,
- "Couldn't retrieve local timezone");
+ error_setg(errp, "Couldn't retrieve local timezone");
goto error;
}
--
2.45.0
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com> On Tue, May 14, 2024 at 1:58 PM Markus Armbruster <armbru@redhat.com> wrote: > Some, but not all error messages are of the form > > Guest agent command failed, error was '<actual error message>' > > For instance, command guest-exec can fail with an error message like > > Guest agent command failed, error was 'Failed to execute child process > “/bin/invalid-cmd42�€? (No such file or directory)' > > Shorten this to just just the actual error message. The guest-exec > example becomes > > Failed to execute child process “/bin/invalid-cmd42�€? (No such file > or directory) > > Signed-off-by: Markus Armbruster <armbru@redhat.com> > --- > qga/commands-win32.c | 24 ++++++++---------------- > qga/commands.c | 5 ++--- > 2 files changed, 10 insertions(+), 19 deletions(-) > > diff --git a/qga/commands-win32.c b/qga/commands-win32.c > index ed31077457..0d1b836e87 100644 > --- a/qga/commands-win32.c > +++ b/qga/commands-win32.c > @@ -278,8 +278,7 @@ static void acquire_privilege(const char *name, Error > **errp) > TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &token)) > { > if (!LookupPrivilegeValue(NULL, name, &priv.Privileges[0].Luid)) { > - error_setg(errp, QERR_QGA_COMMAND_FAILED, > - "no luid for requested privilege"); > + error_setg(errp, "no luid for requested privilege"); > goto out; > } > > @@ -287,14 +286,12 @@ static void acquire_privilege(const char *name, > Error **errp) > priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; > > if (!AdjustTokenPrivileges(token, FALSE, &priv, 0, NULL, 0)) { > - error_setg(errp, QERR_QGA_COMMAND_FAILED, > - "unable to acquire requested privilege"); > + error_setg(errp, "unable to acquire requested privilege"); > goto out; > } > > } else { > - error_setg(errp, QERR_QGA_COMMAND_FAILED, > - "failed to open privilege token"); > + error_setg(errp, "failed to open privilege token"); > } > > out: > @@ -308,8 +305,7 @@ static void execute_async(DWORD WINAPI > (*func)(LPVOID), LPVOID opaque, > { > HANDLE thread = CreateThread(NULL, 0, func, opaque, 0, NULL); > if (!thread) { > - error_setg(errp, QERR_QGA_COMMAND_FAILED, > - "failed to dispatch asynchronous command"); > + error_setg(errp, "failed to dispatch asynchronous command"); > } > } > > @@ -1418,22 +1414,19 @@ static void check_suspend_mode(GuestSuspendMode > mode, Error **errp) > > ZeroMemory(&sys_pwr_caps, sizeof(sys_pwr_caps)); > if (!GetPwrCapabilities(&sys_pwr_caps)) { > - error_setg(errp, QERR_QGA_COMMAND_FAILED, > - "failed to determine guest suspend capabilities"); > + error_setg(errp, "failed to determine guest suspend > capabilities"); > return; > } > > switch (mode) { > case GUEST_SUSPEND_MODE_DISK: > if (!sys_pwr_caps.SystemS4) { > - error_setg(errp, QERR_QGA_COMMAND_FAILED, > - "suspend-to-disk not supported by OS"); > + error_setg(errp, "suspend-to-disk not supported by OS"); > } > break; > case GUEST_SUSPEND_MODE_RAM: > if (!sys_pwr_caps.SystemS3) { > - error_setg(errp, QERR_QGA_COMMAND_FAILED, > - "suspend-to-ram not supported by OS"); > + error_setg(errp, "suspend-to-ram not supported by OS"); > } > break; > default: > @@ -2175,8 +2168,7 @@ static void ga_get_win_version(RTL_OSVERSIONINFOEXW > *info, Error **errp) > HMODULE module = GetModuleHandle("ntdll"); > PVOID fun = GetProcAddress(module, "RtlGetVersion"); > if (fun == NULL) { > - error_setg(errp, QERR_QGA_COMMAND_FAILED, > - "Failed to get address of RtlGetVersion"); > + error_setg(errp, "Failed to get address of RtlGetVersion"); > return; > } > > diff --git a/qga/commands.c b/qga/commands.c > index 88c1c99fe5..27b16313ea 100644 > --- a/qga/commands.c > +++ b/qga/commands.c > @@ -475,7 +475,7 @@ GuestExec *qmp_guest_exec(const char *path, > guest_exec_task_setup, &has_merge, &pid, input_data ? &in_fd > : NULL, > has_output ? &out_fd : NULL, has_output ? &err_fd : NULL, > &gerr); > if (!ret) { > - error_setg(errp, QERR_QGA_COMMAND_FAILED, gerr->message); > + error_setg(errp, "%s", gerr->message); > g_error_free(gerr); > goto done; > } > @@ -586,8 +586,7 @@ GuestTimezone *qmp_guest_get_timezone(Error **errp) > info = g_new0(GuestTimezone, 1); > tz = g_time_zone_new_local(); > if (tz == NULL) { > - error_setg(errp, QERR_QGA_COMMAND_FAILED, > - "Couldn't retrieve local timezone"); > + error_setg(errp, "Couldn't retrieve local timezone"); > goto error; > } > > -- > 2.45.0 > >
Markus Armbruster <armbru@redhat.com> writes: > Some, but not all error messages are of the form > > Guest agent command failed, error was '<actual error message>' > > For instance, command guest-exec can fail with an error message like > > Guest agent command failed, error was 'Failed to execute child process “/bin/invalid-cmd42” (No such file or directory)' > > Shorten this to just just the actual error message. The guest-exec > example becomes > > Failed to execute child process “/bin/invalid-cmd42” (No such file or directory) > > Signed-off-by: Markus Armbruster <armbru@redhat.com> [...] To be squashed into the patch: diff --git a/qga/commands.c b/qga/commands.c index 27b16313ea..5a5fad31f8 100644 --- a/qga/commands.c +++ b/qga/commands.c @@ -15,7 +15,6 @@ #include "guest-agent-core.h" #include "qga-qapi-commands.h" #include "qapi/error.h" -#include "qapi/qmp/qerror.h" #include "qemu/base64.h" #include "qemu/cutils.h" #include "commands-common.h"
On 14/5/24 13:02, Markus Armbruster wrote: > Markus Armbruster <armbru@redhat.com> writes: > >> Some, but not all error messages are of the form >> >> Guest agent command failed, error was '<actual error message>' >> >> For instance, command guest-exec can fail with an error message like >> >> Guest agent command failed, error was 'Failed to execute child process “/bin/invalid-cmd42” (No such file or directory)' >> >> Shorten this to just just the actual error message. The guest-exec >> example becomes >> >> Failed to execute child process “/bin/invalid-cmd42” (No such file or directory) >> >> Signed-off-by: Markus Armbruster <armbru@redhat.com> > > [...] > > To be squashed into the patch: > > diff --git a/qga/commands.c b/qga/commands.c > index 27b16313ea..5a5fad31f8 100644 > --- a/qga/commands.c > +++ b/qga/commands.c > @@ -15,7 +15,6 @@ > #include "guest-agent-core.h" > #include "qga-qapi-commands.h" > #include "qapi/error.h" > -#include "qapi/qmp/qerror.h" > #include "qemu/base64.h" > #include "qemu/cutils.h" > #include "commands-common.h" > Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
© 2016 - 2024 Red Hat, Inc.