pacemaker  1.1.15-e174ec8
Scalable High-Availability cluster resource manager
Macros | Functions
xml.h File Reference

Wrappers for and extensions to libxml2. More...

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <fcntl.h>
#include <crm/crm.h>
#include <libxml/tree.h>
#include <libxml/xpath.h>
Include dependency graph for xml.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define CRM_BZ2_BLOCKS   4
 
#define CRM_BZ2_WORK   20
 
#define CRM_BZ2_THRESHOLD   128 * 1024
 
#define XML_PARANOIA_CHECKS   0
 

Functions

gboolean add_message_xml (xmlNode *msg, const char *field, xmlNode *xml)
 
xmlNode * get_message_xml (xmlNode *msg, const char *field)
 
GHashTable * xml2list (xmlNode *parent)
 
void hash2nvpair (gpointer key, gpointer value, gpointer user_data)
 
void hash2field (gpointer key, gpointer value, gpointer user_data)
 
void hash2metafield (gpointer key, gpointer value, gpointer user_data)
 
void hash2smartfield (gpointer key, gpointer value, gpointer user_data)
 
xmlDoc * getDocPtr (xmlNode *node)
 
void copy_in_properties (xmlNode *target, xmlNode *src)
 
void expand_plus_plus (xmlNode *target, const char *name, const char *value)
 
void fix_plus_plus_recursive (xmlNode *target)
 
xmlNode * create_xml_node (xmlNode *parent, const char *name)
 
const char * crm_xml_add (xmlNode *node, const char *name, const char *value)
 
const char * crm_xml_replace (xmlNode *node, const char *name, const char *value)
 
const char * crm_xml_add_int (xmlNode *node, const char *name, int value)
 
void unlink_xml_node (xmlNode *node)
 
void purge_diff_markers (xmlNode *a_node)
 
xmlNode * copy_xml (xmlNode *src_node)
 
xmlNode * add_node_copy (xmlNode *new_parent, xmlNode *xml_node)
 
int add_node_nocopy (xmlNode *parent, const char *name, xmlNode *child)
 
xmlNode * filename2xml (const char *filename)
 
xmlNode * stdin2xml (void)
 
xmlNode * string2xml (const char *input)
 
int write_xml_fd (xmlNode *xml_node, const char *filename, int fd, gboolean compress)
 
int write_xml_file (xmlNode *xml_node, const char *filename, gboolean compress)
 
char * dump_xml_formatted (xmlNode *msg)
 
char * dump_xml_formatted_with_text (xmlNode *msg)
 
char * dump_xml_unformatted (xmlNode *msg)
 
xmlNode * diff_xml_object (xmlNode *left, xmlNode *right, gboolean suppress)
 
xmlNode * subtract_xml_object (xmlNode *parent, xmlNode *left, xmlNode *right, gboolean full, gboolean *changed, const char *marker)
 
gboolean can_prune_leaf (xmlNode *xml_node)
 
void print_xml_diff (FILE *where, xmlNode *diff)
 
gboolean apply_xml_diff (xmlNode *old, xmlNode *diff, xmlNode **new)
 
xmlNode * find_xml_node (xmlNode *cib, const char *node_path, gboolean must_find)
 
xmlNode * find_entity (xmlNode *parent, const char *node_name, const char *id)
 
void xml_remove_prop (xmlNode *obj, const char *name)
 
gboolean replace_xml_child (xmlNode *parent, xmlNode *child, xmlNode *update, gboolean delete_only)
 
gboolean update_xml_child (xmlNode *child, xmlNode *to_update)
 
int find_xml_children (xmlNode **children, xmlNode *root, const char *tag, const char *field, const char *value, gboolean search_matches)
 
int crm_element_value_int (xmlNode *data, const char *name, int *dest)
 
char * crm_element_value_copy (xmlNode *data, const char *name)
 
int crm_element_value_const_int (const xmlNode *data, const char *name, int *dest)
 
const char * crm_element_value_const (const xmlNode *data, const char *name)
 
xmlNode * get_xpath_object (const char *xpath, xmlNode *xml_obj, int error_level)
 
xmlNode * get_xpath_object_relative (const char *xpath, xmlNode *xml_obj, int error_level)
 
const char * crm_element_value (xmlNode *data, const char *name)
 
void xml_validate (const xmlNode *root)
 
gboolean xml_has_children (const xmlNode *root)
 
char * calculate_on_disk_digest (xmlNode *local_cib)
 Calculate and return digest of XML tree, suitable for storing on disk. More...
 
