pacemaker  2.1.8-3980678f03
Scalable High-Availability cluster resource manager
agents.h
Go to the documentation of this file.
1 /*
2  * Copyright 2017-2024 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__CRM_COMMON_AGENTS__H
11 #define PCMK__CRM_COMMON_AGENTS__H
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
23 #include <stdint.h> // uint32_t
24 #include <stdbool.h>
25 
26 // Known resource classes
27 #define PCMK_RESOURCE_CLASS_OCF "ocf"
28 #define PCMK_RESOURCE_CLASS_SERVICE "service"
29 #define PCMK_RESOURCE_CLASS_LSB "lsb"
30 #define PCMK_RESOURCE_CLASS_SYSTEMD "systemd"
31 #define PCMK_RESOURCE_CLASS_STONITH "stonith"
32 #define PCMK_RESOURCE_CLASS_ALERT "alert"
33 #define PCMK_RESOURCE_CLASS_NAGIOS "nagios"
35 #define PCMK_RESOURCE_CLASS_UPSTART "upstart"
37 
38 /* Special stonith-class agent parameters interpreted directly by Pacemaker
39  * (not including the pcmk_ACTION_{action,retries,timeout} parameters)
40  */
41 #define PCMK_STONITH_ACTION_LIMIT "pcmk_action_limit"
42 #define PCMK_STONITH_DELAY_BASE "pcmk_delay_base"
43 #define PCMK_STONITH_DELAY_MAX "pcmk_delay_max"
44 #define PCMK_STONITH_HOST_ARGUMENT "pcmk_host_argument"
45 #define PCMK_STONITH_HOST_CHECK "pcmk_host_check"
46 #define PCMK_STONITH_HOST_LIST "pcmk_host_list"
47 #define PCMK_STONITH_HOST_MAP "pcmk_host_map"
48 #define PCMK_STONITH_PROVIDES "provides"
49 #define PCMK_STONITH_STONITH_TIMEOUT "stonith-timeout"
50 
51 // OCF Resource Agent API standard version that this Pacemaker supports
52 #define PCMK_OCF_MAJOR_VERSION "1"
53 #define PCMK_OCF_MINOR_VERSION "1"
54 #define PCMK_OCF_VERSION PCMK_OCF_MAJOR_VERSION "." PCMK_OCF_MINOR_VERSION
55 
56 // Capabilities supported by a resource agent standard
59  pcmk_ra_cap_provider = (1 << 0), // Requires provider
60  pcmk_ra_cap_status = (1 << 1), // Supports status instead of monitor
61  pcmk_ra_cap_params = (1 << 2), // Supports parameters
62  pcmk_ra_cap_unique = (1 << 3), // Supports unique clones
63  pcmk_ra_cap_promotable = (1 << 4), // Supports promotable clones
64  pcmk_ra_cap_stdin = (1 << 5), // Reads from standard input
65  pcmk_ra_cap_fence_params = (1 << 6), // Supports pcmk_monitor_timeout, etc.
66 };
67 
68 uint32_t pcmk_get_ra_caps(const char *standard);
69 char *crm_generate_ra_key(const char *standard, const char *provider,
70  const char *type);
71 int crm_parse_agent_spec(const char *spec, char **standard, char **provider,
72  char **type);
73 bool pcmk_stonith_param(const char *param);
74 
75 #if !defined(PCMK_ALLOW_DEPRECATED) || (PCMK_ALLOW_DEPRECATED == 1)
77 #endif
78 
79 #ifdef __cplusplus
80 }
81 #endif
82 
83 #endif // PCMK__CRM_COMMON_AGENTS__H
bool pcmk_stonith_param(const char *param)
Check whether a given stonith parameter is handled by Pacemaker.
Definition: agents.c:175
enum crm_ais_msg_types type
Definition: cpg.c:51
pcmk_ra_caps
Definition: agents.h:57
Deprecated Pacemaker resource agent API.
char * crm_generate_ra_key(const char *standard, const char *provider, const char *type)
Definition: agents.c:93
int crm_parse_agent_spec(const char *spec, char **standard, char **provider, char **type)
Parse a "standard[:provider]:type" agent specification.
Definition: agents.c:125
uint32_t pcmk_get_ra_caps(const char *standard)
Get capabilities of a resource agent standard.
Definition: agents.c:31