pacemaker 3.0.1-16e74fc4da
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
crmcommon_private.h File Reference
#include <stdint.h>
#include <stdbool.h>
#include <sys/types.h>
#include <glib.h>
#include <libxml/tree.h>
#include <libxml/xmlstring.h>
#include <qb/qbipcc.h>
#include <crm/common/ipc.h>
#include <crm/common/iso8601.h>
#include <crm/common/logging.h>
#include <crm/common/mainloop.h>
#include <crm/common/output_internal.h>
#include <crm/common/results.h>
#include <crm/common/rules.h>
#include <crm/common/xml_internal.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_DOC_PRIVATE_MAGIC   0x81726354UL
 
#define PCMK__XML_NODE_PRIVATE_MAGIC   0x54637281UL
 
#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__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.
 
#define PCMK__XML_PREFIX_DELETED   "--"
 XML has been deleted.
 
#define PCMK__XML_PREFIX_MODIFIED   "+ "
 XML has been modified.
 
#define PCMK__XML_PREFIX_MOVED   "+~"
 XML has been moved.
 
#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 const char * pcmk__xml_element_type_text (xmlElementType type)
 
G_GNUC_INTERNAL bool pcmk__xml_reset_node_flags (xmlNode *xml, void *user_data)
 
G_GNUC_INTERNAL void pcmk__xml_set_parent_flags (xmlNode *xml, uint64_t flags)
 
G_GNUC_INTERNAL void pcmk__xml_new_private_data (xmlNode *xml)
 
G_GNUC_INTERNAL void pcmk__xml_free_private_data (xmlNode *xml)
 
G_GNUC_INTERNAL void pcmk__xml_free_node (xmlNode *xml)
 
G_GNUC_INTERNAL xmlDoc * pcmk__xml_new_doc (void)
 
G_GNUC_INTERNAL int pcmk__xml_position (const xmlNode *xml, enum pcmk__xml_flags ignore_if_set)
 
G_GNUC_INTERNAL bool pcmk__xc_matches (const xmlNode *comment1, const xmlNode *comment2)
 
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 int pcmk__xa_remove (xmlAttr *attr, bool force)
 
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 bool pcmk__xml_is_name_start_char (const char *utf8, int *len)
 
G_GNUC_INTERNAL bool pcmk__xml_is_name_char (const char *utf8, int *len)
 
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 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 40 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)
uint64_t flags
Definition remote.c:3
#define LOG_NEVER
Definition logging.h:48

Definition at line 109 of file crmcommon_private.h.

◆ PCMK__CONTROLD_API_MAJOR

#define PCMK__CONTROLD_API_MAJOR   "1"

Definition at line 224 of file crmcommon_private.h.

◆ PCMK__CONTROLD_API_MINOR

#define PCMK__CONTROLD_API_MINOR   "0"

Definition at line 225 of file crmcommon_private.h.

◆ PCMK__IPC_VERSION

#define PCMK__IPC_VERSION   1

Definition at line 222 of file crmcommon_private.h.

◆ PCMK__PW_BUFFER_LEN

#define PCMK__PW_BUFFER_LEN   500

Definition at line 442 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)

Definition at line 103 of file crmcommon_private.h.

◆ PCMK__XML_DOC_PRIVATE_MAGIC

#define PCMK__XML_DOC_PRIVATE_MAGIC   0x81726354UL

Definition at line 94 of file crmcommon_private.h.

◆ PCMK__XML_ENTITY_AMP

#define PCMK__XML_ENTITY_AMP   "&amp;"

Definition at line 98 of file crmcommon_private.h.

◆ PCMK__XML_ENTITY_GT

#define PCMK__XML_ENTITY_GT   "&gt;"

Definition at line 99 of file crmcommon_private.h.

◆ PCMK__XML_ENTITY_LT

#define PCMK__XML_ENTITY_LT   "&lt;"

Definition at line 100 of file crmcommon_private.h.

◆ PCMK__XML_ENTITY_QUOT

#define PCMK__XML_ENTITY_QUOT   "&quot;"

Definition at line 101 of file crmcommon_private.h.

◆ PCMK__XML_NODE_PRIVATE_MAGIC

#define PCMK__XML_NODE_PRIVATE_MAGIC   0x54637281UL

Definition at line 95 of file crmcommon_private.h.

◆ PCMK__XML_PREFIX_CREATED

#define PCMK__XML_PREFIX_CREATED   "++"

XML is newly created.

Definition at line 344 of file crmcommon_private.h.

◆ PCMK__XML_PREFIX_DELETED

#define PCMK__XML_PREFIX_DELETED   "--"

XML has been deleted.

Definition at line 347 of file crmcommon_private.h.

◆ PCMK__XML_PREFIX_MODIFIED

#define PCMK__XML_PREFIX_MODIFIED   "+ "

XML has been modified.

Definition at line 350 of file crmcommon_private.h.

◆ PCMK__XML_PREFIX_MOVED

#define PCMK__XML_PREFIX_MOVED   "+~"

XML has been moved.

Definition at line 353 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 376 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 398 of file crmcommon_private.h.

