pacemaker  2.1.8-3980678f03
Scalable High-Availability cluster resource manager
Data Structures | Macros | Typedefs | Enumerations | Functions
crmcommon_private.h File Reference
#include <stdint.h>
#include <stdbool.h>
#include <sys/types.h>
#include <glib.h>
#include <libxml/tree.h>
#include <qb/qbipcc.h>
Include dependency graph for crmcommon_private.h:

Go to the source code of this file.

Data Structures

struct  pcmk__deleted_xml_s
 
struct  xml_node_private_s
 
struct  xml_doc_private_s
 
struct  pcmk__ipc_methods_s
 
struct  pcmk_ipc_api_s
 
struct  pcmk__ipc_header_s
 
struct  pcmk__schema_version_t
 
struct  pcmk__schema_t
 

Macros

#define PCMK__BUFFER_SIZE   4096
 
#define PCMK__XML_ENTITY_AMP   "&amp;"
 
#define PCMK__XML_ENTITY_GT   "&gt;"
 
#define PCMK__XML_ENTITY_LT   "&lt;"
 
#define PCMK__XML_ENTITY_QUOT   "&quot;"
 
#define PCMK__XML_VERSION   ((pcmkXmlStr) "1.0")
 libxml2 supports only XML version 1.0, at least as of libxml2-2.12.5 More...
 
#define pcmk__set_xml_flags(xml_priv, flags_to_set)
 
#define pcmk__clear_xml_flags(xml_priv, flags_to_clear)
 
#define PCMK__IPC_VERSION   1
 
#define PCMK__CONTROLD_API_MAJOR   "1"
 
#define PCMK__CONTROLD_API_MINOR   "0"
 
#define PCMK__XML_PREFIX_CREATED   "++"
 XML is newly created. More...
 
#define PCMK__XML_PREFIX_DELETED   "--"
 XML has been deleted. More...
 
#define PCMK__XML_PREFIX_MODIFIED   "+ "
 XML has been modified. More...
 
#define PCMK__XML_PREFIX_MOVED   "+~"
 XML has been moved. More...
 
#define PCMK__PW_BUFFER_LEN   500
 

Typedefs

typedef struct pcmk__deleted_xml_s pcmk__deleted_xml_t
 
typedef struct xml_node_private_s xml_node_private_t
 
typedef struct xml_doc_private_s xml_doc_private_t
 
typedef struct pcmk__ipc_methods_s pcmk__ipc_methods_t
 
typedef struct pcmk__ipc_header_s pcmk__ipc_header_t
 

Enumerations

enum  pcmk__time_component {
  pcmk__time_unknown, pcmk__time_years, pcmk__time_months, pcmk__time_weeks,
  pcmk__time_days, pcmk__time_hours, pcmk__time_minutes, pcmk__time_seconds
}
 
enum  pcmk__comparison {
  pcmk__comparison_unknown, pcmk__comparison_defined, pcmk__comparison_undefined, pcmk__comparison_eq,
  pcmk__comparison_ne, pcmk__comparison_lt, pcmk__comparison_lte, pcmk__comparison_gt,
  pcmk__comparison_gte
}
 
enum  pcmk__type {
  pcmk__type_unknown, pcmk__type_string, pcmk__type_integer, pcmk__type_number,
  pcmk__type_version
}
 
enum  pcmk__reference_source { pcmk__source_unknown, pcmk__source_literal, pcmk__source_instance_attrs, pcmk__source_meta_attrs }
 
enum  pcmk__schema_validator { pcmk__schema_validator_none, pcmk__schema_validator_rng }
 

Functions

G_GNUC_INTERNAL bool pcmk__tracking_xml_changes (xmlNode *xml, bool lazy)
 
G_GNUC_INTERNAL void pcmk__xml_mark_created (xmlNode *xml)
 
G_GNUC_INTERNAL int pcmk__xml_position (const xmlNode *xml, enum xml_private_flags ignore_if_set)
 
