pacemaker  1.1.17-b36b869ca8
Scalable High-Availability cluster resource manager
Macros | Functions | Variables
utils.c File Reference
#include <crm_internal.h>
#include <dlfcn.h>
#include <sys/param.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <sys/utsname.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <limits.h>
#include <ctype.h>
#include <pwd.h>
#include <time.h>
#include <libgen.h>
#include <signal.h>
#include <qb/qbdefs.h>
#include <crm/crm.h>
#include <crm/lrmd.h>
#include <crm/services.h>
#include <crm/msg_xml.h>
#include <crm/cib/internal.h>
#include <crm/common/xml.h>
#include <crm/common/util.h>
#include <crm/common/ipc.h>
#include <crm/common/iso8601.h>
#include <crm/common/mainloop.h>
#include <libxml2/libxml/relaxng.h>
#include <md5.h>
Include dependency graph for utils.c:

Go to the source code of this file.

Macros

#define _GNU_SOURCE
 
#define MAXLINE   512
 
#define PW_BUFFER_LEN   500
 
#define NUMCHARS   "0123456789."
 
#define WHITESPACE   " \t\n\r\f"
 
#define LOCKSTRLEN   11
 
#define FAKE_TE_ID   "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
 

Functions

 CRM_TRACE_INIT_DATA (common)
 
int crm_exit (int rc)
 
gboolean check_time (const char *value)
 
gboolean check_timer (const char *value)
 
gboolean check_boolean (const char *value)
 
gboolean check_number (const char *value)
 
gboolean check_positive_number (const char *value)
 
gboolean check_quorum (const char *value)
 
gboolean check_script (const char *value)
 
gboolean check_utilization (const char *value)
 
int char2score (const char *score)
 
char * score2char_stack (int score, char *buf, size_t len)
 
char * score2char (int score)
 
const char * cluster_option (GHashTable *options, gboolean(*validate)(const char *), const char *name, const char *old_name, const char *def_value)
 
const char * get_cluster_pref (GHashTable *options, pe_cluster_option *option_list, int len, const char *name)
 
void config_metadata (const char *name, const char *version, const char *desc_short, const char *desc_long, pe_cluster_option *option_list, int len)
 
void verify_all_options (GHashTable *options, pe_cluster_option *option_list, int len)
 
char * generate_hash_key (const char *crm_msg_reference, const char *sys)
 
int crm_user_lookup (const char *name, uid_t *uid, gid_t *gid)
 
int compare_version (const char *version1, const char *version2)
 
unsigned long long crm_get_interval (const char *input)
 
long long crm_get_msec (const char *input)
 
char * generate_op_key (const char *rsc_id, const char *op_type, int interval)
 Generate an operation key. More...
 
gboolean parse_op_key (const char *key, char **rsc_id, char **op_type, int *interval)
 
char * generate_notify_key (const char *rsc_id, const char *notify_type, const char *op_type)
 
char * generate_transition_magic_v202 (const char *transition_key, int op_status)
 
char * generate_transition_magic (const char *transition_key, int op_status, int op_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)
 
char * generate_transition_key (int transition_id, int action_id, int target_rc, const char *node)
 
gboolean decode_transition_key (const char *key, char **uuid, int *transition_id, int *action_id, int *target_rc)
 
void filter_action_parameters (xmlNode *param_set, const char *version)
 
void crm_abort (const char *file, const char *function, int line, const char *assert_condition, gboolean do_core, gboolean do_fork)
 
int crm_pid_active (long pid, const char *daemon)
 
long crm_read_pidfile (const char *filename)
 
long crm_pidfile_inuse (const char *filename, long mypid, const char *daemon)
 
void crm_make_daemon (const char *name, gboolean daemonize, const char *pidfile)
 
char * crm_meta_name (const char *field)
 
const char * crm_meta_value (GHashTable *hash, const char *field)
 
void crm_set_options (const char *short_options, const char *app_usage, struct crm_option *long_options, const char *app_desc)
 
