pacemaker 2.1.4-dc6eb4362e
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
19
20#define PCMK__RC_ERROR pcmk__rc_error_quark()
21#define PCMK__EXITC_ERROR pcmk__exitc_error_quark()
22
23/* Action results */
24
25typedef 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
48void pcmk__set_result(pcmk__action_result_t *result, int exit_status,
49 enum pcmk_exec_status exec_status,
50 const char *exit_reason);
51
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
72static inline bool
73pcmk__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
pcmk__action_result_t result
Definition: pcmk_fence.c:34
@ CRM_EX_OK
Success.
Definition: results.h:239
pcmk_exec_status
Execution status.
Definition: results.h:305
@ PCMK_EXEC_DONE
Action completed, result is known.
Definition: results.h:308
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
void void pcmk__set_result_output(pcmk__action_result_t *result, char *out, char *err)
Definition: results.c:883
GQuark pcmk__rc_error_quark(void)
GQuark pcmk__exitc_error_quark(void)
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 pcmk__reset_result(pcmk__action_result_t *result)
Definition: results.c:903
void pcmk__copy_result(pcmk__action_result_t *src, pcmk__action_result_t *dst)
Definition: results.c:927
enum pcmk_exec_status execution_status