pacemaker  2.1.4-dc6eb4362
Scalable High-Availability cluster resource manager
Macros | Functions | Variables
utils.c File Reference
#include <crm_internal.h>
#include <crm/crm.h>
#include <crm/msg_xml.h>
#include <crm/common/xml.h>
#include <crm/common/xml_internal.h>
#include <crm/common/util.h>
#include <glib.h>
#include <stdbool.h>
#include <crm/pengine/rules.h>
#include <crm/pengine/internal.h>
#include "pe_status_private.h"
Include dependency graph for utils.c:

Go to the source code of this file.

Macros

#define sort_return(an_int, why)
 

Functions

void print_str_str (gpointer key, gpointer value, gpointer user_data)
 
gboolean ghash_free_str_str (gpointer key, gpointer value, gpointer user_data)
 
bool pe_can_fence (pe_working_set_t *data_set, pe_node_t *node)
 
pe_node_tpe__copy_node (const pe_node_t *this_node)
 
void node_list_exclude (GHashTable *hash, GList *list, gboolean merge_scores)
 
GHashTable * pe__node_list2table (GList *list)
 
gint sort_node_uname (gconstpointer a, gconstpointer b)
 
void pe__show_node_weights_as (const char *file, const char *function, int line, bool to_log, pe_resource_t *rsc, const char *comment, GHashTable *nodes, pe_working_set_t *data_set)
 
gint sort_rsc_index (gconstpointer a, gconstpointer b)
 
gint sort_rsc_priority (gconstpointer a, gconstpointer b)
 
pe_action_tcustom_action (pe_resource_t *rsc, char *key, const char *task, pe_node_t *on_node, gboolean optional, gboolean save_action, pe_working_set_t *data_set)
 Create or update an action object. More...
 
int pe_get_configured_timeout (pe_resource_t *rsc, const char *action, pe_working_set_t *data_set)
 
xmlNode * find_rsc_op_entry (pe_resource_t *rsc, const char *key)
 
void pe_free_action (pe_action_t *action)
 
GList * find_recurring_actions (GList *input, pe_node_t *not_on_node)
 
enum action_tasks get_complex_task (pe_resource_t *rsc, const char *name, gboolean allow_non_atomic)
 
pe_action_tfind_first_action (GList *input, const char *uuid, const char *task, pe_node_t *on_node)
 
GList * find_actions (GList *input, const char *key, const pe_node_t *on_node)
 
GList * find_actions_exact (GList *input, const char *key, const pe_node_t *on_node)
 
GList * pe__resource_actions (const pe_resource_t *rsc, const pe_node_t *node, const char *task, bool require_node)
 Find all actions of given type for a resource. More...
 
void resource_location (pe_resource_t *rsc, pe_node_t *node, int score, const char *tag, pe_working_set_t *data_set)
 
gint sort_op_by_callid (gconstpointer a, gconstpointer b)
 
time_t get_effective_time (pe_working_set_t *data_set)
 
gboolean get_target_role (pe_resource_t *rsc, enum rsc_role_e *role)
 
gboolean order_actions (pe_action_t *lh_action, pe_action_t *rh_action, enum pe_ordering order)
 
pe_action_tget_pseudo_op (const char *name, pe_working_set_t *data_set)
 
void destroy_ticket (gpointer data)
 
pe_ticket_tticket_new (const char *ticket_id, pe_working_set_t *data_set)
 
const char * rsc_printable_id (pe_resource_t *rsc)
 
void pe__clear_resource_flags_recursive (pe_resource_t *rsc, uint64_t flags)
 
void pe__clear_resource_flags_on_all (pe_working_set_t *data_set, uint64_t flag)
 
void pe__set_resource_flags_recursive (pe_resource_t *rsc, uint64_t flags)
 
pe_action_tpe_fence_op (pe_node_t *node, const char *op, bool optional, const char *reason, bool priority_delay, pe_working_set_t *data_set)
 