char * calculate_operation_digest (xmlNode *local_cib, const char *version)
 Calculate and return digest of XML operation. More...
 
char * calculate_xml_versioned_digest (xmlNode *input, gboolean sort, gboolean do_filter, const char *version)
 Calculate and return digest of XML tree. More...
 
gboolean validate_xml (xmlNode *xml_blob, const char *validation, gboolean to_logs)
 
gboolean validate_xml_verbose (xmlNode *xml_blob)
 
int update_validation (xmlNode **xml_blob, int *best, int max, gboolean transform, gboolean to_logs)
 
int get_schema_version (const char *name)
 
const char * get_schema_name (int version)
 
void crm_xml_init (void)
 
void crm_xml_cleanup (void)
 
void free_xml (xmlNode *child)
 
xmlNode * first_named_child (xmlNode *parent, const char *name)
 
xmlNode * sorted_xml (xmlNode *input, xmlNode *parent, gboolean recursive)
 
xmlXPathObjectPtr xpath_search (xmlNode *xml_top, const char *path)
 
void crm_foreach_xpath_result (xmlNode *xml, const char *xpath, void(*helper)(xmlNode *, void *), void *user_data)
 Run a supplied function for each result of an xpath search. More...
 
gboolean cli_config_update (xmlNode **xml, int *best_version, gboolean to_logs)
 
xmlNode * expand_idref (xmlNode *input, xmlNode *top)
 
void freeXpathObject (xmlXPathObjectPtr xpathObj)
 
xmlNode * getXpathResult (xmlXPathObjectPtr xpathObj, int index)
 
void dedupXpathResults (xmlXPathObjectPtr xpathObj)
 
const char * xml_latest_schema (void)
 
bool xml_acl_enabled (xmlNode *xml)
 
void xml_acl_disable (xmlNode *xml)
 
bool xml_acl_denied (xmlNode *xml)
 
bool xml_acl_filtered_copy (const char *user, xmlNode *acl_source, xmlNode *xml, xmlNode **result)
 
bool xml_tracking_changes (xmlNode *xml)
 
bool xml_document_dirty (xmlNode *xml)
 
void xml_track_changes (xmlNode *xml, const char *user, xmlNode *acl_source, bool enforce_acls)
 
void xml_calculate_changes (xmlNode *old, xmlNode *new)
 
void xml_accept_changes (xmlNode *xml)
 
void xml_log_changes (uint8_t level, const char *function, xmlNode *xml)
 
void xml_log_patchset (uint8_t level, const char *function, xmlNode *xml)
 
bool xml_patch_versions (xmlNode *patchset, int add[3], int del[3])
 
xmlNode * xml_create_patchset (int format, xmlNode *source, xmlNode *target, bool *config, bool manage_version)
 
int xml_apply_patchset (xmlNode *xml, xmlNode *patchset, bool check_version)
 
void patchset_process_digest (xmlNode *patch, xmlNode *source, xmlNode *target, bool with_digest)
 
void save_xml_to_file (xmlNode *xml, const char *desc, const char *filename)
 
char * xml_get_path (xmlNode *xml)
 
char * crm_xml_escape (const char *text)
 

Detailed Description

Wrappers for and extensions to libxml2.

Definition in file xml.h.

Macro Definition Documentation

§ CRM_BZ2_BLOCKS

#define CRM_BZ2_BLOCKS   4

Definition at line 48 of file xml.h.

§ CRM_BZ2_THRESHOLD

#define CRM_BZ2_THRESHOLD   128 * 1024

Definition at line 50 of file xml.h.

§ CRM_BZ2_WORK

#define CRM_BZ2_WORK   20

Definition at line 49 of file xml.h.

§ XML_PARANOIA_CHECKS

#define XML_PARANOIA_CHECKS   0

Definition at line 52 of file xml.h.

Function Documentation

§ add_message_xml()

gboolean add_message_xml ( xmlNode *  msg,
const char *  field,
xmlNode *  xml 
)

Definition at line 3335 of file xml.c.

§ add_node_copy()

xmlNode* add_node_copy ( xmlNode *  new_parent,
xmlNode *  xml_node 
)

Definition at line 2613 of file xml.c.

§ add_node_nocopy()

int add_node_nocopy ( xmlNode *  parent,
const char *  name,
xmlNode *  child 
)

Definition at line 2627 of file xml.c.

§ apply_xml_diff()

gboolean apply_xml_diff ( xmlNode *  old,
xmlNode *  diff,
xmlNode **  new 
)