◆ pcmk__schema_validator

Enumerator
pcmk__schema_validator_none 
pcmk__schema_validator_rng 

Definition at line 452 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 196 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 389 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 1615 of file iso8601.c.

◆ pcmk__apply_acl()

G_GNUC_INTERNAL void pcmk__apply_acl ( xmlNode * xml)

Definition at line 216 of file acl.c.

◆ pcmk__apply_creation_acl()

G_GNUC_INTERNAL void pcmk__apply_creation_acl ( xmlNode * xml,
bool check_top )

Definition at line 612 of file acl.c.

◆ pcmk__attrd_api_methods()

G_GNUC_INTERNAL pcmk__ipc_methods_t * pcmk__attrd_api_methods ( void )

Definition at line 116 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 144 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 743 of file rules.c.

◆ pcmk__controld_api_methods()

G_GNUC_INTERNAL pcmk__ipc_methods_t * pcmk__controld_api_methods ( void )

Definition at line 299 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 108 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 958 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 155 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 1179 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 1110 of file rules.c.

◆ pcmk__find_x_0_schema()

G_GNUC_INTERNAL GList * pcmk__find_x_0_schema ( void )

Definition at line 115 of file schemas.c.

◆ pcmk__free_acls()

G_GNUC_INTERNAL void pcmk__free_acls ( GList * acls)

Definition at line 45 of file acl.c.

◆ pcmk__is_user_in_group()

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

Definition at line 71 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 77 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 159 of file xml.c.

◆ pcmk__marked_as_deleted()

G_GNUC_INTERNAL bool pcmk__marked_as_deleted ( xmlAttrPtr a,
void * user_data )

Definition at line 89 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 361 of file output_text.c.

◆ pcmk__pacemakerd_api_methods()

G_GNUC_INTERNAL pcmk__ipc_methods_t * pcmk__pacemakerd_api_methods ( void )

Definition at line 282 of file ipc_pacemakerd.c.

◆ pcmk__parse_comparison()

G_GNUC_INTERNAL enum pcmk__comparison pcmk__parse_comparison ( const char * op)

Definition at line 652 of file rules.c.

◆ pcmk__parse_source()

G_GNUC_INTERNAL enum pcmk__reference_source pcmk__parse_source ( const char * source)

Definition at line 805 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 694 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 324 of file patchset_display.c.

◆ pcmk__schedulerd_api_methods()

G_GNUC_INTERNAL pcmk__ipc_methods_t * pcmk__schedulerd_api_methods ( void )

Definition at line 141 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 684 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 1461 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 1534 of file iso8601.c.

◆ pcmk__unpack_acl()

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

Definition at line 315 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 246 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 45 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__xa_remove()

G_GNUC_INTERNAL int pcmk__xa_remove ( xmlAttr * attr,
bool force )

Definition at line 45 of file xml_attr.c.

◆ pcmk__xc_matches()

G_GNUC_INTERNAL bool pcmk__xc_matches ( const xmlNode * comment1,
const xmlNode * comment2 )

Definition at line 54 of file xml_comment.c.

◆ pcmk__xc_update()

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

Definition at line 104 of file xml_comment.c.

◆ pcmk__xe_set_score()

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

Definition at line 172 of file xml_element.c.

◆ pcmk__xml_element_type_text()

G_GNUC_INTERNAL const char * pcmk__xml_element_type_text ( xmlElementType type)

Definition at line 41 of file xml.c.

◆ pcmk__xml_free_node()

G_GNUC_INTERNAL void pcmk__xml_free_node ( xmlNode * xml)

Definition at line 716 of file xml.c.

◆ pcmk__xml_free_private_data()

G_GNUC_INTERNAL void pcmk__xml_free_private_data ( xmlNode * xml)

Definition at line 399 of file xml.c.

◆ pcmk__xml_is_name_char()

G_GNUC_INTERNAL bool pcmk__xml_is_name_char ( const char * utf8,
int * len )

Definition at line 611 of file xml.c.

◆ pcmk__xml_is_name_start_char()

G_GNUC_INTERNAL bool pcmk__xml_is_name_start_char ( const char * utf8,
int * len )

Definition at line 540 of file xml.c.

◆ pcmk__xml_new_doc()

G_GNUC_INTERNAL xmlDoc * pcmk__xml_new_doc ( void )

Definition at line 499 of file xml.c.

◆ pcmk__xml_new_private_data()

G_GNUC_INTERNAL void pcmk__xml_new_private_data ( xmlNode * xml)

Definition at line 387 of file xml.c.

◆ pcmk__xml_position()

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

Definition at line 414 of file xml.c.

◆ pcmk__xml_reset_node_flags()

G_GNUC_INTERNAL bool pcmk__xml_reset_node_flags ( xmlNode * xml,
void * user_data )

Definition at line 180 of file xml.c.

◆ pcmk__xml_set_parent_flags()

G_GNUC_INTERNAL void pcmk__xml_set_parent_flags ( xmlNode * xml,
uint64_t flags )

Definition at line 109 of file xml.c.