void trigger_unfencing (pe_resource_t *rsc, pe_node_t *node, const char *reason, pe_action_t *dependency, pe_working_set_t *data_set)
 
gboolean add_tag_ref (GHashTable *tags, const char *tag_name, const char *obj_ref)
 
char * pe__action2reason (pe_action_t *action, enum pe_action_flags flag)
 
void pe_action_set_reason (pe_action_t *action, const char *reason, bool overwrite)
 
bool pe__shutdown_requested (pe_node_t *node)
 
void pe__update_recheck_time (time_t recheck, pe_working_set_t *data_set)
 
void pe__unpack_dataset_nvpairs (xmlNode *xml_obj, const char *set_name, pe_rule_eval_data_t *rule_data, GHashTable *hash, const char *always_first, gboolean overwrite, pe_working_set_t *data_set)
 
bool pe__resource_is_disabled (pe_resource_t *rsc)
 
pe_action_tpe__clear_resource_history (pe_resource_t *rsc, pe_node_t *node, pe_working_set_t *data_set)
 
bool pe__rsc_running_on_any (pe_resource_t *rsc, GList *node_list)
 
bool pcmk__rsc_filtered_by_node (pe_resource_t *rsc, GList *only_node)
 
GList * pe__filter_rsc_list (GList *rscs, GList *filter)
 
GList * pe__build_node_name_list (pe_working_set_t *data_set, const char *s)
 
GList * pe__build_rsc_list (pe_working_set_t *data_set, const char *s)
 
xmlNode * pe__failed_probe_for_rsc (pe_resource_t *rsc, const char *name)
 

Variables

bool pcmk__is_daemon
 

Macro Definition Documentation

◆ sort_return

#define sort_return (   an_int,
  why 
)
Value:
do { \
free(a_uuid); \
free(b_uuid); \
crm_trace("%s (%d) %c %s (%d) : %s", \
a_xml_id, a_call_id, an_int>0?'>':an_int<0?'<':'=', \
b_xml_id, b_call_id, why); \
return an_int; \
} while(0)

Definition at line 1726 of file utils.c.

Function Documentation

◆ add_tag_ref()

gboolean add_tag_ref ( GHashTable *  tags,
const char *  tag_name,
const char *  obj_ref 
)

Definition at line 2279 of file utils.c.

◆ custom_action()

pe_action_t* custom_action ( pe_resource_t rsc,
char *  key,
const char *  task,
pe_node_t on_node,
gboolean  optional,
gboolean  save_action,
pe_working_set_t data_set 
)

Create or update an action object.

Parameters
[in]rscResource that action is for (if any)
[in]keyAction key (must be non-NULL)
[in]taskAction name (must be non-NULL)
[in]on_nodeNode that action is on (if any)
[in]optionalWhether action should be considered optional
[in]save_actionWhether action should be recorded in transition graph
[in]data_setCluster working set
Returns
Action object corresponding to arguments
Note
This function takes ownership of (and might free) key. If save_action is true, data_set will own the returned action, otherwise it is the caller's responsibility to free the return value with pe_free_action().

Definition at line 730 of file utils.c.

◆ destroy_ticket()

void destroy_ticket ( gpointer  data)

Definition at line 1965 of file utils.c.

◆ find_actions()

GList* find_actions ( GList *  input,
const char *  key,
const pe_node_t on_node 
)

Definition at line 1571 of file utils.c.

◆ find_actions_exact()

GList* find_actions_exact ( GList *  input,
const char *  key,
const pe_node_t on_node 
)

Definition at line 1605 of file utils.c.

◆ find_first_action()

pe_action_t* find_first_action ( GList *  input,
const char *  uuid,
const char *  task,
pe_node_t on_node 
)

Definition at line 1541 of file utils.c.

◆ find_recurring_actions()

GList* find_recurring_actions ( GList *  input,
pe_node_t not_on_node 
)

Definition at line 1484 of file utils.c.

◆ find_rsc_op_entry()