Definition at line 4098 of file xml.c.

§ calculate_on_disk_digest()

char* calculate_on_disk_digest ( xmlNode *  input)

Calculate and return digest of XML tree, suitable for storing on disk.

Parameters
[in]inputRoot of XML to digest
Returns
Newly allocated string containing digest

Definition at line 156 of file digest.c.

§ calculate_operation_digest()

char* calculate_operation_digest ( xmlNode *  input,
const char *  version 
)

Calculate and return digest of XML operation.

Parameters
[in]inputRoot of XML to digest
[in]versionNot used
Returns
Newly allocated string containing digest

Definition at line 175 of file digest.c.

§ calculate_xml_versioned_digest()

char* calculate_xml_versioned_digest ( xmlNode *  input,
gboolean  sort,
gboolean  do_filter,
const char *  version 
)

Calculate and return digest of XML tree.

Parameters
[in]inputRoot of XML to digest
[in]sortWhether to sort XML before calculating digest
[in]do_filterWhether to filter certain XML attributes
[in]versionCRM feature set version (used to select v1/v2 digest)
Returns
Newly allocated string containing digest

Definition at line 192 of file digest.c.

§ can_prune_leaf()

gboolean can_prune_leaf ( xmlNode *  xml_node)

Definition at line 4391 of file xml.c.

§ cli_config_update()

gboolean cli_config_update ( xmlNode **  xml,
int *  best_version,
gboolean  to_logs 
)

Definition at line 5738 of file xml.c.

§ copy_in_properties()

void copy_in_properties ( xmlNode *  target,
xmlNode *  src 
)

Definition at line 2495 of file xml.c.

§ copy_xml()

xmlNode* copy_xml ( xmlNode *  src_node)

Definition at line 2897 of file xml.c.

§ create_xml_node()

xmlNode* create_xml_node ( xmlNode *  parent,
const char *  name 
)

Definition at line 2796 of file xml.c.

§ crm_element_value()

const char* crm_element_value ( xmlNode *  data,
const char *  name 
)

Definition at line 5842 of file xml.c.

§ crm_element_value_const()

const char* crm_element_value_const ( const xmlNode *  data,
const char *  name 
)

Definition at line 4028 of file xml.c.

§ crm_element_value_const_int()

int crm_element_value_const_int ( const xmlNode *  data,
const char *  name,
int *  dest 
)

Definition at line 4022 of file xml.c.

§ crm_element_value_copy()

char* crm_element_value_copy ( xmlNode *  data,
const char *  name 
)

Definition at line 4034 of file xml.c.

§ crm_element_value_int()

int crm_element_value_int ( xmlNode *  data,
const char *  name,
int *  dest 
)

Definition at line 4009 of file xml.c.

§ crm_foreach_xpath_result()

void crm_foreach_xpath_result ( xmlNode *  xml,
const char *  xpath,
void(*)(xmlNode *, void *)  helper,
void *  user_data 
)

Run a supplied function for each result of an xpath search.

Parameters
[in]xmlXML to search
[in]xpathXPath search string
[in]helperFunction to call for each result

Definition at line 179 of file xpath.c.

§ crm_xml_add()

const char* crm_xml_add ( xmlNode *  node,
const char *  name,
const char *  value 
)

Definition at line 2698 of file xml.c.

§ crm_xml_add_int()

const char* crm_xml_add_int ( xmlNode *  node,
const char *  name,
int  value 
)

Definition at line 2786 of file xml.c.

§ crm_xml_cleanup()

void crm_xml_cleanup ( void  )

Definition at line 5361 of file xml.c.

§ crm_xml_escape()

char* crm_xml_escape ( const char *  text)

Definition at line 3361 of file xml.c.

§ crm_xml_init()

void crm_xml_init ( void  )

Definition at line 5339 of file xml.c.

§ crm_xml_replace()

const char* crm_xml_replace ( xmlNode *  node,
const char *  name,
const char *  value 
)

Definition at line 2744 of file xml.c.

§ dedupXpathResults()

void dedupXpathResults ( xmlXPathObjectPtr  xpathObj)

Definition at line 107 of file xpath.c.

§ diff_xml_object()

xmlNode* diff_xml_object ( xmlNode *  left,
xmlNode *  right,
gboolean  suppress 
)

Definition at line 4363 of file xml.c.

§ dump_xml_formatted()

char* dump_xml_formatted ( xmlNode *  msg)

Definition at line 3980 of file xml.c.

§ dump_xml_formatted_with_text()

