CRM_DEBUG2("CIB Erase creation %s", xml_root_node == NULL ? "failed." : "passed.");
CRM_DEBUG("CIB Erase op in progress");  sys_to = CRM_SYSTEM_DCIB;
do_work(ll_cluster_t * hb_cluster){	/* construct the request */	xmlNodePtr xml_root_node = NULL, cib_req = NULL;	const char *dest_node = NULL;			if (DO_DAEMON == TRUE && DO_QUERY == TRUE) {		cl_log(LOG_DEBUG, "Querying the CIB");		char *obj_type_parent = pluralSection();		CRM_DEBUG2("Querying the CIB for section: %s",			   obj_type_parent);		xml_root_node = create_xml_node(NULL, XML_REQ_TAG_DC);		set_xml_property_copy(xml_root_node, XML_DC_ATTR_OP, "cib_op");		cib_req = create_xml_node(xml_root_node, XML_REQ_TAG_CIB);		set_xml_property_copy(cib_req, XML_CIB_ATTR_OP, "query");		set_xml_property_copy(cib_req, XML_ATTR_VERBOSE, verbose);		set_xml_property_copy(cib_req,				      XML_CIB_ATTR_SECTION,				      obj_type_parent);		dest_node = status;		CRM_DEBUG2("CIB query creation %s",			   xml_root_node == NULL ? "failed." : "passed.");	} else if (DO_DAEMON == TRUE && DO_ERASE == TRUE) {		xml_root_node = create_xml_node(NULL, XML_REQ_TAG_DC);		set_xml_property_copy(xml_root_node, XML_DC_ATTR_OP, "cib_op");		cib_req = create_xml_node(xml_root_node, XML_REQ_TAG_CIB);		set_xml_property_copy(cib_req, XML_CIB_ATTR_OP, "erase");		set_xml_property_copy(cib_req, XML_ATTR_VERBOSE, verbose);		dest_node = status;		CRM_DEBUG2("CIB Erase creation %s",			   xml_root_node == NULL ? "failed." : "passed.");	} else if (DO_DAEMON == FALSE && DO_CREATE == TRUE) {		xml_root_node = handleCreate();	} else if (DO_DAEMON == FALSE && DO_DELETE == TRUE) {		xml_root_node = handleDelete();	} else if (DO_DAEMON == FALSE && DO_MODIFY == TRUE) {		xml_root_node = handleModify();	} else if (DO_DAEMON == TRUE && DO_HEALTH == TRUE) {		cl_log(LOG_DEBUG, "Querying the system");/*  <!ATTLIST dc_request  dc_operation	(noop|ping|deep_ping|dc_query|cib_op)	'noop'  crm_msg_reference	#CDATA  timeout       #CDATA          '0'>*/		if (status != NULL) {			const char *ping_type = "ping";			if (BE_VERBOSE) {				ping_type = "ping_deep";				if (status != NULL)					expected_responses = 2;	// 5; // CRM/DC, LRMD, CIB, PENGINE, TENGINE				else					expected_responses = -1;// wait until timeout instead			}			if (status != NULL) {				xml_root_node =					create_xml_node(NULL,							XML_REQ_TAG_CRM);				set_xml_property_copy(xml_root_node,						      XML_CRM_ATTR_OP,						      ping_type);				set_xml_property_copy(xml_root_node,						      XML_MSG_ATTR_SYSTO,						      CRM_SYSTEM_CRMD);			} else {				xml_root_node =					create_xml_node(NULL,							XML_REQ_TAG_DC);				set_xml_property_copy(xml_root_node,						      XML_DC_ATTR_OP,						      ping_type);				set_xml_property_copy(xml_root_node,						      XML_MSG_ATTR_SYSTO,						      CRM_SYSTEM_DC);			}			set_xml_property_copy(xml_root_node,					      XML_ATTR_TIMEOUT, "0");			dest_node = status;		} else			cl_log(LOG_INFO, "Cluster-wide health not available yet");	}	CRM_DEBUG2("Creation of request %s",		   xml_root_node == NULL ? "failed. Aborting.": "passed.  Sending.");/* send it */	if (xml_root_node != NULL && crmd_channel != NULL) {//      CRM_DEBUG2("sending message: %s", xml_root_node->name);		const char *sys_to = CRM_SYSTEM_DC;		if (dest_node != NULL) sys_to = CRM_SYSTEM_CRMD;		send_ipc_request(crmd_channel,				 xml_root_node,				 dest_node,				 sys_to,				 crm_system_name,				 adminuid,				 this_msg_reference);	} else if (crmd_channel == NULL) {		cl_log(LOG_ERR,		       "The IPC connection is not valid, cannot send anything");		return -1;	} else {		cl_log(LOG_ERR, "No message to send");		return -1;	}	return 1;}