[PATCH 2/3] qga: Shorten several error messages

Markus Armbruster posted 3 patches 6 months, 2 weeks ago
Maintainers: Markus Armbruster <armbru@redhat.com>, Konstantin Kostiuk <kkostiuk@redhat.com>, Michael Roth <michael.roth@amd.com>
[PATCH 2/3] qga: Shorten several error messages
Posted by Markus Armbruster 6 months, 2 weeks ago
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


Re: [PATCH 2/3] qga: Shorten several error messages
Posted by Konstantin Kostiuk 6 months, 2 weeks ago
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
>
>
Re: [PATCH 2/3] qga: Shorten several error messages
Posted by Markus Armbruster 6 months, 2 weeks ago
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"
Re: [PATCH 2/3] qga: Shorten several error messages
Posted by Philippe Mathieu-Daudé 6 months, 2 weeks ago
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>