char* dump_xml_formatted_with_text ( xmlNode *  msg)

Definition at line 3970 of file xml.c.

§ dump_xml_unformatted()

char* dump_xml_unformatted ( xmlNode *  msg)

Definition at line 3990 of file xml.c.

§ expand_idref()

xmlNode* expand_idref ( xmlNode *  input,
xmlNode *  top 
)

Definition at line 5802 of file xml.c.

§ expand_plus_plus()

void expand_plus_plus ( xmlNode *  target,
const char *  name,
const char *  value 
)

Definition at line 2536 of file xml.c.

§ filename2xml()

xmlNode* filename2xml ( const char *  filename)

Definition at line 3144 of file xml.c.

§ find_entity()

xmlNode* find_entity ( xmlNode *  parent,
const char *  node_name,
const char *  id 
)

Definition at line 2476 of file xml.c.

§ find_xml_children()

int find_xml_children ( xmlNode **  children,
xmlNode *  root,
const char *  tag,
const char *  field,
const char *  value,
gboolean  search_matches 
)

Definition at line 4857 of file xml.c.

§ find_xml_node()

xmlNode* find_xml_node ( xmlNode *  cib,
const char *  node_path,
gboolean  must_find 
)

Definition at line 2443 of file xml.c.

§ first_named_child()

xmlNode* first_named_child ( xmlNode *  parent,
const char *  name 
)

Definition at line 5210 of file xml.c.

§ fix_plus_plus_recursive()

void fix_plus_plus_recursive ( xmlNode *  target)

Definition at line 2518 of file xml.c.

§ free_xml()

void free_xml ( xmlNode *  child)

Definition at line 2851 of file xml.c.

§ freeXpathObject()

void freeXpathObject ( xmlXPathObjectPtr  xpathObj)

Definition at line 45 of file xpath.c.

§ get_message_xml()

xmlNode* get_message_xml ( xmlNode *  msg,
const char *  field 
)

Definition at line 3327 of file xml.c.

§ get_schema_name()

const char* get_schema_name ( int  version)

Definition at line 5586 of file xml.c.

§ get_schema_version()

int get_schema_version ( const char *  name)

Definition at line 5595 of file xml.c.

§ get_xpath_object()

xmlNode* get_xpath_object ( const char *  xpath,
xmlNode *  xml_obj,
int  error_level 
)

Definition at line 224 of file xpath.c.

§ get_xpath_object_relative()

xmlNode* get_xpath_object_relative ( const char *  xpath,
xmlNode *  xml_obj,
int  error_level 
)

Definition at line 198 of file xpath.c.

§ getDocPtr()

xmlDoc* getDocPtr ( xmlNode *  node)

Definition at line 2597 of file xml.c.

§ getXpathResult()

xmlNode* getXpathResult ( xmlXPathObjectPtr  xpathObj,
int  index 
)

Definition at line 64 of file xpath.c.

§ hash2field()

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

Definition at line 5011 of file xml.c.

§ hash2metafield()

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

Definition at line 5027 of file xml.c.

§ hash2nvpair()

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

Definition at line 4972 of file xml.c.

§ hash2smartfield()

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

Definition at line 4988 of file xml.c.

§ patchset_process_digest()

void patchset_process_digest ( xmlNode *  patch,
xmlNode *  source,
xmlNode *  target,
bool  with_digest 
)

Definition at line 1591 of file xml.c.

§ print_xml_diff()

void print_xml_diff ( FILE *  where,
xmlNode *  diff 
)

§ purge_diff_markers()

void purge_diff_markers ( xmlNode *  a_node)

Definition at line 4067 of file xml.c.

§ replace_xml_child()

gboolean replace_xml_child ( xmlNode *  parent,
xmlNode *  child,
xmlNode *  update,
gboolean  delete_only 
)

Definition at line 4889 of file xml.c.

§ save_xml_to_file()

void save_xml_to_file ( xmlNode *  xml,
const char *  desc,
const char *  filename 
)

Definition at line 4080 of file xml.c.

§ sorted_xml()

xmlNode* sorted_xml ( xmlNode *  input,
xmlNode *  parent,
gboolean  recursive 
)

Definition at line 5124 of file xml.c.

§ stdin2xml()

xmlNode* stdin2xml ( void  )

Definition at line 3025 of file xml.c.

§ string2xml()

xmlNode* string2xml ( const char *  input)

Definition at line 2960 of file xml.c.

§ subtract_xml_object()