int crm_get_option (int argc, char **argv, int *index)
 
int crm_get_option_long (int argc, char **argv, int *index, const char **longname)
 
int crm_help (char cmd, int exit_code)
 
void cib_ipc_servers_init (qb_ipcs_service_t **ipcs_ro, qb_ipcs_service_t **ipcs_rw, qb_ipcs_service_t **ipcs_shm, struct qb_ipcs_service_handlers *ro_cb, struct qb_ipcs_service_handlers *rw_cb)
 
void cib_ipc_servers_destroy (qb_ipcs_service_t *ipcs_ro, qb_ipcs_service_t *ipcs_rw, qb_ipcs_service_t *ipcs_shm)
 
qb_ipcs_service_t * crmd_ipc_server_init (struct qb_ipcs_service_handlers *cb)
 
void attrd_ipc_server_init (qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers *cb)
 
void stonith_ipc_server_init (qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers *cb)
 
int rsc_op_expected_rc (lrmd_event_data_t *op)
 
gboolean did_rsc_op_fail (lrmd_event_data_t *op, int target_rc)
 
xmlNode * create_operation_update (xmlNode *parent, lrmd_event_data_t *op, const char *caller_version, int target_rc, const char *node, const char *origin, int level)
 
bool pcmk_acl_required (const char *user)
 
void * find_library_function (void **handle, const char *lib, const char *fn, gboolean fatal)
 
void * convert_const_pointer (const void *ptr)
 
char * crm_generate_uuid (void)
 
bool crm_is_daemon_name (const char *name)
 Check whether a string represents a cluster daemon name. More...
 
char * crm_md5sum (const char *buffer)
 

Variables

gboolean crm_config_error = FALSE
 
gboolean crm_config_warning = FALSE
 
char * crm_system_name = NULL
 
int node_score_red = 0
 
int node_score_green = 0
 
int node_score_yellow = 0
 
int node_score_infinity = INFINITY
 
gboolean do_stderr = FALSE
 
bool crm_is_daemon
 

Macro Definition Documentation

§ _GNU_SOURCE

#define _GNU_SOURCE

Definition at line 23 of file utils.c.

§ FAKE_TE_ID

#define FAKE_TE_ID   "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

Definition at line 1549 of file utils.c.

§ LOCKSTRLEN

#define LOCKSTRLEN   11

Definition at line 1092 of file utils.c.

§ MAXLINE

#define MAXLINE   512

Definition at line 58 of file utils.c.

§ NUMCHARS

#define NUMCHARS   "0123456789."

Definition at line 553 of file utils.c.

§ PW_BUFFER_LEN

#define PW_BUFFER_LEN   500

Definition at line 66 of file utils.c.

§ WHITESPACE

#define WHITESPACE   " \t\n\r\f"

Definition at line 557 of file utils.c.

Function Documentation

§ attrd_ipc_server_init()

void attrd_ipc_server_init ( qb_ipcs_service_t **  ipcs,
struct qb_ipcs_service_handlers *  cb 
)

Definition at line 1526 of file utils.c.

§ char2score()

int char2score ( const char *  score)

Definition at line 233 of file utils.c.

§ check_boolean()

gboolean check_boolean ( const char *  value)

Definition at line 132 of file utils.c.

§ check_number()

gboolean check_number ( const char *  value)

Definition at line 143 of file utils.c.

§ check_positive_number()

gboolean check_positive_number ( const char *  value)

Definition at line 164 of file utils.c.

§ check_quorum()

gboolean check_quorum ( const char *  value)

Definition at line 173 of file utils.c.

§ check_script()

gboolean check_script ( const char *  value)

Definition at line 191 of file utils.c.

§ check_time()

gboolean check_time ( const char *  value)

Definition at line 114 of file utils.c.

§ check_timer()

gboolean check_timer ( const char *  value)

Definition at line 123 of file utils.c.

§ check_utilization()

gboolean check_utilization ( const char *  value)

Definition at line 218 of file utils.c.

