MCPcopy Create free account
hub / github.com/ClusterLabs/pacemaker / xml2list

Function xml2list

lib/common/xml.c:1901–1944  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1899
1900
1901GHashTable *
1902xml2list(xmlNode *parent)
1903{
1904 xmlNode *child = NULL;
1905 xmlAttrPtr pIter = NULL;
1906 xmlNode *nvpair_list = NULL;
1907 GHashTable *nvpair_hash = g_hash_table_new_full(
1908 crm_str_hash, g_str_equal,
1909 g_hash_destroy_str, g_hash_destroy_str);
1910
1911 CRM_CHECK(parent != NULL, return nvpair_hash);
1912
1913 nvpair_list = find_xml_node(parent, XML_TAG_ATTRS, FALSE);
1914 if(nvpair_list == NULL) {
1915 crm_trace("No attributes in %s",
1916 crm_element_name(parent));
1917 crm_log_xml_trace(
1918 parent,"No attributes for resource op");
1919 }
1920
1921 crm_log_xml_trace(nvpair_list, "Unpacking");
1922
1923 for(pIter = crm_first_attr(nvpair_list); pIter != NULL; pIter = pIter->next) {
1924 const char *p_name = (const char *)pIter->name;
1925 const char *p_value = crm_attr_value(pIter);
1926
1927 crm_trace("Added %s=%s", p_name, p_value);
1928
1929 g_hash_table_insert(nvpair_hash, strdup(p_name), strdup(p_value));
1930 }
1931
1932 for(child = __xml_first_child(nvpair_list); child != NULL; child = __xml_next(child)) {
1933 if(strcmp((const char *)child->name, XML_TAG_PARAM) == 0) {
1934 const char *key = crm_element_value(child, XML_NVPAIR_ATTR_NAME);
1935 const char *value = crm_element_value(child, XML_NVPAIR_ATTR_VALUE);
1936 crm_trace("Added %s=%s", key, value);
1937 if(key != NULL && value != NULL) {
1938 g_hash_table_insert(nvpair_hash, strdup(key), strdup(value));
1939 }
1940 }
1941 }
1942
1943 return nvpair_hash;
1944}
1945
1946
1947typedef struct name_value_s

Callers 5

create_lrmd_cmdFunction · 0.85
build_device_from_xmlFunction · 0.85
lrmd_dispatch_internalFunction · 0.85
unpack_actionFunction · 0.85
construct_opFunction · 0.85

Calls 6

find_xml_nodeFunction · 0.85
crm_first_attrFunction · 0.85
crm_attr_valueFunction · 0.85
__xml_first_childFunction · 0.85
__xml_nextFunction · 0.85
crm_element_valueFunction · 0.85

Tested by

no test coverage detected