pacemaker  2.1.3-ea053b43a
Scalable High-Availability cluster resource manager
Macros | Functions | Variables
internal.h File Reference
#include <unistd.h>
#include <stdbool.h>
#include <stdint.h>
#include <string.h>
#include <fcntl.h>
#include <sys/types.h>
#include <glib.h>
#include <libxml/tree.h>
#include <crm/common/util.h>
#include <crm/common/logging.h>
#include <crm/common/mainloop.h>
#include <crm/common/health_internal.h>
#include <crm/common/iso8601_internal.h>
#include <crm/common/results_internal.h>
#include <crm/common/messages_internal.h>
#include <crm/common/strings_internal.h>
Include dependency graph for internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PCMK__NELEM(a)   ((int) (sizeof(a)/sizeof(a[0])) )
 
#define PCMK__OP_FMT   "%s_%s_%u"
 
#define PCMK__FAIL_COUNT_PREFIX   "fail-count"
 
#define PCMK__LAST_FAILURE_PREFIX   "last-failure"
 

Functions

char * pcmk__uid2username (uid_t uid)
 
const char * pcmk__update_acl_user (xmlNode *request, const char *field, const char *peer_user)
 
void pcmk__enable_acl (xmlNode *acl_source, xmlNode *target, const char *user)
 
bool pcmk__check_acl (xmlNode *xml, const char *name, enum xml_private_flags mode)
 
bool pcmk__verify_digest (xmlNode *input, const char *expected)
 
int pcmk__real_path (const char *path, char **resolved_path)
 
char * pcmk__series_filename (const char *directory, const char *series, int sequence, bool bzip)
 
int pcmk__read_series_sequence (const char *directory, const char *series, unsigned int *seq)
 
void pcmk__write_series_sequence (const char *directory, const char *series, unsigned int sequence, int max)
 
int pcmk__chown_series_sequence (const char *directory, const char *series, uid_t uid, gid_t gid)
 
int pcmk__build_path (const char *path_c, mode_t mode)
 
char * pcmk__full_path (const char *filename, const char *dirname)
 Duplicate a file path, inserting a prefix if not absolute. More...
 
bool pcmk__daemon_can_write (const char *dir, const char *file)
 
void pcmk__sync_directory (const char *name)
 
int pcmk__file_contents (const char *filename, char **contents)
 
int pcmk__write_sync (int fd, const char *contents)
 
int pcmk__set_nonblocking (int fd)
 
const char * pcmk__get_tmpdir (void)
 
void pcmk__close_fds_in_child (bool)
 
int pcmk__add_mainloop_ipc (crm_ipc_t *ipc, int priority, void *userdata, struct ipc_client_callbacks *callbacks, mainloop_io_t **source)
 Connect to IPC and add it as a main loop source. More...
 
guint pcmk__mainloop_timer_get_period (mainloop_timer_t *timer)
 Get period for mainloop timer. More...
 
int pcmk__scan_nvpair (const char *input, char **name, char **value)
 
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)
 
void pcmk__xe_set_bool_attr (xmlNodePtr node, const char *name, bool value)
 
bool pcmk__xe_attr_is_true (xmlNodePtr node, const char *name)
 
int pcmk__xe_get_bool_attr (xmlNodePtr node, const char *name, bool *value)
 
pid_t pcmk__procfs_pid_of (const char *name)
 
unsigned int pcmk__procfs_num_cores (void)
 
void crm_schema_init (void)
 
void crm_schema_cleanup (void)
 
int pcmk__pid_active (pid_t pid, const char *daemon)
 
int pcmk__read_pidfile (const char *filename, pid_t *pid)
 
int pcmk__pidfile_matches (const char *filename, pid_t expected_pid, const char *expected_name, pid_t *pid)
 
int pcmk__lock_pidfile (const char *filename, const char *name)
 
char * pcmk__op_key (const char *rsc_id, const char *op_type, guint interval_ms)
 Generate an operation key (RESOURCE_ACTION_INTERVAL) More...
 
char * pcmk__notify_key (const char *rsc_id, const char *notify_type, const char *op_type)
 
char * pcmk__transition_key (int transition_id, int action_id, int target_rc, const char *node)
 
void pcmk__filter_op_for_digest (xmlNode *param_set)
 
bool pcmk__is_fencing_action (const char *action)
 
void pcmk__daemonize (const char *name, const char *pidfile)
 
void pcmk__panic (const char *origin)
 
pid_t pcmk__locate_sbd (void)
 
void pcmk__sleep_ms (unsigned int ms)
 
int pcmk__effective_rc (int rc)
 

Variables

bool pcmk__is_daemon
 
int pcmk__score_red
 
int pcmk__score_green
 
int pcmk__score_yellow
 

Macro Definition Documentation

◆ PCMK__FAIL_COUNT_PREFIX