xmlNode* find_rsc_op_entry ( pe_resource_t rsc,
const char *  key 
)

Definition at line 1440 of file utils.c.

◆ get_complex_task()

enum action_tasks get_complex_task ( pe_resource_t rsc,
const char *  name,
gboolean  allow_non_atomic 
)

Definition at line 1518 of file utils.c.

◆ get_effective_time()

time_t get_effective_time ( pe_working_set_t data_set)

Definition at line 1853 of file utils.c.

◆ get_pseudo_op()

pe_action_t* get_pseudo_op ( const char *  name,
pe_working_set_t data_set 
)

Definition at line 1953 of file utils.c.

◆ get_target_role()

gboolean get_target_role ( pe_resource_t rsc,
enum rsc_role_e role 
)

Definition at line 1868 of file utils.c.

◆ ghash_free_str_str()

gboolean ghash_free_str_str ( gpointer  key,
gpointer  value,
gpointer  user_data 
)

◆ node_list_exclude()

void node_list_exclude ( GHashTable *  hash,
GList *  list,
gboolean  merge_scores 
)

Definition at line 160 of file utils.c.

◆ order_actions()

gboolean order_actions ( pe_action_t lh_action,
pe_action_t rh_action,
enum pe_ordering  order 
)

Definition at line 1906 of file utils.c.

◆ pcmk__rsc_filtered_by_node()

bool pcmk__rsc_filtered_by_node ( pe_resource_t rsc,
GList *  only_node 
)

Definition at line 2479 of file utils.c.

◆ pe__action2reason()

char* pe__action2reason ( pe_action_t action,
enum pe_action_flags  flag 
)

Definition at line 2326 of file utils.c.

◆ pe__build_node_name_list()

GList* pe__build_node_name_list ( pe_working_set_t data_set,
const char *  s 
)

Definition at line 2505 of file utils.c.

◆ pe__build_rsc_list()

GList* pe__build_rsc_list ( pe_working_set_t data_set,
const char *  s 
)

Definition at line 2537 of file utils.c.

◆ pe__clear_resource_flags_on_all()

void pe__clear_resource_flags_on_all ( pe_working_set_t data_set,
uint64_t  flag 
)

Definition at line 2030 of file utils.c.

◆ pe__clear_resource_flags_recursive()

void pe__clear_resource_flags_recursive ( pe_resource_t rsc,
uint64_t  flags 
)

Definition at line 2021 of file utils.c.

◆ pe__clear_resource_history()

pe_action_t* pe__clear_resource_history ( pe_resource_t rsc,
pe_node_t node,
pe_working_set_t data_set 
)

Definition at line 2453 of file utils.c.

◆ pe__copy_node()

pe_node_t* pe__copy_node ( const pe_node_t this_node)

Definition at line 141 of file utils.c.

◆ pe__failed_probe_for_rsc()

xmlNode* pe__failed_probe_for_rsc ( pe_resource_t rsc,
const char *  name 
)

Definition at line 2570 of file utils.c.

◆ pe__filter_rsc_list()

GList* pe__filter_rsc_list ( GList *  rscs,
GList *  filter 
)

Definition at line 2485 of file utils.c.

◆ pe__node_list2table()

GHashTable* pe__node_list2table ( GList *  list)

Definition at line 203 of file utils.c.

◆ pe__resource_actions()

GList* pe__resource_actions ( const pe_resource_t rsc,
const pe_node_t node,
const char *  task,
bool  require_node 
)

Find all actions of given type for a resource.

Parameters
[in]rscResource to search
[in]nodeFind only actions scheduled on this node
[in]taskAction name to search for
[in]require_nodeIf TRUE, NULL node or action node will not match
Returns
List of actions found (or NULL if none)
Note
If node is not NULL and require_node is FALSE, matching actions without a node will be assigned to node.

Definition at line 1644 of file utils.c.

◆ pe__resource_is_disabled()

bool pe__resource_is_disabled ( pe_resource_t rsc)

Definition at line 2425 of file utils.c.

