set_xml_property_copy(msg_options, XML_ATTR_OP, "erase");
set_xml_property_copy(msg_options, XML_ATTR_OP, CRM_OPERATION_ERASE);
do_work(ll_cluster_t * hb_cluster){	/* construct the request */	xmlNodePtr msg_data = NULL;	const char *dest_node = NULL;	gboolean all_is_good = TRUE;		msg_options = create_xml_node(NULL, XML_TAG_OPTIONS);	set_xml_property_copy(msg_options, XML_ATTR_VERBOSE, verbose);	set_xml_property_copy(msg_options, XML_ATTR_TIMEOUT, "0");		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);		set_xml_property_copy(msg_options, XML_ATTR_OP, "query");		set_xml_property_copy(msg_options, XML_ATTR_FILTER_ID,				      obj_type_parent);		dest_node = status;		CRM_DEBUG2("CIB query creation %s",			   msg_data == NULL ? "failed." : "passed.");		sys_to = CRM_SYSTEM_DCIB;			} else if (DO_DAEMON == TRUE && DO_ERASE == TRUE) {		set_xml_property_copy(msg_options, XML_ATTR_OP, "erase");		dest_node = status;		CRM_DEBUG("CIB Erase op in progress");		sys_to = CRM_SYSTEM_DCIB;	} else if (DO_DAEMON == FALSE && DO_CREATE == TRUE) {		msg_data = handleCreate();		sys_to = CRM_SYSTEM_DCIB;		if(msg_data == NULL) all_is_good = FALSE;			} else if (DO_DAEMON == FALSE && DO_DELETE == TRUE) {		msg_data = handleDelete();		sys_to = CRM_SYSTEM_DCIB;		if(msg_data == NULL) all_is_good = FALSE;			} else if (DO_DAEMON == FALSE && DO_MODIFY == TRUE) {		msg_data = handleModify();		sys_to = CRM_SYSTEM_DCIB;		if(msg_data == NULL) all_is_good = FALSE;			} else if (DO_DAEMON == TRUE && DO_HEALTH == TRUE) {		CRM_DEBUG("Querying the system");		sys_to = CRM_SYSTEM_DC;/*  <!ATTLIST dc_request  dc_operation	(noop|ping|deep_ping|dc_query|cib_op)	'noop'  crm_msg_reference	#CDATA  timeout       #CDATA          '0'>*/		if (status != NULL) {			sys_to = CRM_SYSTEM_CRMD;			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			}			set_xml_property_copy(msg_options,					      XML_ATTR_OP,					      ping_type);						set_xml_property_copy(msg_options,					      XML_ATTR_TIMEOUT,					      "0");			dest_node = status;		} else {			cl_log(LOG_INFO, "Cluster-wide health not available yet");			all_is_good = FALSE;		}	} else {		cl_log(LOG_ERR, "Unknown options");		all_is_good = FALSE;	}		CRM_DEBUG2("Creation of request %s",		   all_is_good ? "passed.  Sending." : "failed. Aborting.");/* send it */	if (all_is_good && crmd_channel != NULL) {		if(sys_to == NULL) {			if (dest_node != NULL)				sys_to = CRM_SYSTEM_CRMD;			else				sys_to = CRM_SYSTEM_DC;						}				send_ipc_request(crmd_channel,				 msg_options,				 msg_data,				 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;}