diff mbox series

[v2,20/22] qapi: Inline and remove QERR_QGA_COMMAND_FAILED definition

Message ID 20231005045041.52649-21-philmd@linaro.org
State Handled Elsewhere
Headers show
Series qapi: Kill 'qapi/qmp/qerror.h' for good | expand

Commit Message

Philippe Mathieu-Daudé Oct. 5, 2023, 4:50 a.m. UTC
Address the comment added in commit 4629ed1e98
("qerror: Finally unused, clean up"), from 2015:

  /*
   * These macros will go away, please don't use
   * in new code, and do not add new ones!
   */

Mechanical transformation using the following
coccinelle semantic patch:

    @match exists@
    expression errp;
    expression errmsg;
    @@
         error_setg(errp, QERR_QGA_COMMAND_FAILED, errmsg);

    @script:python strformat depends on match@
    errmsg << match.errmsg;
    fixedfmt; // new var
    @@
    # Format skipping '"'.
    fixedfmt = f'"Guest agent command failed, error was \'{errmsg[1:-1]}\'"'
    coccinelle.fixedfmt = cocci.make_ident(fixedfmt)

    @replace@
    expression match.errp;
    expression match.errmsg;
    identifier strformat.fixedfmt;
    @@
    -    error_setg(errp, QERR_QGA_COMMAND_FAILED, errmsg);
    +    error_setg(errp, fixedfmt);

then manually removing the definition in include/qapi/qmp/qerror.h.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 include/qapi/qmp/qerror.h |  3 ---
 qga/commands-win32.c      | 38 ++++++++++++++++++++------------------
 qga/commands.c            |  7 ++++---
 3 files changed, 24 insertions(+), 24 deletions(-)

Comments

Markus Armbruster Oct. 20, 2023, 1:03 p.m. UTC | #1
Philippe Mathieu-Daudé <philmd@linaro.org> writes:

> Address the comment added in commit 4629ed1e98
> ("qerror: Finally unused, clean up"), from 2015:
>
>   /*
>    * These macros will go away, please don't use
>    * in new code, and do not add new ones!
>    */
>
> Mechanical transformation using the following
> coccinelle semantic patch:
>
>     @match exists@
>     expression errp;
>     expression errmsg;
>     @@
>          error_setg(errp, QERR_QGA_COMMAND_FAILED, errmsg);
>
>     @script:python strformat depends on match@
>     errmsg << match.errmsg;
>     fixedfmt; // new var
>     @@
>     # Format skipping '"'.
>     fixedfmt = f'"Guest agent command failed, error was \'{errmsg[1:-1]}\'"'
>     coccinelle.fixedfmt = cocci.make_ident(fixedfmt)
>
>     @replace@
>     expression match.errp;
>     expression match.errmsg;
>     identifier strformat.fixedfmt;
>     @@
>     -    error_setg(errp, QERR_QGA_COMMAND_FAILED, errmsg);
>     +    error_setg(errp, fixedfmt);
>
> then manually removing the definition in include/qapi/qmp/qerror.h.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>  include/qapi/qmp/qerror.h |  3 ---
>  qga/commands-win32.c      | 38 ++++++++++++++++++++------------------
>  qga/commands.c            |  7 ++++---
>  3 files changed, 24 insertions(+), 24 deletions(-)
>
> diff --git a/include/qapi/qmp/qerror.h b/include/qapi/qmp/qerror.h
> index e094f13114..840831cc6a 100644
> --- a/include/qapi/qmp/qerror.h
> +++ b/include/qapi/qmp/qerror.h
> @@ -17,9 +17,6 @@
>   * add new ones!
>   */
>  
> -#define QERR_QGA_COMMAND_FAILED \
> -    "Guest agent command failed, error was '%s'"
> -
>  #define QERR_UNSUPPORTED \
>      "this feature or command is not currently supported"
>  
> diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> index 946dbafbb6..aa8c9770d4 100644
> --- a/qga/commands-win32.c
> +++ b/qga/commands-win32.c
> @@ -245,7 +245,8 @@ int64_t qmp_guest_file_open(const char *path, const char *mode, Error **errp)
>  
>  done:
>      if (gerr) {
> -        error_setg(errp, QERR_QGA_COMMAND_FAILED, gerr->message);
> +        error_setg(errp,
> +                   "Guest agent command failed, error was 'err -> messag'");

Oopsie :)

Two more below.

>          g_error_free(gerr);
>      }
>      g_free(w_path);
> @@ -279,8 +280,8 @@ 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,
> +                       "Guest agent command failed, error was 'no luid for requested privilege'");
>              goto out;
>          }
>  

I don't like this error message.  I'm going to pretend I didn't see it.

[...]
diff mbox series

Patch

diff --git a/include/qapi/qmp/qerror.h b/include/qapi/qmp/qerror.h
index e094f13114..840831cc6a 100644
--- a/include/qapi/qmp/qerror.h
+++ b/include/qapi/qmp/qerror.h
@@ -17,9 +17,6 @@ 
  * add new ones!
  */
 
-#define QERR_QGA_COMMAND_FAILED \
-    "Guest agent command failed, error was '%s'"
-
 #define QERR_UNSUPPORTED \
     "this feature or command is not currently supported"
 
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
index 946dbafbb6..aa8c9770d4 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -245,7 +245,8 @@  int64_t qmp_guest_file_open(const char *path, const char *mode, Error **errp)
 
 done:
     if (gerr) {
-        error_setg(errp, QERR_QGA_COMMAND_FAILED, gerr->message);
+        error_setg(errp,
+                   "Guest agent command failed, error was 'err -> messag'");
         g_error_free(gerr);
     }
     g_free(w_path);
@@ -279,8 +280,8 @@  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,
+                       "Guest agent command failed, error was 'no luid for requested privilege'");
             goto out;
         }
 
@@ -288,14 +289,14 @@  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,
+                       "Guest agent command failed, error was 'unable to acquire requested privilege'");
             goto out;
         }
 
     } else {
-        error_setg(errp, QERR_QGA_COMMAND_FAILED,
-                   "failed to open privilege token");
+        error_setg(errp,
+                   "Guest agent command failed, error was 'failed to open privilege token'");
     }
 
 out:
@@ -309,8 +310,8 @@  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,
+                   "Guest agent command failed, error was 'failed to dispatch asynchronous command'");
     }
 }
 
@@ -1423,22 +1424,22 @@  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,
+                   "Guest agent command failed, error was '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,
+                       "Guest agent command failed, error was '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,
+                       "Guest agent command failed, error was 'suspend-to-ram not supported by OS'");
         }
         break;
     default:
@@ -1971,7 +1972,8 @@  void qmp_guest_set_user_password(const char *username,
 
 done:
     if (gerr) {
-        error_setg(errp, QERR_QGA_COMMAND_FAILED, gerr->message);
+        error_setg(errp,
+                   "Guest agent command failed, error was 'err -> messag'");
         g_error_free(gerr);
     }
     g_free(user);
@@ -2180,8 +2182,8 @@  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,
+                   "Guest agent command failed, error was 'Failed to get address of RtlGetVersion'");
         return;
     }
 
diff --git a/qga/commands.c b/qga/commands.c
index 871210ab0b..936634c50a 100644
--- a/qga/commands.c
+++ b/qga/commands.c
@@ -475,7 +475,8 @@  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,
+                   "Guest agent command failed, error was 'err -> messag'");
         g_error_free(gerr);
         goto done;
     }
@@ -586,8 +587,8 @@  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,
+                   "Guest agent command failed, error was 'Couldn't retrieve local timezone'");
         goto error;
     }