1 /*
2  * Copyright 2021 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_OUTPUT__H
11 #  define PCMK__COMMON_OUTPUT__H
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 /**
18  * \file
19  * \brief Control output from tools
20  * \ingroup core
21  */
22 
23 /*!
24  * \brief Control which sections are output
25  */
26 typedef enum {
27     pcmk_section_stack         = 1 << 0,
28     pcmk_section_dc            = 1 << 1,
29     pcmk_section_times         = 1 << 2,
30     pcmk_section_counts        = 1 << 3,
31     pcmk_section_options       = 1 << 4,
32     pcmk_section_nodes         = 1 << 5,
33     pcmk_section_resources     = 1 << 6,
34     pcmk_section_attributes    = 1 << 7,
35     pcmk_section_failcounts    = 1 << 8,
36     pcmk_section_operations    = 1 << 9,
37     pcmk_section_fence_failed  = 1 << 10,
38     pcmk_section_fence_pending = 1 << 11,
39     pcmk_section_fence_worked  = 1 << 12,
40     pcmk_section_tickets       = 1 << 13,
41     pcmk_section_bans          = 1 << 14,
42     pcmk_section_failures      = 1 << 15,
43 } pcmk_section_e;
44 
45 #define pcmk_section_fencing_all    (pcmk_section_fence_failed | pcmk_section_fence_pending | pcmk_section_fence_worked)
46 #define pcmk_section_summary        (pcmk_section_stack | pcmk_section_dc | pcmk_section_times | pcmk_section_counts)
47 #define pcmk_section_all            (pcmk_section_summary | pcmk_section_options | pcmk_section_nodes | \
48                                      pcmk_section_resources | pcmk_section_attributes | pcmk_section_failcounts | \
49                                      pcmk_section_operations | pcmk_section_fencing_all | pcmk_section_tickets | \
50                                      pcmk_section_bans | pcmk_section_failures)
51 
52 /*!
53  * \brief Further modify the output of sections
54  */
55 typedef enum {
56     pcmk_show_brief         = 1 << 0,
57     pcmk_show_clone_detail  = 1 << 1,
58     pcmk_show_node_id       = 1 << 2,
59     pcmk_show_implicit_rscs = 1 << 3,
60     pcmk_show_timing        = 1 << 4,
61     pcmk_show_inactive_rscs = 1 << 5,
62     pcmk_show_rscs_by_node  = 1 << 6,
63     pcmk_show_pending       = 1 << 7,
64     pcmk_show_rsc_only      = 1 << 8,
65 } pcmk_show_opt_e;
66 
67 #define pcmk_show_details           (pcmk_show_clone_detail | pcmk_show_node_id | pcmk_show_implicit_rscs)
68 
69 #ifdef __cplusplus
70 }
71 #endif
72 
73 #endif // PCMK__COMMON_OUTPUT__H
74