if (0 > prepare_cmd_parameters(rsc_type, op_type, params, params_argv)) {
if (0 > prepare_cmd_parameters(rsc_type, optype_tmp, params, params_argv)) {
execra( const char * rsc_id, const char * rsc_type, const char * provider,	const char * op_type, const int timeout, GHashTable * params){	RA_ARGV params_argv;	char ra_pathname[RA_MAX_NAME_LENGTH];	uniform_ret_execra_t exit_value;	GString * debug_info;	int index_tmp = 0;	/* Prepare the call parameter */	if (0 > prepare_cmd_parameters(rsc_type, op_type, params, params_argv)) {		cl_log(LOG_ERR, "HB RA: Error of preparing parameters");		return -1;	}	get_ra_pathname(RA_PATH, rsc_type, NULL, ra_pathname);	debug_info = g_string_new("");	do {		g_string_append(debug_info, params_argv[index_tmp]);		g_string_append(debug_info, " ");	} while (params_argv[++index_tmp] != NULL);	debug_info->str[debug_info->len-1] = '\0';	cl_log(LOG_DEBUG, "Will execute a heartbeat RA: %s", debug_info->str);	g_string_free(debug_info, TRUE);		execv(ra_pathname, params_argv);	cl_log(LOG_ERR, "execv error when to execute a heartbeat RA %s.", rsc_type);	switch (errno) {		case ENOENT:   /* No such file or directory */		case EISDIR:   /* Is a directory */			exit_value = EXECRA_NO_RA;			cl_log(LOG_ERR, "Cause: No such file or directory.");			break;		default:			exit_value = EXECRA_EXEC_UNKNOWN_ERROR;			cl_log(LOG_ERR, "Cause: execv unknow error.");        }        exit(exit_value);}