◆ pe__rsc_running_on_any()

bool pe__rsc_running_on_any ( pe_resource_t rsc,
GList *  node_list 
)

Definition at line 2465 of file utils.c.

◆ pe__set_resource_flags_recursive()

void pe__set_resource_flags_recursive ( pe_resource_t rsc,
uint64_t  flags 
)

Definition at line 2039 of file utils.c.

◆ pe__show_node_weights_as()

void pe__show_node_weights_as ( const char *  file,
const char *  function,
int  line,
bool  to_log,
pe_resource_t rsc,
const char *  comment,
GHashTable *  nodes,
pe_working_set_t data_set 
)

Definition at line 303 of file utils.c.

◆ pe__shutdown_requested()

bool pe__shutdown_requested ( pe_node_t node)

Definition at line 2378 of file utils.c.

◆ pe__unpack_dataset_nvpairs()

void pe__unpack_dataset_nvpairs ( xmlNode *  xml_obj,
const char *  set_name,
pe_rule_eval_data_t rule_data,
GHashTable *  hash,
const char *  always_first,
gboolean  overwrite,
pe_working_set_t data_set 
)

Definition at line 2407 of file utils.c.

◆ pe__update_recheck_time()

void pe__update_recheck_time ( time_t  recheck,
pe_working_set_t data_set 
)

Definition at line 2393 of file utils.c.

◆ pe_action_set_reason()

void pe_action_set_reason ( pe_action_t action,
const char *  reason,
bool  overwrite 
)

Definition at line 2349 of file utils.c.

◆ pe_can_fence()

bool pe_can_fence ( pe_working_set_t data_set,
pe_node_t node 
)

Definition at line 89 of file utils.c.

◆ pe_fence_op()

pe_action_t* pe_fence_op ( pe_node_t node,
const char *  op,
bool  optional,
const char *  reason,
bool  priority_delay,
pe_working_set_t data_set 
)

Definition at line 2136 of file utils.c.

◆ pe_free_action()

void pe_free_action ( pe_action_t action)

Definition at line 1457 of file utils.c.

◆ pe_get_configured_timeout()

int pe_get_configured_timeout ( pe_resource_t rsc,
const char *  action,
pe_working_set_t data_set 
)

Definition at line 964 of file utils.c.

◆ print_str_str()

void print_str_str ( gpointer  key,
gpointer  value,
gpointer  user_data 
)

Definition at line 1449 of file utils.c.

◆ resource_location()

void resource_location ( pe_resource_t rsc,
pe_node_t node,
int  score,
const char *  tag,
pe_working_set_t data_set 
)

Definition at line 1692 of file utils.c.

◆ rsc_printable_id()

const char* rsc_printable_id ( pe_resource_t rsc)

Definition at line 2012 of file utils.c.

◆ sort_node_uname()

gint sort_node_uname ( gconstpointer  a,
gconstpointer  b 
)

Definition at line 217 of file utils.c.

◆ sort_op_by_callid()

gint sort_op_by_callid ( gconstpointer  a,
gconstpointer  b 
)

Definition at line 1736 of file utils.c.

◆ sort_rsc_index()

gint sort_rsc_index ( gconstpointer  a,
gconstpointer  b 
)

Definition at line 334 of file utils.c.

◆ sort_rsc_priority()

gint sort_rsc_priority ( gconstpointer  a,
gconstpointer  b 
)

Definition at line 361 of file utils.c.

◆ ticket_new()

pe_ticket_t* ticket_new ( const char *  ticket_id,
pe_working_set_t data_set 
)

Definition at line 1977 of file utils.c.

◆ trigger_unfencing()

void trigger_unfencing ( pe_resource_t rsc,
pe_node_t node,
const char *  reason,
pe_action_t dependency,
pe_working_set_t data_set 
)

Definition at line 2244 of file utils.c.

Variable Documentation

◆ pcmk__is_daemon

bool pcmk__is_daemon

Definition at line 47 of file logging.c.