#define PCMK__FAIL_COUNT_PREFIX   "fail-count"

Definition at line 358 of file internal.h.

◆ PCMK__LAST_FAILURE_PREFIX

#define PCMK__LAST_FAILURE_PREFIX   "last-failure"

Definition at line 359 of file internal.h.

◆ PCMK__NELEM

#define PCMK__NELEM (   a)    ((int) (sizeof(a)/sizeof(a[0])) )

Definition at line 42 of file internal.h.

◆ PCMK__OP_FMT

#define PCMK__OP_FMT   "%s_%s_%u"

Definition at line 215 of file internal.h.

Function Documentation

◆ crm_schema_cleanup()

void crm_schema_cleanup ( void  )

Definition at line 552 of file schemas.c.

◆ crm_schema_init()

void crm_schema_init ( void  )

Definition at line 376 of file schemas.c.

◆ pcmk__add_mainloop_ipc()

int pcmk__add_mainloop_ipc ( crm_ipc_t ipc,
int  priority,
void *  userdata,
struct ipc_client_callbacks callbacks,
mainloop_io_t **  source 
)

Connect to IPC and add it as a main loop source.

Parameters
[in]ipcIPC connection to add
[in]priorityEvent source priority to use for connection
[in]userdataData to register with callbacks
[in]callbacksDispatch and destroy callbacks for connection
[out]sourceNewly allocated event source
Returns
Standard Pacemaker return code
Note
On failure, the caller is still responsible for ipc. On success, the caller should call mainloop_del_ipc_client() when source is no longer needed, which will lead to the disconnection of the IPC later in the main loop if it is connected. However the IPC disconnects, mainloop_gio_destroy() will free ipc and source after calling the destroy callback.

Definition at line 894 of file mainloop.c.

◆ pcmk__build_path()

int pcmk__build_path ( const char *  path_c,
mode_t  mode 
)

Definition at line 45 of file io.c.

◆ pcmk__check_acl()

bool pcmk__check_acl ( xmlNode *  xml,
const char *  name,
enum xml_private_flags  mode 
)

Definition at line 611 of file acl.c.

◆ pcmk__chown_series_sequence()

int pcmk__chown_series_sequence ( const char *  directory,
const char *  series,
uid_t  uid,
gid_t  gid 
)

Definition at line 237 of file io.c.

◆ pcmk__close_fds_in_child()

void pcmk__close_fds_in_child ( bool  )

Definition at line 558 of file io.c.

◆ pcmk__daemon_can_write()

bool pcmk__daemon_can_write ( const char *  dir,
const char *  file 
)

Definition at line 327 of file io.c.

◆ pcmk__daemonize()

void pcmk__daemonize ( const char *  name,
const char *  pidfile 
)

Definition at line 392 of file utils.c.

◆ pcmk__effective_rc()

int pcmk__effective_rc ( int  rc)

Definition at line 71 of file agents.c.

◆ pcmk__enable_acl()

void pcmk__enable_acl ( xmlNode *  acl_source,
xmlNode *  target,
const char *  user 
)

Definition at line 338 of file acl.c.

◆ pcmk__file_contents()

int pcmk__file_contents ( const char *  filename,
char **  contents 
)

Definition at line 431 of file io.c.

◆ pcmk__filter_op_for_digest()

void pcmk__filter_op_for_digest ( xmlNode *  param_set)

Definition at line 390 of file operations.c.

◆ pcmk__format_named_time()

char* pcmk__format_named_time ( const char *  name,
time_t  epoch_time 
)

Definition at line 303 of file nvpair.c.

◆ pcmk__format_nvpair()

char* pcmk__format_nvpair ( const char *  name,
const char *  value,
const char *  units 
)

Definition at line 284 of file nvpair.c.

◆ pcmk__full_path()

char* pcmk__full_path ( const char *  filename,
const char *  dirname 
)

Duplicate a file path, inserting a prefix if not absolute.

Parameters
[in]filenameFile path to duplicate
[in]dirnameIf filename is not absolute, prefix to add
Returns
Newly allocated memory with full path (guaranteed non-NULL)

Definition at line 627 of file io.c.

◆ pcmk__get_tmpdir()

const char* pcmk__get_tmpdir ( void  )

Definition at line 540 of file io.c.

◆ pcmk__is_fencing_action()

bool pcmk__is_fencing_action ( const char *  action)

Definition at line 536 of file operations.c.

◆ pcmk__locate_sbd()

pid_t pcmk__locate_sbd ( void  )

Definition at line 199 of file watchdog.c.

◆ pcmk__lock_pidfile()

int pcmk__lock_pidfile ( const char *  filename,
const char *  name 
)

Definition at line 228 of file pid.c.

◆ pcmk__mainloop_timer_get_period()

