pacemaker  2.0.2-debe490
Scalable High-Availability cluster resource manager
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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 <glib.h>
#include <libxml/tree.h>
#include <crm/lrmd.h>
#include <crm/common/results.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 ONLINESTATUS   "online"
 
#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_get_interval   crm_parse_interval_spec
 
#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 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...
 
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...
 
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)
 
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__
 
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)
 
guint crm_parse_interval_spec (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, guint *interval_ms)
 
gboolean decode_transition_key (const char *key, char **uuid, int *action, int *transition_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...
 
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)
 
bool pcmk_acl_required (const char *user)
 
char * pcmk_hostname (void)
 Get the local hostname. More...
 

Detailed Description

Utility functions.

Definition in file util.h.

Macro Definition Documentation

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

Definition at line 96 of file util.h.

#define CRM_DEFAULT_OP_TIMEOUT_S   "20s"

Definition at line 124 of file util.h.

#define crm_get_interval   crm_parse_interval_spec

Definition at line 108 of file util.h.

#define crm_str_hash   g_str_hash_traditional

Definition at line 60 of file util.h.

#define OFFLINESTATUS   "offline"

Definition at line 37 of file util.h.

#define ONLINESTATUS   "online"

Definition at line 36 of file util.h.

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

Definition at line 59 of file util.h.

Enumeration Type Documentation

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 129 of file util.h.

Function Documentation

int char2score ( const char *  score)

Definition at line 199 of file utils.c.

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

Definition at line 461 of file utils.c.

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

Definition at line 625 of file utils.c.

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 39 of file io.c.

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.

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]interval_specOperation interval to set
[in]timeoutIf not NULL, operation timeout to set
Returns
New XML object on success, NULL otherwise

Definition at line 422 of file operations.c.

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 1180 of file remote.c.

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

Definition at line 68 of file agents.c.

char* crm_generate_uuid ( void  )

Definition at line 1078 of file utils.c.

long long crm_get_msec ( const char *  input)

Definition at line 567 of file utils.c.

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 1136 of file utils.c.

gboolean crm_is_true ( const char *  s)

Definition at line 172 of file strings.c.

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

Definition at line 24 of file strings.c.

char* crm_md5sum ( const char *  buffer)

Definition at line 1153 of file utils.c.

char* crm_meta_name ( const char *  field)

Definition at line 734 of file utils.c.

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

Definition at line 756 of file utils.c.

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 607 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.

Parameters
[in]specAgent specification
[out]standardNewly allocated memory containing agent standard (or NULL)
[out]providerNewly allocated memory containing agent provider (or NULL)
put]type Newly allocated memory containing agent type (or NULL)
Returns
pcmk_ok if the string could be parsed, -EINVAL otherwise
Note
It is acceptable for the type to contain a ':' if the standard supports that. For example, systemd supports the form "systemd:UNIT@A:B".
It is the caller's responsibility to free the returned values.

Definition at line 110 of file agents.c.

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 110 of file strings.c.

guint crm_parse_interval_spec ( const char *  input)

Definition at line 542 of file utils.c.

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 87 of file strings.c.

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 90 of file agents.c.

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

Definition at line 220 of file strings.c.

GHashTable* crm_str_table_dup ( GHashTable *  old_table)

Definition at line 396 of file strings.c.

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

Definition at line 183 of file strings.c.

gboolean crm_strcase_equal ( gconstpointer  a,
gconstpointer  b 
)

Definition at line 370 of file strings.c.

guint crm_strcase_hash ( gconstpointer  v)

Definition at line 376 of file strings.c.

char* crm_strdup_printf ( char const *  format,
  ... 
)
char* crm_strip_trailing_newline ( char *  str)

Definition at line 204 of file strings.c.

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

Definition at line 402 of file utils.c.

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.

Parameters
[in]keyTransition key to parse (must be non-NULL)
[out]uuidIf non-NULL, where to store copy of parsed UUID
[out]transition_idIf non-NULL, where to store parsed transition ID
[out]action_idIf non-NULL, where to store parsed action ID
[out]target_rcIf non-NULL, where to stored parsed target rc
Returns
TRUE if key was valid, FALSE otherwise
Note
If uuid is supplied and this returns TRUE, the caller is responsible for freeing the memory for *uuid using free().

Definition at line 222 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.

Parameters
[in]magicMagic string to parse (must be non-NULL)
[out]uuidIf non-NULL, where to store copy of parsed UUID
[out]transition_idIf non-NULL, where to store parsed transition ID
[out]action_idIf non-NULL, where to store parsed action ID
[out]op_statusIf non-NULL, where to store parsed result status
[out]op_rcIf non-NULL, where to store parsed actual rc
[out]target_rcIf non-NULL, where to stored parsed target rc
Returns
TRUE if key was valid, FALSE otherwise
Note
If uuid is supplied and this returns TRUE, the caller is responsible for freeing the memory for *uuid using free().

Definition at line 160 of file operations.c.

gboolean did_rsc_op_fail ( lrmd_event_data_t event,
int  target_rc 
)

Definition at line 387 of file operations.c.

guint g_str_hash_traditional ( gconstpointer  v)

Definition at line 357 of file strings.c.

gboolean parse_op_key ( const char *  key,
char **  rsc_id,
char **  op_type,
guint *  interval_ms 
)

Definition at line 47 of file operations.c.

bool pcmk_acl_required ( const char *  user)

Definition at line 621 of file acl.c.

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.

char* pcmk_hostname ( void  )

Get the local hostname.

Returns
Newly allocated string with name, or NULL (and set errno) on error

Definition at line 1195 of file utils.c.

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.

Parameters
[in]inputThe input string, likely from the command line
[out]nameEverything before the first '=' in the input string
[out]valueEverything after the first '=' in the input string
Returns
2 if both name and value could be extracted, 1 if only one could, and and error code otherwise

Definition at line 217 of file nvpair.c.

int rsc_op_expected_rc ( lrmd_event_data_t event)

Definition at line 376 of file operations.c.

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

Definition at line 157 of file strings.c.

char* score2char ( int  score)

Definition at line 251 of file utils.c.

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

Definition at line 237 of file utils.c.