pacemaker  1.1.24-3850484742
Scalable High-Availability cluster resource manager
Macros | Enumerations | Functions
util.h File Reference

Utility functions. More...

#include <sys/types.h>
#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>
#include <limits.h>
#include <signal.h>
#include <sysexits.h>
#include <glib.h>
#include <libxml/tree.h>
#include <crm/lrmd.h>
Include dependency graph for util.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define NORMALNODE   "normal"
 
#define ACTIVESTATUS   "active"/* fully functional, and all links are up */
 
#define DEADSTATUS   "dead"
 
#define PINGSTATUS   "ping"
 
#define JOINSTATUS   "join"
 
#define LEAVESTATUS   "leave"
 
#define ONLINESTATUS   "online"/* Status of an online client */
 
#define OFFLINESTATUS   "offline"
 
#define safe_str_eq(a, b)   crm_str_eq(a, b, FALSE)
 
#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"
 

Enumerations

enum  pcmk_ra_caps {
  pcmk_ra_cap_none = 0x000, pcmk_ra_cap_provider = 0x001, pcmk_ra_cap_status = 0x002, pcmk_ra_cap_params = 0x004,
  pcmk_ra_cap_unique = 0x008, pcmk_ra_cap_promotable = 0x010
}
 

Functions

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)
 
char * crm_itoa (int an_int)
 
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...
 
char * crm_strip_trailing_newline (char *str)
 
gboolean crm_str_eq (const char *a, const char *b, gboolean use_case)
 
gboolean safe_str_neq (const char *a, const char *b)
 
guint crm_strcase_hash (gconstpointer v)
 
guint g_str_hash_traditional (gconstpointer v)
 
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...
 
long long crm_get_msec (const char *input)
 
unsigned long long crm_get_interval (const char *input)
 
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, int *interval)
 
gboolean decode_transition_key (const char *key, char **uuid, int *action, int *transition_id, int *target_rc)
 
gboolean decode_transition_magic (const char *magic, char **uuid, int *transition_id, int *action_id, int *op_status, int *op_rc, int *target_rc)
 
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, 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...
 
bool crm_provider_required (const char *standard)
 Check whether a resource standard requires a provider to be specified. 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 a string represents a cluster daemon name. More...
 
int crm_user_lookup (const char *name, uid_t *uid, gid_t *gid)
 
int crm_exit (int rc)
 
bool pcmk_acl_required (const char *user)
 

Detailed Description

Utility functions.

Definition in file util.h.

Macro Definition Documentation

◆ ACTIVESTATUS

#define ACTIVESTATUS   "active"/* fully functional, and all links are up */

Definition at line 44 of file util.h.

◆ crm_atoi

#define crm_atoi (   text,
  default_text 
)    crm_parse_int(text, default_text)

Definition at line 112 of file util.h.

◆ CRM_DEFAULT_OP_TIMEOUT_S

#define CRM_DEFAULT_OP_TIMEOUT_S   "20s"

Definition at line 137 of file util.h.

◆ crm_str_hash

#define crm_str_hash   g_str_hash_traditional

Definition at line 75 of file util.h.

◆ DEADSTATUS

#define DEADSTATUS   "dead"

Definition at line 45 of file util.h.

◆ JOINSTATUS

#define JOINSTATUS   "join"

Definition at line 49 of file util.h.

◆ LEAVESTATUS

#define LEAVESTATUS   "leave"

Definition at line 51 of file util.h.

◆ NORMALNODE

#define NORMALNODE   "normal"

Definition at line 43 of file util.h.

◆ OFFLINESTATUS

#define OFFLINESTATUS   "offline"

Definition at line 54 of file util.h.

◆ ONLINESTATUS

#define ONLINESTATUS   "online"/* Status of an online client */

Definition at line 53 of file util.h.

◆ PINGSTATUS

#define PINGSTATUS   "ping"

Definition at line 47 of file util.h.

◆ safe_str_eq

#define safe_str_eq (   a,
 
)    crm_str_eq(a, b, FALSE)

Definition at line 74 of file util.h.

Enumeration Type Documentation

◆ pcmk_ra_caps

