pacemaker  2.1.3-ea053b43a
Scalable High-Availability cluster resource manager
results_internal.h
Go to the documentation of this file.
1 /*
2  * Copyright 2020-2022 the Pacemaker project contributors
3  *
4  * The version control history for this file may have further details.
5  *
6  * This source code is licensed under the GNU Lesser General Public License
7  * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
8  */
9 
10 #ifndef PCMK__COMMON_RESULTS_INTERNAL__H
11 #define PCMK__COMMON_RESULTS_INTERNAL__H
12 
13 #include <glib.h> // GQuark
14 
15 /* Error domains for use with g_set_error */
16 
17 GQuark pcmk__rc_error_quark(void);
18 GQuark pcmk__exitc_error_quark(void);
19 
20 #define PCMK__RC_ERROR pcmk__rc_error_quark()
21 #define PCMK__EXITC_ERROR pcmk__exitc_error_quark()
22 
23 /* Action results */
24 
25 typedef struct {
26  int exit_status; // Child exit status
27  enum pcmk_exec_status execution_status; // Execution status
28  char *exit_reason; // Brief, human-friendly explanation
29  char *action_stdout; // Action output
30  char *action_stderr; // Action error output
32 
40 #define PCMK__UNKNOWN_RESULT { \
41  .exit_status = CRM_EX_OK, \
42  .execution_status = PCMK_EXEC_UNKNOWN, \
43  .exit_reason = NULL, \
44  .action_stdout = NULL, \
45  .action_stderr = NULL, \
46  }
47 
48 void pcmk__set_result(pcmk__action_result_t *result, int exit_status,
49  enum pcmk_exec_status exec_status,
50  const char *exit_reason);
51 
52 void pcmk__format_result(pcmk__action_result_t *result, int exit_status,
53  enum pcmk_exec_status exec_status,
54  const char *format, ...) G_GNUC_PRINTF(4, 5);
55 
57  char *out, char *err);
58 
60 
62 
72 static inline bool
73 pcmk__result_ok(const pcmk__action_result_t *result)
74 {
75  return (result != NULL) && (result->exit_status == CRM_EX_OK)
77 }
78 
79 #endif // PCMK__COMMON_RESULTS_INTERNAL__H
void pcmk__format_result(pcmk__action_result_t *result, int exit_status, enum pcmk_exec_status exec_status, const char *format,...) G_GNUC_PRINTF(4
void void pcmk__set_result_output(pcmk__action_result_t *result, char *out, char *err)
Definition: results.c:883
enum pcmk_exec_status execution_status
void pcmk__copy_result(pcmk__action_result_t *src, pcmk__action_result_t *dst)
Definition: results.c:927
Action completed, result is known.
Definition: results.h:308
Success.
Definition: results.h:239
pcmk__action_result_t result
Definition: pcmk_fence.c:34
GQuark pcmk__rc_error_quark(void)
void pcmk__set_result(pcmk__action_result_t *result, int exit_status, enum pcmk_exec_status exec_status, const char *exit_reason)
Definition: results.c:814
pcmk_exec_status
Execution status.
Definition: results.h:305
GQuark pcmk__exitc_error_quark(void)
void pcmk__reset_result(pcmk__action_result_t *result)
Definition: results.c:903