§ cib_ipc_servers_destroy()

void cib_ipc_servers_destroy ( qb_ipcs_service_t *  ipcs_ro,
qb_ipcs_service_t *  ipcs_rw,
qb_ipcs_service_t *  ipcs_shm 
)

Definition at line 1510 of file utils.c.

§ cib_ipc_servers_init()

void cib_ipc_servers_init ( qb_ipcs_service_t **  ipcs_ro,
qb_ipcs_service_t **  ipcs_rw,
qb_ipcs_service_t **  ipcs_shm,
struct qb_ipcs_service_handlers *  ro_cb,
struct qb_ipcs_service_handlers *  rw_cb 
)

Definition at line 1493 of file utils.c.

§ cluster_option()

const char* cluster_option ( GHashTable *  options,
gboolean(*)(const char *)  validate,
const char *  name,
const char *  old_name,
const char *  def_value 
)

Definition at line 297 of file utils.c.

§ compare_version()

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

Definition at line 474 of file utils.c.

§ config_metadata()

void config_metadata ( const char *  name,
const char *  version,
const char *  desc_short,
const char *  desc_long,
pe_cluster_option option_list,
int  len 
)

Definition at line 363 of file utils.c.

§ convert_const_pointer()

void* convert_const_pointer ( const void *  ptr)

Definition at line 1941 of file utils.c.

§ create_operation_update()

xmlNode* create_operation_update ( xmlNode *  parent,
lrmd_event_data_t op,
const char *  caller_version,
int  target_rc,
const char *  node,
const char *  origin,
int  level 
)

Definition at line 1629 of file utils.c.

§ crm_abort()

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

Definition at line 970 of file utils.c.

§ crm_exit()

int crm_exit ( int  rc)

Definition at line 86 of file utils.c.

§ crm_generate_uuid()

char* crm_generate_uuid ( void  )

Definition at line 1952 of file utils.c.

§ crm_get_interval()

unsigned long long crm_get_interval ( const char *  input)

Definition at line 561 of file utils.c.

§ crm_get_msec()

long long crm_get_msec ( const char *  input)

Definition at line 586 of file utils.c.

§ crm_get_option()

int crm_get_option ( int  argc,
char **  argv,
int *  index 
)

Definition at line 1367 of file utils.c.

§ crm_get_option_long()

int crm_get_option_long ( int  argc,
char **  argv,
int *  index,
const char **  longname 
)

Definition at line 1373 of file utils.c.

§ crm_help()

int crm_help ( char  cmd,
int  exit_code 
)

Definition at line 1418 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 1970 of file utils.c.

§ crm_make_daemon()

void crm_make_daemon ( const char *  name,
gboolean  daemonize,
const char *  pidfile 
)

Definition at line 1194 of file utils.c.

§ crm_md5sum()

char* crm_md5sum ( const char *  buffer)

Definition at line 1986 of file utils.c.

§ crm_meta_name()

char* crm_meta_name ( const char *  field)

Definition at line 1241 of file utils.c.

§ crm_meta_value()

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

Definition at line 1263 of file utils.c.

§ crm_pid_active()

int crm_pid_active ( long  pid,
const char *  daemon 
)

Definition at line 1032 of file utils.c.

§ crm_pidfile_inuse()

long crm_pidfile_inuse ( const char *  filename,
long  mypid,
const char *  daemon 
)

Definition at line 1132 of file utils.c.

§ crm_read_pidfile()

long crm_read_pidfile ( const char *  filename)

Definition at line 1095 of file utils.c.

§ crm_set_options()

void crm_set_options ( const char *  short_options,
const char *  app_usage,
struct crm_option long_options,
const char *  app_desc 
)

Definition at line 1326 of file utils.c.

§ CRM_TRACE_INIT_DATA()

CRM_TRACE_INIT_DATA ( common  )

§ crm_user_lookup()

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

Definition at line 421 of file utils.c.

§ crmd_ipc_server_init()

