do_work(const char *xml_text, int call_options, xmlNodePtr *output)
do_work(const char *admin_input_xml, int call_options, crm_data_t **output)
do_work(const char *xml_text, int call_options, xmlNodePtr *output) {	/* construct the request */	xmlNodePtr msg_data = NULL;	char *obj_type_parent = NULL;	obj_type_parent = cib_pluralSection(obj_type);	if(strcmp(CRM_OP_CIB_QUERY, cib_action) == 0) {		crm_verbose("Querying the CIB for section: %s",			    obj_type_parent);		return the_cib->cmds->query_from(			the_cib, host, obj_type_parent, output, call_options);			} else if (strcmp(CRM_OP_CIB_ERASE, cib_action) == 0) {		crm_trace("CIB Erase op in progress");		return the_cib->cmds->erase(the_cib, output, call_options);			} else if (strcmp(CRM_OP_CIB_CREATE, cib_action) == 0) {		enum cib_errors rc = cib_ok;		crm_trace("Performing %s op...", cib_action);		msg_data = handleCibMod(xml_text);		rc = the_cib->cmds->create(			the_cib, obj_type_parent, msg_data, output, call_options);		free_xml(msg_data);		return rc;	} else if (strcmp(CRM_OP_CIB_UPDATE, cib_action) == 0) {		enum cib_errors rc = cib_ok;		crm_trace("Performing %s op...", cib_action);		msg_data = handleCibMod(xml_text);		rc = the_cib->cmds->modify(			the_cib, obj_type_parent, msg_data, output, call_options);		free_xml(msg_data);		return rc;	} else if (strcmp(CRM_OP_CIB_DELETE, cib_action) == 0) {		enum cib_errors rc = cib_ok;		crm_trace("Performing %s op...", cib_action);		msg_data = handleCibMod(xml_text);		rc = the_cib->cmds->delete(			the_cib, obj_type_parent, msg_data, output, call_options);		free_xml(msg_data);		return rc;	} else if (strcmp(CRM_OP_CIB_SYNC, cib_action) == 0) {		crm_trace("Performing %s op...", cib_action);		return the_cib->cmds->sync_from(			the_cib, host, obj_type_parent, call_options);	} else if (strcmp(CRM_OP_CIB_SLAVE, cib_action) == 0		   && (call_options ^ cib_scope_local) ) {		crm_trace("Performing %s op on all nodes...", cib_action);		return the_cib->cmds->set_slave_all(the_cib, call_options);	} else if (strcmp(CRM_OP_CIB_MASTER, cib_action) == 0) {		crm_trace("Performing %s op on all nodes...", cib_action);		return the_cib->cmds->set_master(the_cib, call_options);	} else if(cib_action != NULL) {		crm_trace("Passing \"%s\" to variant_op...", cib_action);		return the_cib->cmds->variant_op(			the_cib, cib_action, host, obj_type_parent,			NULL, output, call_options);			} else {		crm_err("You must specify an operation");	}	return cib_operation;}