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

Function fix_cib_diff

lib/cib/cib_utils.c:356–425  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

354}
355
356void
357fix_cib_diff(xmlNode * last, xmlNode * next, xmlNode * local_diff, gboolean changed)
358{
359 xmlNode *cib = NULL;
360 xmlNode *diff_child = NULL;
361
362 const char *tag = NULL;
363 const char *value = NULL;
364
365 if(local_diff == NULL) {
366 crm_trace("Nothing to do");
367 return;
368 }
369
370 tag = "diff-removed";
371 diff_child = find_xml_node(local_diff, tag, FALSE);
372 if (diff_child == NULL) {
373 diff_child = create_xml_node(local_diff, tag);
374 }
375
376 tag = XML_TAG_CIB;
377 cib = find_xml_node(diff_child, tag, FALSE);
378 if (cib == NULL) {
379 cib = create_xml_node(diff_child, tag);
380 }
381
382 tag = XML_ATTR_GENERATION_ADMIN;
383 value = crm_element_value(last, tag);
384 crm_xml_add(diff_child, tag, value);
385 if (changed) {
386 crm_xml_add(cib, tag, value);
387 }
388
389 tag = XML_ATTR_GENERATION;
390 value = crm_element_value(last, tag);
391 crm_xml_add(diff_child, tag, value);
392 if (changed) {
393 crm_xml_add(cib, tag, value);
394 }
395
396 tag = XML_ATTR_NUMUPDATES;
397 value = crm_element_value(last, tag);
398 crm_xml_add(cib, tag, value);
399 crm_xml_add(diff_child, tag, value);
400
401 tag = "diff-added";
402 diff_child = find_xml_node(local_diff, tag, FALSE);
403 if (diff_child == NULL) {
404 diff_child = create_xml_node(local_diff, tag);
405 }
406
407 tag = XML_TAG_CIB;
408 cib = find_xml_node(diff_child, tag, FALSE);
409 if (cib == NULL) {
410 cib = create_xml_node(diff_child, tag);
411 }
412
413 if (next) {

Callers 2

cib_perform_opFunction · 0.85
diff_cib_objectFunction · 0.85

Calls 4

find_xml_nodeFunction · 0.85
create_xml_nodeFunction · 0.85
crm_element_valueFunction · 0.85
crm_xml_addFunction · 0.85

Tested by

no test coverage detected