qb_ipcs_service_t* crmd_ipc_server_init ( struct qb_ipcs_service_handlers *  cb)

Definition at line 1520 of file utils.c.

§ decode_transition_key()

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

Definition at line 832 of file utils.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 789 of file utils.c.

§ did_rsc_op_fail()

gboolean did_rsc_op_fail ( lrmd_event_data_t op,
int  target_rc 
)

Definition at line 1605 of file utils.c.

§ filter_action_parameters()

void filter_action_parameters ( xmlNode *  param_set,
const char *  version 
)

Definition at line 898 of file utils.c.

§ find_library_function()

void* find_library_function ( void **  handle,
const char *  lib,
const char *  fn,
gboolean  fatal 
)

Definition at line 1911 of file utils.c.

§ generate_hash_key()

char* generate_hash_key ( const char *  crm_msg_reference,
const char *  sys 
)

Definition at line 411 of file utils.c.

§ generate_notify_key()

char* generate_notify_key ( const char *  rsc_id,
const char *  notify_type,
const char *  op_type 
)

Definition at line 733 of file utils.c.

§ generate_op_key()

char* generate_op_key ( const char *  rsc_id,
const char *  op_type,
int  interval 
)

Generate an operation key.

Parameters
[in]rsc_idID of resource being operated on
[in]op_typeOperation name
[in]intervalOperation interval
Returns
Newly allocated memory containing operation key as string
Note
It is the caller's responsibility to free() the result.

Definition at line 652 of file utils.c.

§ generate_transition_key()

char* generate_transition_key ( int  transition_id,
int  action_id,
int  target_rc,
const char *  node 
)

Definition at line 815 of file utils.c.

§ generate_transition_magic()

char* generate_transition_magic ( const char *  transition_key,
int  op_status,
int  op_rc 
)

Definition at line 772 of file utils.c.

§ generate_transition_magic_v202()

char* generate_transition_magic_v202 ( const char *  transition_key,
int  op_status 
)

Definition at line 755 of file utils.c.

§ get_cluster_pref()

const char* get_cluster_pref ( GHashTable *  options,
pe_cluster_option option_list,
int  len,
const char *  name 
)

Definition at line 343 of file utils.c.

§ parse_op_key()

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

Definition at line 661 of file utils.c.

§ pcmk_acl_required()

bool pcmk_acl_required ( const char *  user)

Definition at line 1798 of file utils.c.

§ rsc_op_expected_rc()

int rsc_op_expected_rc ( lrmd_event_data_t op)

Definition at line 1590 of file utils.c.

§ score2char()

char* score2char ( int  score)

Definition at line 285 of file utils.c.

§ score2char_stack()

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

Definition at line 271 of file utils.c.

§ stonith_ipc_server_init()

void stonith_ipc_server_init ( qb_ipcs_service_t **  ipcs,
struct qb_ipcs_service_handlers *  cb 
)

Definition at line 1538 of file utils.c.

§ verify_all_options()

void verify_all_options ( GHashTable *  options,
pe_cluster_option option_list,
int  len 
)

Definition at line 398 of file utils.c.

Variable Documentation

§ crm_config_error

gboolean crm_config_error = FALSE

Definition at line 71 of file utils.c.

§ crm_config_warning

gboolean crm_config_warning = FALSE

Definition at line 72 of file utils.c.

§ crm_is_daemon

bool crm_is_daemon

Definition at line 49 of file logging.c.

§ crm_system_name

char* crm_system_name = NULL

Definition at line 73 of file utils.c.

§ do_stderr

gboolean do_stderr = FALSE

Definition at line 550 of file utils.c.

§ node_score_green

int node_score_green = 0

Definition at line 76 of file utils.c.

§ node_score_infinity

int node_score_infinity = INFINITY

Definition at line 78 of file utils.c.

§ node_score_red

int node_score_red = 0

Definition at line 75 of file utils.c.

§ node_score_yellow

int node_score_yellow = 0

Definition at line 77 of file utils.c.