Enumerator
pcmk_ra_cap_none 
pcmk_ra_cap_provider 
pcmk_ra_cap_status 
pcmk_ra_cap_params 
pcmk_ra_cap_unique 
pcmk_ra_cap_promotable 

Definition at line 142 of file util.h.

Function Documentation

◆ char2score()

int char2score ( const char *  score)

Definition at line 221 of file utils.c.

◆ compare_version()

int compare_version ( const char *  version1,
const char *  version2 
)

Definition at line 477 of file utils.c.

◆ crm_abort()

void crm_abort ( const char *  file,
const char *  function,
int  line,
const char *  condition,
gboolean  do_core,
gboolean  do_fork 
)

Definition at line 647 of file utils.c.

◆ crm_build_path()

void crm_build_path ( const char *  path_c,
mode_t  mode 
)

Create a directory, including any parent directories needed.

Parameters
[in]path_cPathname of the directory to create
[in]modePermissions to be used (with current umask) when creating
Note
This logs errors but does not return them to the caller.

Definition at line 40 of file io.c.

◆ crm_create_op_xml()

xmlNode* crm_create_op_xml ( xmlNode *  parent,
const char *  prefix,
const char *  task,
const char *  interval,
const char *  timeout 
)

Create a CIB XML element for an operation.

Parameters
[in]parentIf not NULL, make new XML node a child of this one
[in]prefixGenerate an ID using this prefix
[in]taskOperation task to set
[in]intervalOperation interval to set
[in]timeoutIf not NULL, operation timeout to set
Returns
New XML object on success, NULL otherwise

Definition at line 455 of file operations.c.

◆ crm_default_remote_port()

int crm_default_remote_port ( void  )

Get the default remote connection TCP port on this host.

Returns
Remote connection TCP port number

Definition at line 1220 of file remote.c.

◆ crm_exit()

int crm_exit ( int  rc)

Definition at line 74 of file utils.c.

◆ crm_generate_ra_key()

char* crm_generate_ra_key ( const char *  standard,
const char *  provider,
const char *  type 
)

Definition at line 74 of file agents.c.

◆ crm_generate_uuid()

char* crm_generate_uuid ( void  )

Definition at line 1279 of file utils.c.

◆ crm_get_interval()

unsigned long long crm_get_interval ( const char *  input)

Definition at line 564 of file utils.c.

◆ crm_get_msec()

long long crm_get_msec ( const char *  input)

Definition at line 589 of file utils.c.

◆ crm_is_daemon_name()

bool crm_is_daemon_name ( const char *  name)

Check whether a string represents a cluster daemon name.

Parameters
[in]nameString to check
Returns
TRUE if name is standard client name used by daemons, FALSE otherwise

Definition at line 1297 of file utils.c.

◆ crm_is_true()

gboolean crm_is_true ( const char *  s)

Definition at line 197 of file strings.c.

◆ crm_itoa()

char* crm_itoa ( int  an_int)

Definition at line 61 of file strings.c.

◆ crm_itoa_stack()

char* crm_itoa_stack ( int  an_int,
char *  buf,
size_t  len 
)

Definition at line 51 of file strings.c.

◆ crm_md5sum()

char* crm_md5sum ( const char *  buffer)

Definition at line 1313 of file utils.c.

◆ crm_meta_name()

char* crm_meta_name ( const char *  field)

Definition at line 935 of file utils.c.

◆ crm_meta_value()

const char* crm_meta_value ( GHashTable *  hash,
const char *  field 
)

Definition at line 957 of file utils.c.

◆ crm_op_needs_metadata()

bool crm_op_needs_metadata ( const char *  rsc_class,
const char *  op 
)

Check whether an operation requires resource agent meta-data.

Parameters
[in]rsc_classResource agent class (or NULL to skip class check)
[in]opOperation action (or NULL to skip op check)
Returns
TRUE if operation needs meta-data, FALSE otherwise
Note
At least one of rsc_class and op must be specified.

Definition at line 657 of file operations.c.

◆ crm_parse_agent_spec()

int crm_parse_agent_spec ( const char *  spec,
char **  standard,
char **  provider,
char **  type 
)

