pacemaker
3.0.0-d8340737c4
Scalable High-Availability cluster resource manager
|
#include <crm_internal.h>
#include <stdarg.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <libxml/tree.h>
#include <libxml/valid.h>
#include <crm/crm.h>
#include <crm/common/nvpair.h>
#include <crm/common/results.h>
#include <crm/common/xml.h>
#include "crmcommon_private.h"
#include <glib.h>
#include <crm/common/nvpair_compat.h>
#include <crm/common/xml_compat.h>
#include <crm/common/xml_element_compat.h>
Go to the source code of this file.
Macros | |
#define | LLSTRSIZE 21 |
Functions | |
xmlNode * | pcmk__xe_first_child (const xmlNode *parent, const char *node_name, const char *attr_n, const char *attr_v) |
xmlNode * | pcmk__xe_next (const xmlNode *xml, const char *element_name) |
int | pcmk__xe_get_score (const xmlNode *xml, const char *name, int *score, int default_score) |
int | pcmk__xe_set_score (xmlNode *target, const char *name, const char *value) |
int | pcmk__xe_copy_attrs (xmlNode *target, const xmlNode *src, uint32_t flags) |
void | pcmk__xe_sort_attrs (xmlNode *xml) |
void | pcmk__xe_remove_attr (xmlNode *element, const char *name) |
bool | pcmk__xe_remove_attr_cb (xmlNode *xml, void *user_data) |
void | pcmk__xe_remove_matching_attrs (xmlNode *element, bool(*match)(xmlAttrPtr, void *), void *user_data) |
xmlNode * | pcmk__xe_create (xmlNode *parent, const char *name) |
void | pcmk__xe_set_content (xmlNode *node, const char *format,...) |
void | pcmk__xe_set_id (xmlNode *node, const char *format,...) |
const char * | pcmk__xe_add_last_written (xmlNode *xe) |
int | pcmk__xe_delete_match (xmlNode *xml, xmlNode *search) |
int | pcmk__xe_replace_match (xmlNode *xml, xmlNode *replace) |
int | pcmk__xe_update_match (xmlNode *xml, xmlNode *update, uint32_t flags) |
void | pcmk__xe_set_propv (xmlNodePtr node, va_list pairs) |
void | pcmk__xe_set_props (xmlNodePtr node,...) |
int | pcmk__xe_foreach_child (xmlNode *xml, const char *child_element_name, int(*handler)(xmlNode *xml, void *userdata), void *userdata) |
const char * | crm_xml_add (xmlNode *node, const char *name, const char *value) |
Create an XML attribute with specified name and value. More... | |
const char * | crm_xml_add_int (xmlNode *node, const char *name, int value) |
Create an XML attribute with specified name and integer value. More... | |
const char * | crm_xml_add_ms (xmlNode *node, const char *name, guint ms) |
Create an XML attribute with specified name and unsigned value. More... | |
const char * | crm_xml_add_ll (xmlNode *xml, const char *name, long long value) |
Create an XML attribute with specified name and long long int value. More... | |
const char * | crm_xml_add_timeval (xmlNode *xml, const char *name_sec, const char *name_usec, const struct timeval *value) |
Create XML attributes for seconds and microseconds. More... | |
const char * | crm_element_value (const xmlNode *data, const char *name) |
Retrieve the value of an XML attribute. More... | |
int | crm_element_value_int (const xmlNode *data, const char *name, int *dest) |
Retrieve the integer value of an XML attribute. More... | |
int | pcmk__xe_get_flags (const xmlNode *xml, const char *name, uint32_t *dest, uint32_t default_value) |
int | crm_element_value_ll (const xmlNode *data, const char *name, long long *dest) |
Retrieve the long long integer value of an XML attribute. More... | |
int | crm_element_value_ms (const xmlNode *data, const char *name, guint *dest) |
Retrieve the millisecond value of an XML attribute. More... | |
int | crm_element_value_epoch (const xmlNode *xml, const char *name, time_t *dest) |
Retrieve the seconds-since-epoch value of an XML attribute. More... | |
int | crm_element_value_timeval (const xmlNode *xml, const char *name_sec, const char *name_usec, struct timeval *dest) |
Retrieve the value of XML second/microsecond attributes as time. More... | |
int | pcmk__xe_get_datetime (const xmlNode *xml, const char *attr, crm_time_t **t) |
char * | crm_element_value_copy (const xmlNode *data, const char *name) |
Retrieve a copy of the value of an XML attribute. More... | |
void | pcmk__xe_set_bool_attr (xmlNodePtr node, const char *name, bool value) |
int | pcmk__xe_get_bool_attr (const xmlNode *node, const char *name, bool *value) |
bool | pcmk__xe_attr_is_true (const xmlNode *node, const char *name) |
xmlNode * | expand_idref (xmlNode *input, xmlNode *top) |
void | crm_xml_set_id (xmlNode *xml, const char *format,...) |
xmlNode * | sorted_xml (xmlNode *input, xmlNode *parent, gboolean recursive) |
#define LLSTRSIZE 21 |
Definition at line 1103 of file xml_element.c.
const char* crm_element_value | ( | const xmlNode * | data, |
const char * | name | ||
) |
Retrieve the value of an XML attribute.
[in] | data | XML node to check |
[in] | name | Attribute name to check |
NULL
) Definition at line 1168 of file xml_element.c.
char* crm_element_value_copy | ( | const xmlNode * | data, |
const char * | name | ||
) |
Retrieve a copy of the value of an XML attribute.
This is like crm_element_value()
but allocating new memory for the result.
[in] | data | XML node to check |
[in] | name | Attribute name to check |
NULL
) Definition at line 1466 of file xml_element.c.
int crm_element_value_epoch | ( | const xmlNode * | xml, |
const char * | name, | ||
time_t * | dest | ||
) |
Retrieve the seconds-since-epoch value of an XML attribute.
This is like crm_element_value()
but returning the value as a time_t.
[in] | xml | XML node to check |
[in] | name | Attribute name to check |
[out] | dest | Where to store attribute value |
pcmk_ok
on success, -1 otherwise Definition at line 1359 of file xml_element.c.
int crm_element_value_int | ( | const xmlNode * | data, |
const char * | name, | ||
int * | dest | ||
) |
Retrieve the integer value of an XML attribute.
This is like crm_element_value()
but getting the value as an integer.
[in] | data | XML node to check |
[in] | name | Attribute name to check |
[out] | dest | Where to store element value |
Definition at line 1201 of file xml_element.c.
int crm_element_value_ll | ( | const xmlNode * | data, |
const char * | name, | ||
long long * | dest | ||
) |
Retrieve the long long integer value of an XML attribute.
This is like crm_element_value()
but getting the value as a long long int.
[in] | data | XML node to check |
[in] | name | Attribute name to check |
[out] | dest | Where to store element value |
Definition at line 1291 of file xml_element.c.
int crm_element_value_ms | ( | const xmlNode * | data, |
const char * | name, | ||
guint * | dest | ||
) |
Retrieve the millisecond value of an XML attribute.
This is like crm_element_value()
but returning the value as a guint.
[in] | data | XML node to check |
[in] | name | Attribute name to check |
[out] | dest | Where to store attribute value |
pcmk_ok
on success, -1 otherwise Definition at line 1322 of file xml_element.c.
int crm_element_value_timeval | ( | const xmlNode * | xml, |
const char * | name_sec, | ||
const char * | name_usec, | ||
struct timeval * | dest | ||
) |
Retrieve the value of XML second/microsecond attributes as time.
This is like crm_element_value()
but returning value as a struct timeval.
[in] | xml | XML to parse |
[in] | name_sec | Name of XML attribute for seconds |
[in] | name_usec | Name of XML attribute for microseconds |
[out] | dest | Where to store result |
pcmk_ok
on success, -errno on error Definition at line 1388 of file xml_element.c.
const char* crm_xml_add | ( | xmlNode * | node, |
const char * | name, | ||
const char * | value | ||
) |
Create an XML attribute with specified name and value.
[in,out] | node | XML node to modify |
[in] | name | Attribute name to set |
[in] | value | Attribute value to set |
NULL
otherwise NULL
or empty. Definition at line 1015 of file xml_element.c.
const char* crm_xml_add_int | ( | xmlNode * | node, |
const char * | name, | ||
int | value | ||
) |
Create an XML attribute with specified name and integer value.
This is like crm_xml_add()
but taking an integer value.
[in,out] | node | XML node to modify |
[in] | name | Attribute name to set |
[in] | value | Attribute value to set |
NULL
otherwise NULL
or empty. Definition at line 1070 of file xml_element.c.
const char* crm_xml_add_ll | ( | xmlNode * | xml, |
const char * | name, | ||
long long | value | ||
) |
Create an XML attribute with specified name and long long int value.
This is like crm_xml_add()
but taking a long long int value. It is a useful equivalent for defined types like time_t, etc.
[in,out] | xml | XML node to modify |
[in] | name | Attribute name to set |
[in] | value | Attribute value to set |
NULL
otherwise NULL
or empty. This does not support greater than 64-bit values. Definition at line 1120 of file xml_element.c.
const char* crm_xml_add_ms | ( | xmlNode * | node, |
const char * | name, | ||
guint | ms | ||
) |
Create an XML attribute with specified name and unsigned value.
This is like crm_xml_add()
but taking a guint value.
[in,out] | node | XML node to modify |
[in] | name | Attribute name to set |
[in] | ms | Attribute value to set |
NULL
otherwise NULL
or empty. Definition at line 1092 of file xml_element.c.
const char* crm_xml_add_timeval | ( | xmlNode * | xml, |
const char * | name_sec, | ||
const char * | name_usec, | ||
const struct timeval * | value | ||
) |
Create XML attributes for seconds and microseconds.
This is like crm_xml_add()
but taking a struct timeval.
[in,out] | xml | XML node to modify |
[in] | name_sec | Name of XML attribute for seconds |
[in] | name_usec | Name of XML attribute for microseconds (or NULL) |
[in] | value | Time value to set |
NULL
otherwise NULL
. Definition at line 1144 of file xml_element.c.
void crm_xml_set_id | ( | xmlNode * | xml, |
const char * | format, | ||
... | |||
) |
Definition at line 1563 of file xml_element.c.
xmlNode* expand_idref | ( | xmlNode * | input, |
xmlNode * | top | ||
) |
Definition at line 1557 of file xml_element.c.
const char* pcmk__xe_add_last_written | ( | xmlNode * | xe | ) |
Definition at line 526 of file xml_element.c.
bool pcmk__xe_attr_is_true | ( | const xmlNode * | node, |
const char * | name | ||
) |
Definition at line 1538 of file xml_element.c.
int pcmk__xe_copy_attrs | ( | xmlNode * | target, |
const xmlNode * | src, | ||
uint32_t | flags | ||
) |
Definition at line 252 of file xml_element.c.
xmlNode* pcmk__xe_create | ( | xmlNode * | parent, |
const char * | name | ||
) |
Definition at line 407 of file xml_element.c.
int pcmk__xe_delete_match | ( | xmlNode * | xml, |
xmlNode * | search | ||
) |
Definition at line 717 of file xml_element.c.
xmlNode* pcmk__xe_first_child | ( | const xmlNode * | parent, |
const char * | node_name, | ||
const char * | attr_n, | ||
const char * | attr_v | ||
) |
Definition at line 42 of file xml_element.c.
int pcmk__xe_foreach_child | ( | xmlNode * | xml, |
const char * | child_element_name, | ||
int(*)(xmlNode *xml, void *userdata) | handler, | ||
void * | userdata | ||
) |
Definition at line 979 of file xml_element.c.
int pcmk__xe_get_bool_attr | ( | const xmlNode * | node, |
const char * | name, | ||
bool * | value | ||
) |
Definition at line 1501 of file xml_element.c.
int pcmk__xe_get_datetime | ( | const xmlNode * | xml, |
const char * | attr, | ||
crm_time_t ** | t | ||
) |
Definition at line 1436 of file xml_element.c.
int pcmk__xe_get_flags | ( | const xmlNode * | xml, |
const char * | name, | ||
uint32_t * | dest, | ||
uint32_t | default_value | ||
) |
Definition at line 1243 of file xml_element.c.
int pcmk__xe_get_score | ( | const xmlNode * | xml, |
const char * | name, | ||
int * | score, | ||
int | default_score | ||
) |
Definition at line 132 of file xml_element.c.
xmlNode* pcmk__xe_next | ( | const xmlNode * | xml, |
const char * | element_name | ||
) |
Definition at line 106 of file xml_element.c.
void pcmk__xe_remove_attr | ( | xmlNode * | element, |
const char * | name | ||
) |
Definition at line 339 of file xml_element.c.
bool pcmk__xe_remove_attr_cb | ( | xmlNode * | xml, |
void * | user_data | ||
) |
Definition at line 361 of file xml_element.c.
void pcmk__xe_remove_matching_attrs | ( | xmlNode * | element, |
bool(*)(xmlAttrPtr, void *) | match, | ||
void * | user_data | ||
) |
Definition at line 379 of file xml_element.c.
int pcmk__xe_replace_match | ( | xmlNode * | xml, |
xmlNode * | replace | ||
) |
Definition at line 832 of file xml_element.c.
void pcmk__xe_set_bool_attr | ( | xmlNodePtr | node, |
const char * | name, | ||
bool | value | ||
) |
Definition at line 1480 of file xml_element.c.
void pcmk__xe_set_content | ( | xmlNode * | node, |
const char * | format, | ||
... | |||
) |
Definition at line 443 of file xml_element.c.
void pcmk__xe_set_id | ( | xmlNode * | node, |
const char * | format, | ||
... | |||
) |
Definition at line 495 of file xml_element.c.
void pcmk__xe_set_props | ( | xmlNodePtr | node, |
... | |||
) |
Definition at line 970 of file xml_element.c.
void pcmk__xe_set_propv | ( | xmlNodePtr | node, |
va_list | pairs | ||
) |
Definition at line 952 of file xml_element.c.
int pcmk__xe_set_score | ( | xmlNode * | target, |
const char * | name, | ||
const char * | value | ||
) |
Definition at line 174 of file xml_element.c.
void pcmk__xe_sort_attrs | ( | xmlNode * | xml | ) |
Definition at line 312 of file xml_element.c.
int pcmk__xe_update_match | ( | xmlNode * | xml, |
xmlNode * | update, | ||
uint32_t | flags | ||
) |
Definition at line 926 of file xml_element.c.
xmlNode* sorted_xml | ( | xmlNode * | input, |
xmlNode * | parent, | ||
gboolean | recursive | ||
) |
Definition at line 1581 of file xml_element.c.