G_GNUC_INTERNAL xmlNode * pcmk__xml_match (const xmlNode *haystack, const xmlNode *needle, bool exact)
 
G_GNUC_INTERNAL void pcmk__xml_update (xmlNode *parent, xmlNode *target, xmlNode *update, uint32_t flags, bool as_diff)
 
G_GNUC_INTERNAL xmlNode * pcmk__xc_match (const xmlNode *root, const xmlNode *search_comment, bool exact)
 
G_GNUC_INTERNAL void pcmk__xc_update (xmlNode *parent, xmlNode *target, xmlNode *update)
 
G_GNUC_INTERNAL void pcmk__free_acls (GList *acls)
 
G_GNUC_INTERNAL void pcmk__unpack_acl (xmlNode *source, xmlNode *target, const char *user)
 
G_GNUC_INTERNAL bool pcmk__is_user_in_group (const char *user, const char *group)
 
G_GNUC_INTERNAL void pcmk__apply_acl (xmlNode *xml)
 
G_GNUC_INTERNAL void pcmk__apply_creation_acl (xmlNode *xml, bool check_top)
 
G_GNUC_INTERNAL void pcmk__mark_xml_attr_dirty (xmlAttr *a)
 
G_GNUC_INTERNAL bool pcmk__xa_filterable (const char *name)
 