guint pcmk__mainloop_timer_get_period ( mainloop_timer_t timer)

Get period for mainloop timer.

Parameters
[in]timerTimer
Returns
Period in ms

Definition at line 927 of file mainloop.c.

◆ pcmk__notify_key()

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

Definition at line 229 of file operations.c.

◆ pcmk__op_key()

char* pcmk__op_key ( const char *  rsc_id,
const char *  op_type,
guint  interval_ms 
)

Generate an operation key (RESOURCE_ACTION_INTERVAL)

Parameters
[in]rsc_idID of resource being operated on
[in]op_typeOperation name
[in]interval_msOperation interval
Returns
Newly allocated memory containing operation key as string
Note
This function asserts on errors, so it will never return NULL. The caller is responsible for freeing the result with free().

Definition at line 45 of file operations.c.

◆ pcmk__panic()

void pcmk__panic ( const char *  origin)

Definition at line 162 of file watchdog.c.

◆ pcmk__pid_active()

int pcmk__pid_active ( pid_t  pid,
const char *  daemon 
)

Definition at line 23 of file pid.c.

◆ pcmk__pidfile_matches()

int pcmk__pidfile_matches ( const char *  filename,
pid_t  expected_pid,
const char *  expected_name,
pid_t *  pid 
)

Definition at line 186 of file pid.c.

◆ pcmk__procfs_num_cores()

unsigned int pcmk__procfs_num_cores ( void  )

Definition at line 145 of file procfs.c.

◆ pcmk__procfs_pid_of()

pid_t pcmk__procfs_pid_of ( const char *  name)

Definition at line 111 of file procfs.c.

◆ pcmk__read_pidfile()

int pcmk__read_pidfile ( const char *  filename,
pid_t *  pid 
)

Definition at line 132 of file pid.c.

◆ pcmk__read_series_sequence()

int pcmk__read_series_sequence ( const char *  directory,
const char *  series,
unsigned int *  seq 
)

Definition at line 140 of file io.c.

◆ pcmk__real_path()

int pcmk__real_path ( const char *  path,
char **  resolved_path 
)

Definition at line 85 of file io.c.

◆ pcmk__scan_nvpair()

int pcmk__scan_nvpair ( const char *  input,
char **  name,
char **  value 
)

Definition at line 221 of file nvpair.c.

◆ pcmk__series_filename()

char* pcmk__series_filename ( const char *  directory,
const char *  series,
int  sequence,
bool  bzip 
)

Definition at line 121 of file io.c.

◆ pcmk__set_nonblocking()

int pcmk__set_nonblocking ( int  fd)

Definition at line 517 of file io.c.

◆ pcmk__sleep_ms()

void pcmk__sleep_ms ( unsigned int  ms)

Definition at line 531 of file utils.c.

◆ pcmk__sync_directory()

void pcmk__sync_directory ( const char *  name)

Definition at line 395 of file io.c.

◆ pcmk__transition_key()

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

Definition at line 296 of file operations.c.

◆ pcmk__uid2username()

char* pcmk__uid2username ( uid_t  uid)

Definition at line 698 of file acl.c.

◆ pcmk__update_acl_user()

const char* pcmk__update_acl_user ( xmlNode *  request,
const char *  field,
const char *  peer_user 
)

Definition at line 728 of file acl.c.

◆ pcmk__verify_digest()

bool pcmk__verify_digest ( xmlNode *  input,
const char *  expected 
)

Definition at line 220 of file digest.c.

◆ pcmk__write_series_sequence()

void pcmk__write_series_sequence ( const char *  directory,
const char *  series,
unsigned int  sequence,
int  max 
)

Definition at line 187 of file io.c.

◆ pcmk__write_sync()

int pcmk__write_sync ( int  fd,
const char *  contents 
)

Definition at line 487 of file io.c.

◆ pcmk__xe_attr_is_true()

bool pcmk__xe_attr_is_true ( xmlNodePtr  node,
const char *  name 
)

Definition at line 986 of file nvpair.c.

◆ pcmk__xe_get_bool_attr()

int pcmk__xe_get_bool_attr ( xmlNodePtr  node,
const char *  name,
bool *  value 
)

Definition at line 960 of file nvpair.c.

◆ pcmk__xe_set_bool_attr()

void pcmk__xe_set_bool_attr ( xmlNodePtr  node,
const char *  name,
bool  value 
)

Definition at line 954 of file nvpair.c.

Variable Documentation

◆ pcmk__is_daemon

bool pcmk__is_daemon

Definition at line 47 of file logging.c.

◆ pcmk__score_green

int pcmk__score_green

Definition at line 21 of file scores.c.

◆ pcmk__score_red

int pcmk__score_red

Definition at line 20 of file scores.c.

◆ pcmk__score_yellow

int pcmk__score_yellow

Definition at line 22 of file scores.c.