63 lines
2.2 KiB
Diff
63 lines
2.2 KiB
Diff
|
From 98589d8e1ef9b57d806702b9968ff7e5560e9c8f Mon Sep 17 00:00:00 2001
|
||
|
From: Chris Lumens <clumens@redhat.com>
|
||
|
Date: Fri, 12 Feb 2021 11:51:16 -0500
|
||
|
Subject: [PATCH] Low: Fix a problem with crm_resource exit code handling.
|
||
|
|
||
|
If no output is produced but an error message is printed (like, when an
|
||
|
inactive resource is provided on the command line), don't print the
|
||
|
error message for the pcmk_rc_no_output error code. It's weird to see
|
||
|
output and a message about no output at the same time.
|
||
|
|
||
|
Similarly, don't print an "Error: OK" message when usage is printed.
|
||
|
---
|
||
|
tools/crm_resource.c | 13 +++++++++----
|
||
|
1 file changed, 9 insertions(+), 4 deletions(-)
|
||
|
|
||
|
diff --git a/tools/crm_resource.c b/tools/crm_resource.c
|
||
|
index 7d2f0f6..29b0a04 100644
|
||
|
--- a/tools/crm_resource.c
|
||
|
+++ b/tools/crm_resource.c
|
||
|
@@ -1534,9 +1534,9 @@ main(int argc, char **argv)
|
||
|
|
||
|
rc = pcmk__output_new(&out, args->output_ty, args->output_dest, argv);
|
||
|
if (rc != pcmk_rc_ok) {
|
||
|
- fprintf(stderr, "Error creating output format %s: %s\n",
|
||
|
- args->output_ty, pcmk_rc_str(rc));
|
||
|
exit_code = CRM_EX_ERROR;
|
||
|
+ g_set_error(&error, PCMK__EXITC_ERROR, exit_code, "Error creating output format %s: %s",
|
||
|
+ args->output_ty, pcmk_rc_str(rc));
|
||
|
goto done;
|
||
|
}
|
||
|
|
||
|
@@ -2039,7 +2039,12 @@ main(int argc, char **argv)
|
||
|
*/
|
||
|
|
||
|
done:
|
||
|
- if (rc != pcmk_rc_ok) {
|
||
|
+ /* Don't do any of this for pcmk_rc_no_output (doesn't make sense to show an
|
||
|
+ * error message for no output) or for CRM_EX_USAGE (we don't want to show
|
||
|
+ * an "error: OK" message from pcmk_rc_str).
|
||
|
+ */
|
||
|
+ if ((rc != pcmk_rc_ok && rc != pcmk_rc_no_output) ||
|
||
|
+ (exit_code != CRM_EX_OK && exit_code != CRM_EX_USAGE)) {
|
||
|
if (rc == pcmk_rc_no_quorum) {
|
||
|
g_prefix_error(&error, "To ignore quorum, use the force option.\n");
|
||
|
}
|
||
|
@@ -2054,10 +2059,10 @@ done:
|
||
|
g_set_error(&error, PCMK__RC_ERROR, rc,
|
||
|
"Error performing operation: %s", pcmk_rc_str(rc));
|
||
|
}
|
||
|
+ }
|
||
|
|
||
|
- if (exit_code == CRM_EX_OK) {
|
||
|
- exit_code = pcmk_rc2exitc(rc);
|
||
|
- }
|
||
|
+ if (exit_code == CRM_EX_OK) {
|
||
|
+ exit_code = pcmk_rc2exitc(rc);
|
||
|
}
|
||
|
|
||
|
g_free(options.host_uname);
|
||
|
--
|
||
|
1.8.3.1
|
||
|
|