G_GNUC_INTERNAL void pcmk__log_xmllib_err (void *ctx, const char *fmt,...) G_GNUC_PRINTF(2
 
G_GNUC_INTERNAL void G_GNUC_INTERNAL void pcmk__mark_xml_node_dirty (xmlNode *xml)
 
G_GNUC_INTERNAL bool pcmk__marked_as_deleted (xmlAttrPtr a, void *user_data)
 
G_GNUC_INTERNAL void pcmk__dump_xml_attr (const xmlAttr *attr, GString *buffer)
 
G_GNUC_INTERNAL int pcmk__xe_set_score (xmlNode *target, const char *name, const char *value)
 
G_GNUC_INTERNAL const char * pcmk__time_component_attr (enum pcmk__time_component component)
 
G_GNUC_INTERNAL int pcmk__add_time_from_xml (crm_time_t *t, enum pcmk__time_component component, const xmlNode *xml)
 
G_GNUC_INTERNAL void pcmk__set_time_if_earlier (crm_time_t *target, const crm_time_t *source)
 
G_GNUC_INTERNAL int pcmk__send_ipc_request (pcmk_ipc_api_t *api, const xmlNode *request)
 
G_GNUC_INTERNAL void pcmk__call_ipc_callback (pcmk_ipc_api_t *api, enum pcmk_ipc_event event_type, crm_exit_t status, void *event_data)
 
G_GNUC_INTERNAL unsigned int pcmk__ipc_buffer_size (unsigned int max)
 
G_GNUC_INTERNAL bool pcmk__valid_ipc_header (const pcmk__ipc_header_t *header)
 
G_GNUC_INTERNAL pcmk__ipc_methods_tpcmk__attrd_api_methods (void)
 
G_GNUC_INTERNAL pcmk__ipc_methods_tpcmk__controld_api_methods (void)
 
G_GNUC_INTERNAL pcmk__ipc_methods_tpcmk__pacemakerd_api_methods (void)
 
G_GNUC_INTERNAL pcmk__ipc_methods_tpcmk__schedulerd_api_methods (void)
 
G_GNUC_INTERNAL int pcmk__bare_output_new (pcmk__output_t **out, const char *fmt_name, const char *filename, char **argv)
 
G_GNUC_INTERNAL void pcmk__register_option_messages (pcmk__output_t *out)
 
G_GNUC_INTERNAL void pcmk__register_patchset_messages (pcmk__output_t *out)
 
G_GNUC_INTERNAL bool pcmk__output_text_get_fancy (pcmk__output_t *out)
 
G_GNUC_INTERNAL enum pcmk__comparison pcmk__parse_comparison (const char *op)
 
G_GNUC_INTERNAL enum pcmk__type pcmk__parse_type (const char *type, enum pcmk__comparison op, const char *value1, const char *value2)
 
G_GNUC_INTERNAL enum pcmk__reference_source pcmk__parse_source (const char *source)
 
G_GNUC_INTERNAL int pcmk__cmp_by_type (const char *value1, const char *value2, enum pcmk__type type)
 
G_GNUC_INTERNAL int pcmk__unpack_duration (const xmlNode *duration, const crm_time_t *start, crm_time_t **end)
 
G_GNUC_INTERNAL int pcmk__evaluate_date_spec (const xmlNode *date_spec, const crm_time_t *now)
 
G_GNUC_INTERNAL int pcmk__evaluate_attr_expression (const xmlNode *expression, const pcmk_rule_input_t *rule_input)
 
G_GNUC_INTERNAL int pcmk__evaluate_rsc_expression (const xmlNode *expr, const pcmk_rule_input_t *rule_input)
 
G_GNUC_INTERNAL int pcmk__evaluate_op_expression (const xmlNode *expr, const pcmk_rule_input_t *rule_input)
 
G_GNUC_INTERNAL GList * pcmk__find_x_0_schema (void)
 

Macro Definition Documentation

◆ PCMK__BUFFER_SIZE

#define PCMK__BUFFER_SIZE   4096

Definition at line 25 of file crmcommon_private.h.

◆ pcmk__clear_xml_flags

#define pcmk__clear_xml_flags (   xml_priv,
  flags_to_clear 
)
Value:
do { \
(xml_priv)->flags = pcmk__clear_flags_as(__func__, __LINE__, \
LOG_NEVER, "XML", "XML node", (xml_priv)->flags, \
(flags_to_clear), #flags_to_clear); \
} while (0)
#define LOG_NEVER
Definition: logging.h:48
uint64_t flags
Definition: remote.c:215

Definition at line 69 of file crmcommon_private.h.

◆ PCMK__CONTROLD_API_MAJOR

#define PCMK__CONTROLD_API_MAJOR   "1"

Definition at line 170 of file crmcommon_private.h.

◆ PCMK__CONTROLD_API_MINOR

#define PCMK__CONTROLD_API_MINOR   "0"

Definition at line 171 of file crmcommon_private.h.

◆ PCMK__IPC_VERSION

#define PCMK__IPC_VERSION   1

Definition at line 168 of file crmcommon_private.h.

◆ PCMK__PW_BUFFER_LEN

#define PCMK__PW_BUFFER_LEN   500

Definition at line 392 of file crmcommon_private.h.

◆ pcmk__set_xml_flags

#define pcmk__set_xml_flags (   xml_priv,
  flags_to_set 
)
Value:
do { \
(xml_priv)->flags = pcmk__set_flags_as(__func__, __LINE__, \
LOG_NEVER, "XML", "XML node", (xml_priv)->flags, \
(flags_to_set), #flags_to_set); \
} while (0)
#define LOG_NEVER
Definition: logging.h:48
uint64_t flags
Definition: remote.c:215

Definition at line 63 of file crmcommon_private.h.

◆ PCMK__XML_ENTITY_AMP

#define PCMK__XML_ENTITY_AMP   "&amp;"

Definition at line 55 of file crmcommon_private.h.

◆ PCMK__XML_ENTITY_GT

#define PCMK__XML_ENTITY_GT   "&gt;"

Definition at line 56 of file crmcommon_private.h.

◆ PCMK__XML_ENTITY_LT

#define PCMK__XML_ENTITY_LT   "&lt;"

Definition at line 57 of file crmcommon_private.h.

◆ PCMK__XML_ENTITY_QUOT

#define PCMK__XML_ENTITY_QUOT   "&quot;"

Definition at line 58 of file crmcommon_private.h.

◆ PCMK__XML_PREFIX_CREATED

#define PCMK__XML_PREFIX_CREATED   "++"

XML is newly created.

Definition at line 294 of file crmcommon_private.h.

◆ PCMK__XML_PREFIX_DELETED

#define PCMK__XML_PREFIX_DELETED   "--"

XML has been deleted.

Definition at line 297 of file crmcommon_private.h.

◆ PCMK__XML_PREFIX_MODIFIED

#define PCMK__XML_PREFIX_MODIFIED   "+ "

XML has been modified.

Definition at line 300 of file crmcommon_private.h.

◆ PCMK__XML_PREFIX_MOVED

#define PCMK__XML_PREFIX_MOVED   "+~"

XML has been moved.

Definition at line 303 of file crmcommon_private.h.

◆ PCMK__XML_VERSION

#define PCMK__XML_VERSION   ((pcmkXmlStr) "1.0")

libxml2 supports only XML version 1.0, at least as of libxml2-2.12.5

Definition at line 61 of file crmcommon_private.h.

Typedef Documentation

◆ pcmk__deleted_xml_t

◆ pcmk__ipc_header_t

◆ pcmk__ipc_methods_t

◆ xml_doc_private_t

◆ xml_node_private_t

Enumeration Type Documentation

◆ pcmk__comparison

Enumerator
pcmk__comparison_unknown 
pcmk__comparison_defined 
pcmk__comparison_undefined 
pcmk__comparison_eq 
pcmk__comparison_ne 
pcmk__comparison_lt 
pcmk__comparison_lte 
pcmk__comparison_gt 
pcmk__comparison_gte 

Definition at line 326 of file crmcommon_private.h.

◆ pcmk__reference_source

Enumerator
pcmk__source_unknown 
pcmk__source_literal 
pcmk__source_instance_attrs 
pcmk__source_meta_attrs 

Definition at line 348 of file crmcommon_private.h.

◆ pcmk__schema_validator

Enumerator
pcmk__schema_validator_none 
pcmk__schema_validator_rng 

Definition at line 402 of file crmcommon_private.h.

◆ pcmk__time_component

Enumerator
pcmk__time_unknown 
pcmk__time_years 
pcmk__time_months 
pcmk__time_weeks 
pcmk__time_days 
pcmk__time_hours 
pcmk__time_minutes 
pcmk__time_seconds 

Definition at line 142 of file crmcommon_private.h.

◆ pcmk__type

enum pcmk__type
Enumerator
pcmk__type_unknown 
pcmk__type_string 
pcmk__type_integer 
pcmk__type_number 
pcmk__type_version 

Definition at line 339 of file crmcommon_private.h.

Function Documentation

◆ pcmk__add_time_from_xml()

G_GNUC_INTERNAL int pcmk__add_time_from_xml ( crm_time_t t,
enum pcmk__time_component  component,
const xmlNode *  xml 
)

Definition at line 1568 of file iso8601.c.

◆ pcmk__apply_acl()

G_GNUC_INTERNAL void pcmk__apply_acl ( xmlNode *  xml)

Definition at line 230 of file acl.c.

◆ pcmk__apply_creation_acl()

G_GNUC_INTERNAL void pcmk__apply_creation_acl ( xmlNode *  xml,
bool  check_top 
)

Definition at line 573 of file acl.c.

◆ pcmk__attrd_api_methods()

G_GNUC_INTERNAL pcmk__ipc_methods_t* pcmk__attrd_api_methods ( void  )

Definition at line 118 of file ipc_attrd.c.

◆ pcmk__bare_output_new()

G_GNUC_INTERNAL int pcmk__bare_output_new ( pcmk__output_t **  out,
const char *  fmt_name,
const char *  filename,
char **  argv 
)

Definition at line 63 of file output.c.

◆ pcmk__call_ipc_callback()

G_GNUC_INTERNAL void pcmk__call_ipc_callback ( pcmk_ipc_api_t api,
enum pcmk_ipc_event  event_type,
crm_exit_t  status,
void *  event_data 
)

Definition at line 150 of file ipc_client.c.

◆ pcmk__cmp_by_type()

G_GNUC_INTERNAL int pcmk__cmp_by_type ( const char *  value1,
const char *  value2,
enum pcmk__type  type 
)

Definition at line 814 of file rules.c.

◆ pcmk__controld_api_methods()

G_GNUC_INTERNAL pcmk__ipc_methods_t* pcmk__controld_api_methods ( void  )

Definition at line 292 of file ipc_controld.c.

◆ pcmk__dump_xml_attr()

G_GNUC_INTERNAL void pcmk__dump_xml_attr ( const xmlAttr *  attr,
GString *  buffer 
)

Definition at line 62 of file xml_attr.c.

◆ pcmk__evaluate_attr_expression()

G_GNUC_INTERNAL int pcmk__evaluate_attr_expression ( const xmlNode *  expression,
const pcmk_rule_input_t rule_input 
)

Definition at line 1038 of file rules.c.

◆ pcmk__evaluate_date_spec()

G_GNUC_INTERNAL int pcmk__evaluate_date_spec ( const xmlNode *  date_spec,
const crm_time_t now 
)

Definition at line 193 of file rules.c.

◆ pcmk__evaluate_op_expression()

G_GNUC_INTERNAL int pcmk__evaluate_op_expression ( const xmlNode *  expr,
const pcmk_rule_input_t rule_input 
)

Definition at line 1259 of file rules.c.

◆ pcmk__evaluate_rsc_expression()

G_GNUC_INTERNAL int pcmk__evaluate_rsc_expression ( const xmlNode *  expr,
const pcmk_rule_input_t rule_input 
)

Definition at line 1188 of file rules.c.

◆ pcmk__find_x_0_schema()

G_GNUC_INTERNAL GList* pcmk__find_x_0_schema ( void  )

Definition at line 111 of file schemas.c.

◆ pcmk__free_acls()

G_GNUC_INTERNAL void pcmk__free_acls ( GList *  acls)

Definition at line 43 of file acl.c.

◆ pcmk__ipc_buffer_size()

G_GNUC_INTERNAL unsigned int pcmk__ipc_buffer_size ( unsigned int  max)

Definition at line 31 of file ipc_common.c.

◆ pcmk__is_user_in_group()

G_GNUC_INTERNAL bool pcmk__is_user_in_group ( const char *  user,
const char *  group 
)

Definition at line 53 of file utils.c.

◆ pcmk__log_xmllib_err()

G_GNUC_INTERNAL void pcmk__log_xmllib_err ( void *  ctx,
const char *  fmt,
  ... 
)

◆ pcmk__mark_xml_attr_dirty()

G_GNUC_INTERNAL void pcmk__mark_xml_attr_dirty ( xmlAttr *  a)

Definition at line 31 of file xml_attr.c.

◆ pcmk__mark_xml_node_dirty()

G_GNUC_INTERNAL void G_GNUC_INTERNAL void pcmk__mark_xml_node_dirty ( xmlNode *  xml)

Definition at line 101 of file xml.c.

◆ pcmk__marked_as_deleted()

G_GNUC_INTERNAL bool pcmk__marked_as_deleted ( xmlAttrPtr  a,
void *  user_data 
)

Definition at line 43 of file xml_attr.c.

◆ pcmk__output_text_get_fancy()

G_GNUC_INTERNAL bool pcmk__output_text_get_fancy ( pcmk__output_t out)

Definition at line 374 of file output_text.c.

◆ pcmk__pacemakerd_api_methods()

G_GNUC_INTERNAL pcmk__ipc_methods_t* pcmk__pacemakerd_api_methods ( void  )

Definition at line 264 of file ipc_pacemakerd.c.

◆ pcmk__parse_comparison()

G_GNUC_INTERNAL enum pcmk__comparison pcmk__parse_comparison ( const char *  op)

Definition at line 723 of file rules.c.

◆ pcmk__parse_source()

G_GNUC_INTERNAL enum pcmk__reference_source pcmk__parse_source ( const char *  source)

Definition at line 876 of file rules.c.

◆ pcmk__parse_type()

G_GNUC_INTERNAL enum pcmk__type pcmk__parse_type ( const char *  type,
enum pcmk__comparison  op,
const char *  value1,
const char *  value2 
)

Definition at line 765 of file rules.c.

◆ pcmk__register_option_messages()

G_GNUC_INTERNAL void pcmk__register_option_messages ( pcmk__output_t out)

Definition at line 491 of file options_display.c.

◆ pcmk__register_patchset_messages()

G_GNUC_INTERNAL void pcmk__register_patchset_messages ( pcmk__output_t out)

Definition at line 450 of file patchset_display.c.

◆ pcmk__schedulerd_api_methods()

G_GNUC_INTERNAL pcmk__ipc_methods_t* pcmk__schedulerd_api_methods ( void  )

Definition at line 132 of file ipc_schedulerd.c.

◆ pcmk__send_ipc_request()

G_GNUC_INTERNAL int pcmk__send_ipc_request ( pcmk_ipc_api_t api,
const xmlNode *  request 
)

Definition at line 668 of file ipc_client.c.

◆ pcmk__set_time_if_earlier()

G_GNUC_INTERNAL void pcmk__set_time_if_earlier ( crm_time_t target,
const crm_time_t source 
)

Definition at line 1414 of file iso8601.c.

◆ pcmk__time_component_attr()

G_GNUC_INTERNAL const char* pcmk__time_component_attr ( enum pcmk__time_component  component)

Definition at line 1487 of file iso8601.c.

◆ pcmk__tracking_xml_changes()

G_GNUC_INTERNAL bool pcmk__tracking_xml_changes ( xmlNode *  xml,
bool  lazy 
)

Definition at line 60 of file xml.c.

◆ pcmk__unpack_acl()

G_GNUC_INTERNAL void pcmk__unpack_acl ( xmlNode *  source,
xmlNode *  target,
const char *  user 
)

Definition at line 288 of file acl.c.

◆ pcmk__unpack_duration()

G_GNUC_INTERNAL int pcmk__unpack_duration ( const xmlNode *  duration,
const crm_time_t start,
crm_time_t **  end 
)

Definition at line 292 of file rules.c.

◆ pcmk__valid_ipc_header()

G_GNUC_INTERNAL bool pcmk__valid_ipc_header ( const pcmk__ipc_header_t header)

Definition at line 81 of file ipc_common.c.

◆ pcmk__xa_filterable()

G_GNUC_INTERNAL bool pcmk__xa_filterable ( const char *  name)

Definition at line 232 of file digest.c.

◆ pcmk__xc_match()

G_GNUC_INTERNAL xmlNode* pcmk__xc_match ( const xmlNode *  root,
const xmlNode *  search_comment,
bool  exact 
)

Definition at line 1573 of file xml.c.

◆ pcmk__xc_update()

G_GNUC_INTERNAL void pcmk__xc_update ( xmlNode *  parent,
xmlNode *  target,
xmlNode *  update 
)

Definition at line 1622 of file xml.c.

◆ pcmk__xe_set_score()

G_GNUC_INTERNAL int pcmk__xe_set_score ( xmlNode *  target,
const char *  name,
const char *  value 
)

Definition at line 525 of file xml.c.

◆ pcmk__xml_mark_created()

G_GNUC_INTERNAL void pcmk__xml_mark_created ( xmlNode *  xml)

Definition at line 160 of file xml.c.

◆ pcmk__xml_match()

G_GNUC_INTERNAL xmlNode* pcmk__xml_match ( const xmlNode *  haystack,
const xmlNode *  needle,
bool  exact 
)

Definition at line 385 of file xml.c.

◆ pcmk__xml_position()

G_GNUC_INTERNAL int pcmk__xml_position ( const xmlNode *  xml,
enum xml_private_flags  ignore_if_set 
)

Definition at line 342 of file xml.c.

◆ pcmk__xml_update()

G_GNUC_INTERNAL void pcmk__xml_update ( xmlNode *  parent,
xmlNode *  target,
xmlNode *  update,
uint32_t  flags,
bool  as_diff 
)

Definition at line 1675 of file xml.c.