pacemaker 2.1.7-2.1.7
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
options_internal.h
Go to the documentation of this file.
1/*
2 * Copyright 2006-2023 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__OPTIONS_INTERNAL__H
11# define PCMK__OPTIONS_INTERNAL__H
12
13# ifndef PCMK__CONFIG_H
14# define PCMK__CONFIG_H
15# include <config.h> // _Noreturn
16# endif
17
18# include <glib.h> // GHashTable
19# include <stdbool.h> // bool
20
21_Noreturn void pcmk__cli_help(char cmd);
22
23
24/*
25 * Environment variable option handling
26 */
27
28const char *pcmk__env_option(const char *option);
29void pcmk__set_env_option(const char *option, const char *value, bool compat);
30bool pcmk__env_option_enabled(const char *daemon, const char *option);
31
32
33/*
34 * Cluster option handling
35 */
36
37typedef struct pcmk__cluster_option_s {
38 const char *name;
39 const char *alt_name;
40 const char *type;
41 const char *values;
42 const char *default_value;
43
44 bool (*is_valid)(const char *);
45
46 const char *description_short;
47 const char *description_long;
48
50
51const char *pcmk__cluster_option(GHashTable *options,
52 const pcmk__cluster_option_t *option_list,
53 int len, const char *name);
54
55gchar *pcmk__format_option_metadata(const char *name, const char *desc_short,
56 const char *desc_long,
57 pcmk__cluster_option_t *option_list,
58 int len);
59
60void pcmk__validate_cluster_options(GHashTable *options,
61 pcmk__cluster_option_t *option_list,
62 int len);
63
64bool pcmk__valid_interval_spec(const char *value);
65bool pcmk__valid_boolean(const char *value);
66bool pcmk__valid_number(const char *value);
67bool pcmk__valid_positive_number(const char *value);
68bool pcmk__valid_quorum(const char *value);
69bool pcmk__valid_script(const char *value);
70bool pcmk__valid_percentage(const char *value);
71
72// from watchdog.c
73long pcmk__get_sbd_timeout(void);
76bool pcmk__valid_sbd_timeout(const char *value);
77
78// Constants for environment variable names
79#define PCMK__ENV_AUTHKEY_LOCATION "authkey_location"
80#define PCMK__ENV_BLACKBOX "blackbox"
81#define PCMK__ENV_CALLGRIND_ENABLED "callgrind_enabled"
82#define PCMK__ENV_CLUSTER_TYPE "cluster_type"
83#define PCMK__ENV_DEBUG "debug"
84#define PCMK__ENV_DH_MAX_BITS "dh_max_bits"
85#define PCMK__ENV_DH_MIN_BITS "dh_min_bits"
86#define PCMK__ENV_FAIL_FAST "fail_fast"
87#define PCMK__ENV_IPC_BUFFER "ipc_buffer"
88#define PCMK__ENV_IPC_TYPE "ipc_type"
89#define PCMK__ENV_LOGFACILITY "logfacility"
90#define PCMK__ENV_LOGFILE "logfile"
91#define PCMK__ENV_LOGFILE_MODE "logfile_mode"
92#define PCMK__ENV_LOGPRIORITY "logpriority"
93#define PCMK__ENV_NODE_ACTION_LIMIT "node_action_limit"
94#define PCMK__ENV_NODE_START_STATE "node_start_state"
95#define PCMK__ENV_PANIC_ACTION "panic_action"
96#define PCMK__ENV_PHYSICAL_HOST "physical_host"
97#define PCMK__ENV_REMOTE_ADDRESS "remote_address"
98#define PCMK__ENV_REMOTE_PID1 "remote_pid1"
99#define PCMK__ENV_REMOTE_PORT "remote_port"
100#define PCMK__ENV_RESPAWNED "respawned"
101#define PCMK__ENV_SCHEMA_DIRECTORY "schema_directory"
102#define PCMK__ENV_SERVICE "service"
103#define PCMK__ENV_STDERR "stderr"
104#define PCMK__ENV_TLS_PRIORITIES "tls_priorities"
105#define PCMK__ENV_TRACE_BLACKBOX "trace_blackbox"
106#define PCMK__ENV_TRACE_FILES "trace_files"
107#define PCMK__ENV_TRACE_FORMATS "trace_formats"
108#define PCMK__ENV_TRACE_FUNCTIONS "trace_functions"
109#define PCMK__ENV_TRACE_TAGS "trace_tags"
110#define PCMK__ENV_VALGRIND_ENABLED "valgrind_enabled"
111
112// @COMPAT Drop at 3.0.0; default is plenty
113#define PCMK__ENV_CIB_TIMEOUT "cib_timeout"
114
115// @COMPAT Drop at 3.0.0; likely last used in 1.1.24
116#define PCMK__ENV_MCP "mcp"
117
118// @COMPAT Drop at 3.0.0; added unused in 1.1.9
119#define PCMK__ENV_QUORUM_TYPE "quorum_type"
120
121/* @COMPAT Drop at 3.0.0; added to debug shutdown issues when Pacemaker is
122 * managed by systemd, but no longer useful.
123 */
124#define PCMK__ENV_SHUTDOWN_DELAY "shutdown_delay"
125
126// Constants for cluster option names
127#define PCMK__OPT_NODE_HEALTH_BASE "node-health-base"
128#define PCMK__OPT_NODE_HEALTH_GREEN "node-health-green"
129#define PCMK__OPT_NODE_HEALTH_RED "node-health-red"
130#define PCMK__OPT_NODE_HEALTH_STRATEGY "node-health-strategy"
131#define PCMK__OPT_NODE_HEALTH_YELLOW "node-health-yellow"
132
133// Constants for meta-attribute names
134#define PCMK__META_ALLOW_UNHEALTHY_NODES "allow-unhealthy-nodes"
135
136// Constants for enumerated values for various options
137#define PCMK__VALUE_CLUSTER "cluster"
138#define PCMK__VALUE_CUSTOM "custom"
139#define PCMK__VALUE_FENCING "fencing"
140#define PCMK__VALUE_GREEN "green"
141#define PCMK__VALUE_LOCAL "local"
142#define PCMK__VALUE_MIGRATE_ON_RED "migrate-on-red"
143#define PCMK__VALUE_NONE "none"
144#define PCMK__VALUE_NOTHING "nothing"
145#define PCMK__VALUE_ONLY_GREEN "only-green"
146#define PCMK__VALUE_PROGRESSIVE "progressive"
147#define PCMK__VALUE_QUORUM "quorum"
148#define PCMK__VALUE_RED "red"
149#define PCMK__VALUE_UNFENCING "unfencing"
150#define PCMK__VALUE_YELLOW "yellow"
151
152#endif // PCMK__OPTIONS_INTERNAL__H
const char * name
Definition cib.c:26
#define _Noreturn
Definition config.h:654
_Noreturn void pcmk__cli_help(char cmd)
Definition options.c:25
struct pcmk__cluster_option_s pcmk__cluster_option_t
bool pcmk__valid_interval_spec(const char *value)
Definition options.c:180
bool pcmk__valid_boolean(const char *value)
Definition options.c:187
void pcmk__set_env_option(const char *option, const char *value, bool compat)
Set or unset a Pacemaker environment variable option.
Definition options.c:108
bool pcmk__valid_number(const char *value)
Definition options.c:195
long pcmk__get_sbd_timeout(void)
Definition watchdog.c:235
bool pcmk__env_option_enabled(const char *daemon, const char *option)
Definition options.c:165
gchar * pcmk__format_option_metadata(const char *name, const char *desc_short, const char *desc_long, pcmk__cluster_option_t *option_list, int len)
Definition options.c:426
bool pcmk__valid_quorum(const char *value)
Definition options.c:218
bool pcmk__valid_percentage(const char *value)
Definition options.c:251
const char * pcmk__cluster_option(GHashTable *options, const pcmk__cluster_option_t *option_list, int len, const char *name)
Definition options.c:350
const char * pcmk__env_option(const char *option)
Definition options.c:58
void pcmk__validate_cluster_options(GHashTable *options, pcmk__cluster_option_t *option_list, int len)
Definition options.c:501
bool pcmk__get_sbd_sync_resource_startup(void)
Definition watchdog.c:246
bool pcmk__valid_sbd_timeout(const char *value)
Definition watchdog.c:277
long pcmk__auto_watchdog_timeout(void)
Definition watchdog.c:269
bool pcmk__valid_positive_number(const char *value)
Definition options.c:209
bool pcmk__valid_script(const char *value)
Definition options.c:224
bool(* is_valid)(const char *)