pacemaker
2.0.5-ba59be712
Scalable High-Availability cluster resource manager
|
Utility functions. More...
#include <sys/types.h>
#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>
#include <limits.h>
#include <signal.h>
#include <glib.h>
#include <libxml/tree.h>
#include <crm/lrmd.h>
#include <crm/common/acl.h>
#include <crm/common/results.h>
Go to the source code of this file.
Macros | |
#define | ONLINESTATUS "online" |
#define | OFFLINESTATUS "offline" |
#define | crm_str_hash g_str_hash_traditional |
#define | crm_atoi(text, default_text) crm_parse_int(text, default_text) |
#define | CRM_DEFAULT_OP_TIMEOUT_S "20s" |
#define | pcmk_is_set(g, f) pcmk_all_flags_set((g), (f)) |
Convenience alias for pcmk_all_flags_set(), to check single flag. More... | |
#define | crm_get_interval crm_parse_interval_spec |
#define | safe_str_eq(a, b) crm_str_eq(a, b, FALSE) |
Enumerations | |
enum | pcmk_ra_caps { pcmk_ra_cap_none = 0, pcmk_ra_cap_provider = (1 << 0), pcmk_ra_cap_status = (1 << 1), pcmk_ra_cap_params = (1 << 2), pcmk_ra_cap_unique = (1 << 3), pcmk_ra_cap_promotable = (1 << 4), pcmk_ra_cap_stdin = (1 << 5), pcmk_ra_cap_fence_params = (1 << 6) } |
Functions | |
int | pcmk_scan_nvpair (const char *input, char **name, char **value) |
Extract the name and value from an input string formatted as "name=value". If unable to extract them, they are returned as NULL. More... | |
char * | pcmk_format_nvpair (const char *name, const char *value, const char *units) |
char * | pcmk_format_named_time (const char *name, time_t epoch_time) |
int | crm_default_remote_port (void) |
Get the default remote connection TCP port on this host. More... | |
char * | crm_itoa_stack (int an_int, char *buf, size_t len) |
gboolean | crm_is_true (const char *s) |
int | crm_str_to_boolean (const char *s, int *ret) |
long long | crm_parse_ll (const char *text, const char *default_text) |
Parse a long long integer value from a string. More... | |
int | crm_parse_int (const char *text, const char *default_text) |
Parse an integer value from a string. More... | |
long long | crm_get_msec (const char *input) |
Parse a time+units string and return milliseconds equivalent. More... | |
char * | crm_strip_trailing_newline (char *str) |
gboolean | crm_strcase_equal (gconstpointer a, gconstpointer b) |
guint | crm_strcase_hash (gconstpointer v) |
guint | g_str_hash_traditional (gconstpointer v) |
char * | crm_strdup_printf (char const *format,...) __attribute__((__format__(__printf__ |
char int | pcmk_numeric_strcasecmp (const char *s1, const char *s2) |
Sort strings, with numeric portions sorted numerically. More... | |
GHashTable * | crm_str_table_dup (GHashTable *old_table) |
void | crm_build_path (const char *path_c, mode_t mode) |
Create a directory, including any parent directories needed. More... | |
guint | crm_parse_interval_spec (const char *input) |
Parse milliseconds from a Pacemaker interval specification. More... | |
int | char2score (const char *score) |
char * | score2char (int score) |
char * | score2char_stack (int score, char *buf, size_t len) |
gboolean | parse_op_key (const char *key, char **rsc_id, char **op_type, guint *interval_ms) |
gboolean | decode_transition_key (const char *key, char **uuid, int *transition_id, int *action_id, int *target_rc) |
Parse a transition key into its constituent parts. More... | |
gboolean | decode_transition_magic (const char *magic, char **uuid, int *transition_id, int *action_id, int *op_status, int *op_rc, int *target_rc) |
Parse a transition magic string into its constituent parts. More... | |
int | rsc_op_expected_rc (lrmd_event_data_t *event) |
gboolean | did_rsc_op_fail (lrmd_event_data_t *event, int target_rc) |
bool | crm_op_needs_metadata (const char *rsc_class, const char *op) |
Check whether an operation requires resource agent meta-data. More... | |
xmlNode * | crm_create_op_xml (xmlNode *parent, const char *prefix, const char *task, const char *interval_spec, const char *timeout) |
Create a CIB XML element for an operation. More... | |
uint32_t | pcmk_get_ra_caps (const char *standard) |
Get capabilities of a resource agent standard. More... | |
char * | crm_generate_ra_key (const char *standard, const char *provider, const char *type) |
int | crm_parse_agent_spec (const char *spec, char **standard, char **provider, char **type) |
Parse a "standard[:provider]:type" agent specification. More... | |
int | compare_version (const char *version1, const char *version2) |
void | crm_abort (const char *file, const char *function, int line, const char *condition, gboolean do_core, gboolean do_fork) |
char * | crm_meta_name (const char *field) |
const char * | crm_meta_value (GHashTable *hash, const char *field) |
char * | crm_md5sum (const char *buffer) |
char * | crm_generate_uuid (void) |
bool | crm_is_daemon_name (const char *name) |
Check whether string represents a client name used by cluster daemons. More... | |
int | crm_user_lookup (const char *name, uid_t *uid, gid_t *gid) |
int | pcmk_daemon_user (uid_t *uid, gid_t *gid) |
Get user and group IDs of pacemaker daemon user. More... | |
char * | pcmk_hostname (void) |
Get the local hostname. More... | |
bool | pcmk_str_is_infinity (const char *s) |
bool | pcmk_str_is_minus_infinity (const char *s) |
bool | crm_provider_required (const char *standard) |
Check whether a resource standard requires a provider to be specified. More... | |
gboolean | crm_str_eq (const char *a, const char *b, gboolean use_case) |
gboolean | safe_str_neq (const char *a, const char *b) |
Utility functions.
Definition in file util.h.
#define crm_atoi | ( | text, | |
default_text | |||
) | crm_parse_int(text, default_text) |
#define crm_get_interval crm_parse_interval_spec |
#define crm_str_hash g_str_hash_traditional |
#define pcmk_is_set | ( | g, | |
f | |||
) | pcmk_all_flags_set((g), (f)) |
#define safe_str_eq | ( | a, | |
b | |||
) | crm_str_eq(a, b, FALSE) |
enum pcmk_ra_caps |
int compare_version | ( | const char * | version1, |
const char * | version2 | ||
) |
void crm_abort | ( | const char * | file, |
const char * | function, | ||
int | line, | ||
const char * | condition, | ||
gboolean | do_core, | ||
gboolean | do_fork | ||
) |
void crm_build_path | ( | const char * | path_c, |
mode_t | mode | ||
) |
xmlNode* crm_create_op_xml | ( | xmlNode * | parent, |
const char * | prefix, | ||
const char * | task, | ||
const char * | interval_spec, | ||
const char * | timeout | ||
) |
Create a CIB XML element for an operation.
[in] | parent | If not NULL, make new XML node a child of this one |
[in] | prefix | Generate an ID using this prefix |
[in] | task | Operation task to set |
[in] | interval_spec | Operation interval to set |
[in] | timeout | If not NULL, operation timeout to set |
Definition at line 474 of file operations.c.
int crm_default_remote_port | ( | void | ) |
char* crm_generate_ra_key | ( | const char * | standard, |
const char * | provider, | ||
const char * | type | ||
) |
long long crm_get_msec | ( | const char * | input | ) |
Parse a time+units string and return milliseconds equivalent.
[in] | input | String with a number and units (optionally with whitespace before and/or after the number) |
bool crm_is_daemon_name | ( | const char * | name | ) |
Check whether string represents a client name used by cluster daemons.
[in] | name | String to check |
Definition at line 923 of file ipc_server.c.
char* crm_itoa_stack | ( | int | an_int, |
char * | buf, | ||
size_t | len | ||
) |
const char* crm_meta_value | ( | GHashTable * | hash, |
const char * | field | ||
) |
bool crm_op_needs_metadata | ( | const char * | rsc_class, |
const char * | op | ||
) |
Check whether an operation requires resource agent meta-data.
[in] | rsc_class | Resource agent class (or NULL to skip class check) |
[in] | op | Operation action (or NULL to skip op check) |
Definition at line 501 of file operations.c.
int crm_parse_agent_spec | ( | const char * | spec, |
char ** | standard, | ||
char ** | provider, | ||
char ** | type | ||
) |
Parse a "standard[:provider]:type" agent specification.
[in] | spec | Agent specification |
[out] | standard | Newly allocated memory containing agent standard (or NULL) |
[out] | provider | Newly allocated memory containing agent provider (or NULL) |
[put] | type Newly allocated memory containing agent type (or NULL) |
int crm_parse_int | ( | const char * | text, |
const char * | default_text | ||
) |
Parse an integer value from a string.
[in] | text | The string to parse |
[in] | default_text | Default string to parse if text is NULL |
guint crm_parse_interval_spec | ( | const char * | input | ) |
Parse milliseconds from a Pacemaker interval specification.
[in] | input | Pacemaker time interval specification (a bare number of seconds, a number with a unit optionally with whitespace before and/or after the number, or an ISO 8601 duration) |
long long crm_parse_ll | ( | const char * | text, |
const char * | default_text | ||
) |
bool crm_provider_required | ( | const char * | standard | ) |
Check whether a resource standard requires a provider to be specified.
[in] | standard | Standard name |
gboolean crm_str_eq | ( | const char * | a, |
const char * | b, | ||
gboolean | use_case | ||
) |
gboolean crm_strcase_equal | ( | gconstpointer | a, |
gconstpointer | b | ||
) |
char* crm_strdup_printf | ( | char const * | format, |
... | |||
) |
int crm_user_lookup | ( | const char * | name, |
uid_t * | uid, | ||
gid_t * | gid | ||
) |
gboolean decode_transition_key | ( | const char * | key, |
char ** | uuid, | ||
int * | transition_id, | ||
int * | action_id, | ||
int * | target_rc | ||
) |
Parse a transition key into its constituent parts.
[in] | key | Transition key to parse (must be non-NULL) |
[out] | uuid | If non-NULL, where to store copy of parsed UUID |
[out] | transition_id | If non-NULL, where to store parsed transition ID |
[out] | action_id | If non-NULL, where to store parsed action ID |
[out] | target_rc | If non-NULL, where to stored parsed target rc |
Definition at line 317 of file operations.c.
gboolean decode_transition_magic | ( | const char * | magic, |
char ** | uuid, | ||
int * | transition_id, | ||
int * | action_id, | ||
int * | op_status, | ||
int * | op_rc, | ||
int * | target_rc | ||
) |
Parse a transition magic string into its constituent parts.
[in] | magic | Magic string to parse (must be non-NULL) |
[out] | uuid | If non-NULL, where to store copy of parsed UUID |
[out] | transition_id | If non-NULL, where to store parsed transition ID |
[out] | action_id | If non-NULL, where to store parsed action ID |
[out] | op_status | If non-NULL, where to store parsed result status |
[out] | op_rc | If non-NULL, where to store parsed actual rc |
[out] | target_rc | If non-NULL, where to stored parsed target rc |
Definition at line 254 of file operations.c.
gboolean did_rsc_op_fail | ( | lrmd_event_data_t * | event, |
int | target_rc | ||
) |
Definition at line 439 of file operations.c.
gboolean parse_op_key | ( | const char * | key, |
char ** | rsc_id, | ||
char ** | op_type, | ||
guint * | interval_ms | ||
) |
Definition at line 184 of file operations.c.
int pcmk_daemon_user | ( | uid_t * | uid, |
gid_t * | gid | ||
) |
char* pcmk_format_named_time | ( | const char * | name, |
time_t | epoch_time | ||
) |
char* pcmk_format_nvpair | ( | const char * | name, |
const char * | value, | ||
const char * | units | ||
) |
uint32_t pcmk_get_ra_caps | ( | const char * | standard | ) |
char* pcmk_hostname | ( | void | ) |
char int pcmk_numeric_strcasecmp | ( | const char * | s1, |
const char * | s2 | ||
) |
Sort strings, with numeric portions sorted numerically.
Sort two strings case-insensitively like strcasecmp(), but with any numeric portions of the string sorted numerically. This is particularly useful for node names (for example, "node10" will sort higher than "node9" but lower than "remotenode9").
[in] | s1 | First string to compare (must not be NULL) |
[in] | s2 | Second string to compare (must not be NULL) |
-1 | s1 comes before s2 |
0 | s1 and s2 are equal |
1 | s1 comes after s2 |
int pcmk_scan_nvpair | ( | const char * | input, |
char ** | name, | ||
char ** | value | ||
) |
Extract the name and value from an input string formatted as "name=value". If unable to extract them, they are returned as NULL.
[in] | input | The input string, likely from the command line |
[out] | name | Everything before the first '=' in the input string |
[out] | value | Everything after the first '=' in the input string |
int rsc_op_expected_rc | ( | lrmd_event_data_t * | event | ) |
Definition at line 428 of file operations.c.
gboolean safe_str_neq | ( | const char * | a, |
const char * | b | ||
) |