xmlNode* subtract_xml_object ( xmlNode *  parent,
xmlNode *  left,
xmlNode *  right,
gboolean  full,
gboolean *  changed,
const char *  marker 
)

Definition at line 4531 of file xml.c.

§ unlink_xml_node()

void unlink_xml_node ( xmlNode *  node)

§ update_validation()

int update_validation ( xmlNode **  xml_blob,
int *  best,
int  max,
gboolean  transform,
gboolean  to_logs 
)

Definition at line 5613 of file xml.c.

§ update_xml_child()

gboolean update_xml_child ( xmlNode *  child,
xmlNode *  to_update 
)

Definition at line 4823 of file xml.c.

§ validate_xml()

gboolean validate_xml ( xmlNode *  xml_blob,
const char *  validation,
gboolean  to_logs 
)

Definition at line 5502 of file xml.c.

§ validate_xml_verbose()

gboolean validate_xml_verbose ( xmlNode *  xml_blob)

Definition at line 5476 of file xml.c.

§ write_xml_fd()

int write_xml_fd ( xmlNode *  xml_node,
const char *  filename,
int  fd,
gboolean  compress 
)

Definition at line 3307 of file xml.c.

§ write_xml_file()

int write_xml_file ( xmlNode *  xml_node,
const char *  filename,
gboolean  compress 
)

Definition at line 3317 of file xml.c.

§ xml2list()

GHashTable* xml2list ( xmlNode *  parent)

Definition at line 5045 of file xml.c.

§ xml_accept_changes()

void xml_accept_changes ( xmlNode *  xml)

Definition at line 1793 of file xml.c.

§ xml_acl_denied()

bool xml_acl_denied ( xmlNode *  xml)

Definition at line 1063 of file xml.c.

§ xml_acl_disable()

void xml_acl_disable ( xmlNode *  xml)

Definition at line 1074 of file xml.c.

§ xml_acl_enabled()

bool xml_acl_enabled ( xmlNode *  xml)

Definition at line 1087 of file xml.c.

§ xml_acl_filtered_copy()

bool xml_acl_filtered_copy ( const char *  user,
xmlNode *  acl_source,
xmlNode *  xml,
xmlNode **  result 
)

Definition at line 942 of file xml.c.

§ xml_apply_patchset()

int xml_apply_patchset ( xmlNode *  xml,
xmlNode *  patchset,
bool  check_version 
)

Definition at line 2366 of file xml.c.

§ xml_calculate_changes()

void xml_calculate_changes ( xmlNode *  old,
xmlNode *  new 
)

Definition at line 4350 of file xml.c.

§ xml_create_patchset()

xmlNode* xml_create_patchset ( int  format,
xmlNode *  source,
xmlNode *  target,
bool *  config,
bool  manage_version 
)

Definition at line 1531 of file xml.c.

§ xml_document_dirty()

bool xml_document_dirty ( xmlNode *  xml)

Definition at line 1124 of file xml.c.

§ xml_get_path()

char* xml_get_path ( xmlNode *  xml)

Definition at line 2839 of file xml.c.

§ xml_has_children()

gboolean xml_has_children ( const xmlNode *  root)

Definition at line 4000 of file xml.c.

§ xml_latest_schema()

const char* xml_latest_schema ( void  )

Definition at line 180 of file xml.c.

§ xml_log_changes()

void xml_log_changes ( uint8_t  level,
const char *  function,
xmlNode *  xml 
)

Definition at line 1771 of file xml.c.

§ xml_log_patchset()

void xml_log_patchset ( uint8_t  level,
const char *  function,
xmlNode *  xml 
)

Definition at line 1624 of file xml.c.

§ xml_patch_versions()

bool xml_patch_versions ( xmlNode *  patchset,
int  add[3],
int  del[3] 
)

Definition at line 1989 of file xml.c.

§ xml_remove_prop()

void xml_remove_prop ( xmlNode *  obj,
const char *  name 
)

Definition at line 4046 of file xml.c.

§ xml_track_changes()

void xml_track_changes ( xmlNode *  xml,
const char *  user,
xmlNode *  acl_source,
bool  enforce_acls 
)

Definition at line 1098 of file xml.c.

§ xml_tracking_changes()

bool xml_tracking_changes ( xmlNode *  xml)

Definition at line 1113 of file xml.c.

§ xml_validate()

void xml_validate ( const xmlNode *  root)

§ xpath_search()

xmlXPathObjectPtr xpath_search ( xmlNode *  xml_top,
const char *  path 
)

Definition at line 145 of file xpath.c.