Parse a "standard[:provider]:type" agent specification.

Parameters
[in]specAgent specification
[out]standardNewly allocated memory containing agent standard (or NULL)
[out]providerNewly allocated memory containing agent provider (or NULL)

Definition at line 116 of file agents.c.

◆ crm_parse_int()

int crm_parse_int ( const char *  text,
const char *  default_text 
)

Parse an integer value from a string.

Parameters
[in]textThe string to parse
[in]default_textDefault string to parse if text is NULL
Returns
Parsed value on success, INT_MIN or INT_MAX (and set errno to ERANGE) if parsed value is out of integer range, otherwise -1 (and set errno)

Definition at line 157 of file strings.c.

◆ crm_parse_ll()

long long crm_parse_ll ( const char *  text,
const char *  default_text 
)

Parse a long long integer value from a string.

Parameters
[in]textThe string to parse
[in]default_textDefault string to parse if text is NULL
Returns
Parsed value on success, -1 (and set errno) on error

Definition at line 134 of file strings.c.

◆ crm_provider_required()

bool crm_provider_required ( const char *  standard)

Check whether a resource standard requires a provider to be specified.

Deprecated:
Parameters
[in]standardStandard name
Returns
TRUE if standard requires a provider, FALSE otherwise

Definition at line 96 of file agents.c.

◆ crm_str_eq()

gboolean crm_str_eq ( const char *  a,
const char *  b,
gboolean  use_case 
)

Definition at line 245 of file strings.c.

◆ crm_str_table_dup()

GHashTable* crm_str_table_dup ( GHashTable *  old_table)

Definition at line 414 of file strings.c.

◆ crm_str_to_boolean()

int crm_str_to_boolean ( const char *  s,
int *  ret 
)

Definition at line 208 of file strings.c.

◆ crm_strcase_hash()

guint crm_strcase_hash ( gconstpointer  v)

Definition at line 394 of file strings.c.

◆ crm_strip_trailing_newline()

char* crm_strip_trailing_newline ( char *  str)

Definition at line 229 of file strings.c.

◆ crm_user_lookup()

int crm_user_lookup ( const char *  name,
uid_t *  uid,
gid_t *  gid 
)

Definition at line 424 of file utils.c.

◆ decode_transition_key()

gboolean decode_transition_key ( const char *  key,
char **  uuid,
int *  action,
int *  transition_id,
int *  target_rc 
)

Definition at line 233 of file operations.c.

◆ decode_transition_magic()

gboolean decode_transition_magic ( const char *  magic,
char **  uuid,
int *  transition_id,
int *  action_id,
int *  op_status,
int *  op_rc,
int *  target_rc 
)

Definition at line 190 of file operations.c.

◆ did_rsc_op_fail()

gboolean did_rsc_op_fail ( lrmd_event_data_t event,
int  target_rc 
)

Definition at line 420 of file operations.c.

◆ g_str_hash_traditional()

guint g_str_hash_traditional ( gconstpointer  v)

Definition at line 382 of file strings.c.

◆ parse_op_key()

gboolean parse_op_key ( const char *  key,
char **  rsc_id,
char **  op_type,
int *  interval 
)

Definition at line 46 of file operations.c.

◆ pcmk_acl_required()

bool pcmk_acl_required ( const char *  user)

Definition at line 656 of file acl.c.

◆ pcmk_get_ra_caps()

uint32_t pcmk_get_ra_caps ( const char *  standard)

Get capabilities of a resource agent standard.

Parameters
[in]standardStandard name
Returns
Bitmask of enum pcmk_ra_caps values

Definition at line 29 of file agents.c.

◆ rsc_op_expected_rc()

int rsc_op_expected_rc ( lrmd_event_data_t event)

Definition at line 405 of file operations.c.

◆ safe_str_neq()

gboolean safe_str_neq ( const char *  a,
const char *  b 
)

Definition at line 182 of file strings.c.

◆ score2char()

char* score2char ( int  score)

Definition at line 273 of file utils.c.

◆ score2char_stack()

char* score2char_stack ( int  score,
char *  buf,
size_t  len 
)

Definition at line 259 of file utils.c.