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

Function action2xml

pengine/graph.c:537–709  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

535}
536
537xmlNode *
538action2xml(action_t * action, gboolean as_input)
539{
540 gboolean needs_node_info = TRUE;
541 xmlNode *action_xml = NULL;
542 xmlNode *args_xml = NULL;
543 char *action_id_s = NULL;
544
545 if (action == NULL) {
546 return NULL;
547 }
548
549 if (safe_str_eq(action->task, CRM_OP_FENCE)) {
550 action_xml = create_xml_node(NULL, XML_GRAPH_TAG_CRM_EVENT);
551/* needs_node_info = FALSE; */
552
553 } else if (safe_str_eq(action->task, CRM_OP_SHUTDOWN)) {
554 action_xml = create_xml_node(NULL, XML_GRAPH_TAG_CRM_EVENT);
555
556 } else if (safe_str_eq(action->task, CRM_OP_CLEAR_FAILCOUNT)) {
557 action_xml = create_xml_node(NULL, XML_GRAPH_TAG_CRM_EVENT);
558
559 } else if (safe_str_eq(action->task, CRM_OP_LRM_REFRESH)) {
560 action_xml = create_xml_node(NULL, XML_GRAPH_TAG_CRM_EVENT);
561
562/* } else if(safe_str_eq(action->task, RSC_PROBED)) { */
563/* action_xml = create_xml_node(NULL, XML_GRAPH_TAG_CRM_EVENT); */
564
565 } else if (is_set(action->flags, pe_action_pseudo)) {
566 action_xml = create_xml_node(NULL, XML_GRAPH_TAG_PSEUDO_EVENT);
567 needs_node_info = FALSE;
568
569 } else {
570 action_xml = create_xml_node(NULL, XML_GRAPH_TAG_RSC_OP);
571 }
572
573 action_id_s = crm_itoa(action->id);
574 crm_xml_add(action_xml, XML_ATTR_ID, action_id_s);
575 free(action_id_s);
576
577 crm_xml_add(action_xml, XML_LRM_ATTR_TASK, action->task);
578 if (action->rsc != NULL && action->rsc->clone_name != NULL) {
579 char *clone_key = NULL;
580 const char *interval_s = g_hash_table_lookup(action->meta, XML_LRM_ATTR_INTERVAL);
581 int interval = crm_parse_int(interval_s, "0");
582
583 if (safe_str_eq(action->task, RSC_NOTIFY)) {
584 const char *n_type = g_hash_table_lookup(action->meta, "notify_type");
585 const char *n_task = g_hash_table_lookup(action->meta, "notify_operation");
586
587 CRM_CHECK(n_type != NULL, crm_err("No notify type value found for %s", action->uuid));
588 CRM_CHECK(n_task != NULL,
589 crm_err("No notify operation value found for %s", action->uuid));
590 clone_key = generate_notify_key(action->rsc->clone_name, n_type, n_task);
591
592 } else {
593 clone_key = generate_op_key(action->rsc->clone_name, action->task, interval);
594 }

Callers 1

Calls 12

create_xml_nodeFunction · 0.85
is_setFunction · 0.85
crm_itoaFunction · 0.85
crm_xml_addFunction · 0.85
crm_parse_intFunction · 0.85
generate_notify_keyFunction · 0.85
generate_op_keyFunction · 0.85
add_hash_paramFunction · 0.85
is_not_setFunction · 0.85
safe_str_neqFunction · 0.85
sorted_xmlFunction · 0.85
free_xmlFunction · 0.85

Tested by

no test coverage detected