List:Commits« Previous MessageNext Message »
From:Jonas Oreland Date:November 26 2007 9:04pm
Subject:Re: bk commit into 5.1 tree (jmiller:1.2582)
View as plain text  
hi,

the additional debugging printouts are good,
but you changed the indentation from "mysql-coding-standard" to something else

i prefer it the way it was...

/Jonas

Jonathan Miller wrote:
> Below is the list of changes that have just been committed into a local
> 5.1 repository of root. When root does a push these changes will
> be propagated to the main repository and, within 24 hours after the
> push, to the public repository.
> For information on how to access the public repository
> see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
> 
> ChangeSet@stripped, 2007-11-26 13:23:13-06:00, jmiller@stripped +2 -0
>   main.cpp, setup.cpp:
>     Fixed code formatting and added additional info, debug and error messages
> 
>   storage/ndb/test/run-test/main.cpp@stripped, 2007-11-26 13:22:54-06:00,
> jmiller@stripped +189 -214
>     Fixed code formatting and added additional info, debug and error messages
> 
>   storage/ndb/test/run-test/setup.cpp@stripped, 2007-11-26 13:23:03-06:00,
> jmiller@stripped +290 -415
>     Fixed code formatting and added additional info, debug and error messages
> 
> diff -Nrup a/storage/ndb/test/run-test/main.cpp b/storage/ndb/test/run-test/main.cpp
> --- a/storage/ndb/test/run-test/main.cpp	2007-08-01 02:23:55 -05:00
> +++ b/storage/ndb/test/run-test/main.cpp	2007-11-26 13:22:54 -06:00
> @@ -140,8 +140,7 @@ const int p_servers = atrt_process::AP_M
>  const int p_clients = atrt_process::AP_CLIENT | atrt_process::AP_NDB_API;
>  
>  int
> -main(int argc, char ** argv)
> -{
> +main(int argc, char ** argv){
>    ndb_init();
>    
>    bool restart = true;
> @@ -159,9 +158,11 @@ main(int argc, char ** argv)
>    g_logger.info("Starting...");
>    g_config.m_generated = false;
>    g_config.m_replication = g_replicate;
> +  g_logger.info("Running Setup Configuration");
>    if (!setup_config(g_config))
>      goto end;
>  
> +  g_logger.info("Running configure");
>    if (!configure(g_config, g_do_setup))
>      goto end;
>    
> @@ -169,37 +170,35 @@ main(int argc, char ** argv)
>    if (!setup_directories(g_config, g_do_setup))
>      goto end;
>  
> -  if (g_do_setup)
> -  {
> +  if (g_do_setup){
>      g_logger.info("Setting up files");
>      if (!setup_files(g_config, g_do_setup, g_do_sshx))
>        goto end;
>    }
>    
> -  if (g_do_deploy)
> -  {
> +  if (g_do_deploy){
> +  	g_logger.info("Running deploy");
>      if (!deploy(g_config))
>        goto end;
>    }
>  
> -  if (g_do_quit)
> -  {
> +  if (g_do_quit){
>      return_code = 0;
>      goto end;
>    }
>  
> -  if(!setup_hosts(g_config))
> +  if(!setup_hosts(g_config)){
> +   	g_logger.info("Setting up hosts"); 
>      goto end;
> +  }
>  
> -  if (g_do_sshx)
> -  {
> +  if (g_do_sshx){
>      g_logger.info("Starting xterm-ssh");
>      if (!sshx(g_config, g_do_sshx))
>        goto end;
>  
>      g_logger.info("Done...sleeping");
> -    while(true)
> -    {
> +    while(true){
>        NdbSleep_SecSleep(1);
>      }
>      return_code = 0;
> @@ -210,15 +209,13 @@ main(int argc, char ** argv)
>    if(!connect_hosts(g_config))
>      goto end;
>  
> -  if (g_do_start && !g_test_case_filename)
> -  {
> +  if (g_do_start && !g_test_case_filename){
>      g_logger.info("Starting server processes: %x", g_do_start);    
>      if (!start(g_config, g_do_start))
>        goto end;
>      
>      g_logger.info("Done...sleeping");
> -    while(true)
> -    {
> +    while(true){
>        NdbSleep_SecSleep(1);
>      }
>      return_code = 0;
> @@ -237,35 +234,42 @@ main(int argc, char ** argv)
>      if(restart){
>        g_logger.info("(Re)starting server processes processes");
>        if(!stop_processes(g_config, ~0))
> -	goto end;
> +	    goto end;
>  
> +      g_logger.info("Setting up Directories");
>        if (!setup_directories(g_config, 2))
> -	goto end;
> -      
> +	    goto end;
> +
> +      g_logger.info("Setting up Files");      
>        if (!setup_files(g_config, 2, 1))
> -	goto end;
> +        goto end;
>        
> +      g_logger.info("Setting up Hosts");
>        if(!setup_hosts(g_config))
>          goto end;
> -      
> +
> +      g_logger.info("Starting Servers");      
>        if (!start(g_config, p_ndb | p_servers))
> -	goto end;
> +	    goto end;
>        g_logger.info("All servers start completed");
>      }
>      
>      // const int start_line = lineno;
>      atrt_testcase test_case;
> +    g_logger.info("Reading Test Case");
>      if(!read_test_case(g_test_case_file, test_case, lineno))
>        goto end;
>      
> -    g_logger.info("#%d - %s %s", 
> -		  test_no,
> -		  test_case.m_command.c_str(), test_case.m_args.c_str());
> +    g_logger.info("#%d - %s %s",test_no,
> +		           test_case.m_command.c_str(), 
> +		           test_case.m_args.c_str());
>      
>      // Assign processes to programs
> +    g_logger.info("Setting up Test Case");
>      if(!setup_test_case(g_config, test_case))
>        goto end;
>      
> +    g_logger.info("Starting client process(es)");
>      if(!start_processes(g_config, p_clients))
>        goto end;
>  
> @@ -274,29 +278,32 @@ main(int argc, char ** argv)
>      const time_t start = time(0);
>      time_t now = start;
>      do {
> -      if(!update_status(g_config, atrt_process::AP_ALL))
> -	goto end;
> -
> +      if(!update_status(g_config, atrt_process::AP_ALL)){
> +        g_logger.error("Update status failed");
> +	    goto end;
> +      }
>        int count = 0;
> -
>        if((count = is_running(g_config, p_ndb)) != 2){
> -	result = ERR_NDB_FAILED;
> -	break;
> +        result = ERR_NDB_FAILED;
> +        g_logger.debug("setting result = ERR_NDB_FAILED");
> +	    break;
>        }
>  
>        if((count = is_running(g_config, p_servers)) != 2){
> -	result = ERR_SERVERS_FAILED;
> -	break;
> +	    result = ERR_SERVERS_FAILED;
> +	    g_logger.debug("setting result = ERR_SERVERS_FAILED");
> +	    break;
>        }
>  
>        if((count = is_running(g_config, p_clients)) == 0){
> -	break;
> +	     break;
>        }
>        
>        now = time(0);
>        if(now  > (start + test_case.m_max_time)){
> -	result = ERR_MAX_TIME_ELAPSED;
> -	break;
> +	    result = ERR_MAX_TIME_ELAPSED;
> +	    g_logger.debug("setting result = ERR_MAX_TIME_ELAPSED");
> +	    break;
>        }
>        NdbSleep_SecSleep(1);
>      } while(true);
> @@ -322,7 +329,7 @@ main(int argc, char ** argv)
>  
>      if(g_mode == 0 && result){
>        g_logger.info
> -	("Encountered failed test in interactive mode - terminating");
> +	   ("Encountered failed test in interactive mode - terminating");
>        break;
>      }
>  
> @@ -330,23 +337,21 @@ main(int argc, char ** argv)
>      resdir.assfmt("result.%d", test_no);
>      remove_dir(resdir.c_str(), true);
>      
> -    if(test_case.m_report || g_mode == 2 || (g_mode && result))
> -    {
> -      if(rename("result", resdir.c_str()) != 0)
> -      {
> -	g_logger.critical("Failed to rename %s as %s",
> -			  "result", resdir.c_str());
> -	goto end;
> +    if(test_case.m_report || g_mode == 2 || (g_mode && result)){
> +      if(rename("result", resdir.c_str()) != 0){
> +	    g_logger.critical("Failed to rename %s as %s",
> +		                  "result", resdir.c_str());
> +	    goto end;
>        }
>      }
> -    else
> -    {
> +    else{
>        remove_dir("result", true);
>      }
>      
>      if(result != 0){
>        restart = true;
> -    } else {
> +    } 
> +    else {
>        restart = false;
>      }
>      test_no++;
> @@ -369,24 +374,20 @@ main(int argc, char ** argv)
>  
>  static 
>  my_bool 
> -get_one_option(int arg, const struct my_option * opt, char * value)
> -{
> -  if (arg == 1024)
> -  {
> +get_one_option(int arg, const struct my_option * opt, char * value){
> +  if (arg == 1024){
>      if (g_replicate.length())
>        g_replicate.append(";");
> -    g_replicate.append(value);
> -    return 1;
> +      g_replicate.append(value);
> +      return 1;
>    }
>    return 0;
>  }
>  
>  bool
> -parse_args(int argc, char** argv)
> -{
> +parse_args(int argc, char** argv){
>    char buf[2048];
> -  if (getcwd(buf, sizeof(buf)) == 0)
> -  {
> +  if (getcwd(buf, sizeof(buf)) == 0){
>      g_logger.error("Unable to get current working directory");
>      return false;
>    }
> @@ -394,19 +395,16 @@ parse_args(int argc, char** argv)
>    
>    struct stat sbuf;
>    BaseString mycnf;
> -  if (argc > 1 && lstat(argv[argc-1], &sbuf) == 0)
> -  {
> +  if (argc > 1 && lstat(argv[argc-1], &sbuf) == 0){
>      mycnf.append(g_cwd);
>      mycnf.append(PATH_SEPARATOR);
>      mycnf.append(argv[argc-1]);
>    }
> -  else
> -  {
> +  else{
>      mycnf.append(g_cwd);
>      mycnf.append(PATH_SEPARATOR);
>      mycnf.append("my.cnf");
> -    if (lstat(mycnf.c_str(), &sbuf) != 0)
> -    {
> +    if (lstat(mycnf.c_str(), &sbuf) != 0){
>        g_logger.error("Unable to stat %s", mycnf.c_str());
>        return false;
>      }
> @@ -421,62 +419,56 @@ parse_args(int argc, char** argv)
>    save_extra_file = my_defaults_extra_file;
>    save_group_suffix = my_defaults_group_suffix;
>  
> -  if (save_extra_file)
> -  {
> -    g_logger.error("--defaults-extra-file(%s) is not supported...",
> -		   save_extra_file);
> +  if (save_extra_file){
> +    g_logger.error("--defaults-extra-file(%s) is not
> supported...",save_extra_file);
>      return false;
>    }
>    
> -  if (ret || handle_options(&argc, &argv, g_options, get_one_option))
> -  {
> +  if (ret || handle_options(&argc, &argv, g_options, get_one_option)){
>      g_logger.error("Failed to load defaults/handle_options");
>      return false;
>    }
>  
> -  if (argc >= 2)
> -  {
> +  if (argc >= 2){
>      const char * arg = argv[argc-2];
> -    while(* arg)
> -    {
> +    while(* arg){
>        switch(* arg){
> -      case 'c':
> -	g_do_setup = (g_do_setup == 0) ? 1 : g_do_setup;
> -	break;
> -      case 'C':
> -	g_do_setup = 2;
> -	break;
> -      case 'd':
> -	g_do_deploy = 1;
> -	break;
> -      case 'x':
> -	g_do_sshx = atrt_process::AP_CLIENT | atrt_process::AP_NDB_API;
> -	break;
> -      case 'X':
> -	g_do_sshx = atrt_process::AP_ALL;
> -	break;
> -      case 's':
> -	g_do_start = p_ndb;
> -	break;
> -      case 'S':
> -	g_do_start = p_ndb | p_servers;
> -	break;
> -      case 'f':
> -	g_fqpn = 1;
> -	break;
> -      case 'q':
> -	g_do_quit = 1;
> -	break;
> -      default:
> -	g_logger.error("Unknown switch '%c'", *arg);
> -	return false;
> +        case 'c':
> +	      g_do_setup = (g_do_setup == 0) ? 1 : g_do_setup;
> +	      break;
> +        case 'C':
> +	      g_do_setup = 2;
> +	      break;
> +        case 'd':
> +	      g_do_deploy = 1;
> +	      break;
> +        case 'x':
> +	      g_do_sshx = atrt_process::AP_CLIENT | atrt_process::AP_NDB_API;
> +	      break;
> +        case 'X':
> +	      g_do_sshx = atrt_process::AP_ALL;
> +	      break;
> +        case 's':
> +	      g_do_start = p_ndb;
> +	      break;
> +        case 'S':
> +	      g_do_start = p_ndb | p_servers;
> +	      break;
> +        case 'f':
> +	      g_fqpn = 1;
> +	      break;
> +        case 'q':
> +	      g_do_quit = 1;
> +	      break;
> +        default:
> +	      g_logger.error("Unknown switch '%c'", *arg);
> +	      return false;
>        }
>        arg++;
>      }
>    }
>  
> -  if(g_log_filename != 0)
> -  {
> +  if(g_log_filename != 0){
>      g_logger.removeConsoleHandler();
>      g_logger.addHandler(new FileLogHandler(g_log_filename));
>    }
> @@ -489,14 +481,12 @@ parse_args(int argc, char** argv)
>      g_logger.enable((Logger::LoggerLevel)tmp, Logger::LL_ALERT);
>    }
>    
> -  if(!g_basedir)
> -  {
> +  if(!g_basedir){
>      g_basedir = g_cwd;
>      g_logger.info("basedir not specified, using %s", g_basedir);
>    }
>  
> -  if (!g_prefix)
> -  {
> +  if (!g_prefix){
>      g_prefix = DEFAULT_PREFIX;
>    }
>    
> @@ -506,31 +496,25 @@ parse_args(int argc, char** argv)
>    {
>      BaseString tmp;
>      const char* env = getenv("PATH");
> -    if (env && strlen(env))
> -    {
> -      tmp.assfmt("PATH=%s:%s/mysql-test/ndb",
> -		 env, g_prefix);
> +    if (env && strlen(env)){
> +      tmp.assfmt("PATH=%s:%s/mysql-test/ndb",env, g_prefix);
>      }
> -    else
> -    {
> +    else{
>        tmp.assfmt("PATH=%s/mysql-test/ndb", g_prefix);
>      }
>      g_env_path = strdup(tmp.c_str());
>      putenv(g_env_path);
>    }
>    
> -  if (g_help)
> -  {
> +  if (g_help){
>      my_print_help(g_options);
>      my_print_variables(g_options);
>      return 0;
>    }
>  
> -  if(g_test_case_filename)
> -  {
> +  if(g_test_case_filename){
>      g_test_case_file = fopen(g_test_case_filename, "r");
> -    if(g_test_case_file == 0)
> -    {
> +    if(g_test_case_file == 0){
>        g_logger.critical("Unable to open file: %s", g_test_case_filename);
>        return false;
>      }
> @@ -543,27 +527,23 @@ parse_args(int argc, char** argv)
>      if (g_mode == 0)
>        g_mode = 1;
>  
> -    if (g_do_sshx)
> -    {
> +    if (g_do_sshx){
>        g_logger.critical("ssx specified...not possible with testfile");
>        return false;
>      }
>    }
>    
> -  if (g_do_setup == 0)
> -  {
> +  if (g_do_setup == 0){
>      BaseString tmp;
>      tmp.append(g_basedir);
>      tmp.append(PATH_SEPARATOR);
>      tmp.append("my.cnf");
> -    if (lstat(tmp.c_str(), &sbuf) != 0)
> -    {
> +    if (lstat(tmp.c_str(), &sbuf) != 0){
>        g_logger.error("Unable to stat %s", tmp.c_str());
>        return false;
>      }
>  
> -    if (!S_ISREG(sbuf.st_mode))
> -    {
> +    if (!S_ISREG(sbuf.st_mode)){
>        g_logger.error("%s is not a regular file", tmp.c_str());
>        return false;
>      }
> @@ -571,31 +551,26 @@ parse_args(int argc, char** argv)
>      g_my_cnf = strdup(tmp.c_str());
>      g_logger.info("Using %s", tmp.c_str());
>    }
> -  else
> -  {
> +  else{
>      g_my_cnf = strdup(mycnf.c_str());
>    }
>    
>    g_logger.info("Using --prefix=\"%s\"", g_prefix);
>    
> -  if(g_report_filename)
> -  {
> +  if(g_report_filename){
>      g_report_file = fopen(g_report_filename, "w");
> -    if(g_report_file == 0)
> -    {
> +    if(g_report_file == 0){
>        g_logger.critical("Unable to create report file: %s", g_report_filename);
>        return false;
>      }
>    }
>    
> -  if (g_clusters == 0)
> -  {
> +  if (g_clusters == 0){
>      g_logger.critical("No clusters specified");
>      return false;
>    }
>    
>    g_user = strdup(getenv("LOGNAME"));
> -  
>    return true;
>  }
>  
> @@ -612,7 +587,6 @@ connect_hosts(atrt_config& config){
>  		   config.m_hosts[i]->m_cpcd->getHost(),
>  		   config.m_hosts[i]->m_cpcd->getPort());
>    }
> -  
>    return true;
>  }
>  
> @@ -627,19 +601,14 @@ connect_ndb_mgm(atrt_process & proc){
>    const char * val;
>    proc.m_options.m_loaded.get("--PortNumber=", &val);
>    tmp.appfmt(":%s", val);
> -
> -  if (ndb_mgm_set_connectstring(handle,tmp.c_str()))
> -  {
> +  if (ndb_mgm_set_connectstring(handle,tmp.c_str())){
>      g_logger.critical("Unable to create parse connectstring");
>      return false;
>    }
> -
> -  if(ndb_mgm_connect(handle, 30, 1, 0) != -1)
> -  {
> +  if(ndb_mgm_connect(handle, 30, 1, 0) != -1){
>      proc.m_ndb_mgm_handle = handle;
>      return true;
>    }
> -
>    g_logger.critical("Unable to connect to ndb mgm %s", tmp.c_str());
>    return false;
>  }
> @@ -650,11 +619,11 @@ connect_ndb_mgm(atrt_config& config){
>      atrt_process & proc = *config.m_processes[i];
>      if((proc.m_type & atrt_process::AP_NDB_MGMD) != 0){
>        if(!connect_ndb_mgm(proc)){
> -	return false;
> +       	g_logger.error("connect_ndb_mgm failed");
> +	    return false;
>        }
>      }
>    }
> -  
>    return true;
>  }
>  
> @@ -670,6 +639,7 @@ wait_ndb(atrt_config& config, int goal){
>    goal = remap(goal);
>  
>    size_t cnt = 0;
> +  g_logger.debug("Inside of wait_ndb()");
>    for (size_t i = 0; i<config.m_clusters.size(); i++)
>    {
>      atrt_cluster* cluster = config.m_clusters[i];
> @@ -680,8 +650,8 @@ wait_ndb(atrt_config& config, int goal){
>      for(size_t j = 0; j<cluster->m_processes.size(); j++){
>        atrt_process & proc = *cluster->m_processes[j];
>        if((proc.m_type & atrt_process::AP_NDB_MGMD) != 0){
> -	handle = proc.m_ndb_mgm_handle;
> -	break;
> +	    handle = proc.m_ndb_mgm_handle;
> +	    break;
>        }
>      }
>  
> @@ -697,8 +667,7 @@ wait_ndb(atrt_config& config, int goal){
>         * 3) wait STARTED
>         */
>        if(!wait_ndb(config, NDB_MGM_NODE_STATUS_NOT_STARTED))
> -	return false;
> -      
> +	    return false;
>        ndb_mgm_start(handle, 0, 0);
>      }
>  
> @@ -715,50 +684,47 @@ wait_ndb(atrt_config& config, int goal){
>         */
>        state = 0;
>        do {
> -	state = ndb_mgm_get_status(handle);
> -	if(state == 0){
> -	  const int err = ndb_mgm_get_latest_error(handle);
> -	  g_logger.error("Unable to poll db state: %d %s %s",
> -			 ndb_mgm_get_latest_error(handle),
> -			 ndb_mgm_get_latest_error_msg(handle),
> -			 ndb_mgm_get_latest_error_desc(handle));
> -	  if(err == NDB_MGM_SERVER_NOT_CONNECTED && connect_ndb_mgm(config)){
> -	    g_logger.error("Reconnected...");
> -	    continue;
> -	  }
> -	  return false;
> -	}
> +	    state = ndb_mgm_get_status(handle);
> +	    if(state == 0){
> +	      const int err = ndb_mgm_get_latest_error(handle);
> +	      g_logger.error("Unable to poll db state: %d %s %s",
> +                          ndb_mgm_get_latest_error(handle),
> +                          ndb_mgm_get_latest_error_msg(handle),
> +                          ndb_mgm_get_latest_error_desc(handle));
> +	      if(err == NDB_MGM_SERVER_NOT_CONNECTED && connect_ndb_mgm(config)){
> +	        g_logger.error("Reconnected...");
> +	        continue;
> +	      }
> +	      return false;
> +	    }
>        } while(state == 0);
>        NdbAutoPtr<void> tmp(state);
>        
>        min2 = goal;
>        for(int j = 0; j<state->no_of_nodes; j++){
> -	if(state->node_states[j].node_type == NDB_MGM_NODE_TYPE_NDB){
> -	  const int s = remap(state->node_states[j].node_status);
> -	  min2 = (min2 < s ? min2 : s );
> -	  
> -	  if(s < remap(NDB_MGM_NODE_STATUS_NO_CONTACT) || 
> -	     s > NDB_MGM_NODE_STATUS_STARTED){
> -	    g_logger.critical("Strange DB status during start: %d %d", 
> -			      j, min2);
> -	    return false;
> -	  }
> -	  
> -	  if(min2 < min){
> -	    g_logger.critical("wait ndb failed node: %d %d %d %d", 
> -			      state->node_states[j].node_id, min, min2, goal);
> -	  }
> -	}
> +	    if(state->node_states[j].node_type == NDB_MGM_NODE_TYPE_NDB){
> +	      const int s = remap(state->node_states[j].node_status);
> +	      min2 = (min2 < s ? min2 : s );
> +          if(s < remap(NDB_MGM_NODE_STATUS_NO_CONTACT) || 
> +             s > NDB_MGM_NODE_STATUS_STARTED){
> +	        g_logger.critical("Strange DB status during start: %d %d",j, min2);
> +	        return false;
> +	      }
> +          if(min2 < min){
> +	        g_logger.critical("wait ndb failed node: %d %d %d %d",
> +	                           state->node_states[j].node_id, min, min2, goal);
> +	      }
> +	    }
>        }
>        
>        if(min2 < min){
> -	g_logger.critical("wait ndb failed %d %d %d", min, min2, goal);
> -	return false;
> +	    g_logger.critical("wait ndb failed %d %d %d", min, min2, goal);
> +	    return false;
>        }
>        
>        if(min2 == goal){
> -	cnt++;
> -	goto next;
> +	    cnt++;
> +	    goto next;
>        }
>        
>        min = min2;
> @@ -778,7 +744,7 @@ next:
>  bool
>  start_process(atrt_process & proc){
>    if(proc.m_proc.m_id != -1){
> -    g_logger.critical("starting already started process: %d", proc.m_index);
> +    g_logger.critical("Process already started: %d", proc.m_index);
>      return false;
>    }
>    
> @@ -822,7 +788,8 @@ start_processes(atrt_config& config, int
>      atrt_process & proc = *config.m_processes[i];
>      if((types & proc.m_type) != 0 && proc.m_proc.m_path != ""){
>        if(!start_process(proc)){
> -	return false;
> +      	g_logger.error("Start Process Failed");
> +	    return false;
>        }
>      }
>    }
> @@ -831,9 +798,8 @@ start_processes(atrt_config& config, int
>  
>  bool
>  stop_process(atrt_process & proc){
> -  if(proc.m_proc.m_id == -1){
> +  if(proc.m_proc.m_id == -1)
>      return true;
> -  }
>  
>    {
>      Properties reply;
> @@ -841,10 +807,10 @@ stop_process(atrt_process & proc){
>        Uint32 status;
>        reply.get("status", &status);
>        if(status != 4){
> -	BaseString msg;
> -	reply.get("errormessage", msg);
> -	g_logger.error("Unable to stop process: %s(%d)", msg.c_str(), status);
> -	return false;
> +	    BaseString msg;
> +	    reply.get("errormessage", msg);
> +	    g_logger.error("Unable to stop process: %s(%d)", msg.c_str(), status);
> +	    return false;
>        }
>      }
>    }
> @@ -867,7 +833,8 @@ stop_processes(atrt_config& config, int 
>      atrt_process & proc = *config.m_processes[i];
>      if((types & proc.m_type) != 0){
>        if(!stop_process(proc)){
> -	return false;
> +        g_logger.error("Stop Process Failed");
> +	    return false;
>        }
>      }
>    }
> @@ -892,23 +859,23 @@ update_status(atrt_config& config, int){
>        Vector<SimpleCpcClient::Process> &h_procs=
> m_procs[proc.m_host->m_index];
>        bool found = false;
>        for(size_t j = 0; j<h_procs.size(); j++){
> -	if(proc.m_proc.m_id == h_procs[j].m_id){
> -	  found = true;
> -	  proc.m_proc.m_status = h_procs[j].m_status;
> -	  break;
> -	}
> +        if(proc.m_proc.m_id == h_procs[j].m_id){
> +          found = true;
> +          proc.m_proc.m_status = h_procs[j].m_status;
> +          break;
> +        }
>        }
>        if(!found){
> -	g_logger.error("update_status: not found");
> -	g_logger.error("id: %d host: %s cmd: %s", 
> -		       proc.m_proc.m_id,
> -		       proc.m_host->m_hostname.c_str(),
> -		       proc.m_proc.m_path.c_str());
> -	for(size_t j = 0; j<h_procs.size(); j++){
> -	  g_logger.error("found: %d %s", h_procs[j].m_id, 
> -			 h_procs[j].m_path.c_str());
> -	}
> -	return false;
> +        g_logger.error("update_status: not found");
> +        g_logger.error("id: %d host: %s cmd: %s", 
> +                        proc.m_proc.m_id,
> +                        proc.m_host->m_hostname.c_str(),
> +                        proc.m_proc.m_path.c_str());
> +        for(size_t j = 0; j<h_procs.size(); j++){
> +          g_logger.error("found: %d %s", h_procs[j].m_id, 
> +          h_procs[j].m_path.c_str());
> +        }
> +        return false;
>        }
>      }
>    }
> @@ -944,8 +911,10 @@ insert(const char * pair, Properties & p
>    Vector<BaseString> split;
>    tmp.split(split, ":=", 2);
>  
> -  if(split.size() != 2)
> +  if(split.size() != 2){
> +  	g_logger.error("insert split.size != 2");
>      return -1;
> +  }
>  
>    p.put(split[0].trim().c_str(), split[1].trim().c_str()); 
>  
> @@ -958,6 +927,7 @@ read_test_case(FILE * file, atrt_testcas
>    Properties p;
>    int elements = 0;
>    char buf[1024];
> +  g_logger.debug("Reading Test Case file %s",g_test_case_filename);
>    while(!feof(file)){
>      if(!fgets(buf, 1024, file))
>        break;
> @@ -988,6 +958,7 @@ read_test_case(FILE * file, atrt_testcas
>        tc.m_max_time = 60000;
>        return true;
>      }
> +    g_logger.critical("File != stdin and elements = %d", elements);
>      return false;
>    }
>  
> @@ -1000,11 +971,15 @@ read_test_case(FILE * file, atrt_testcas
>      tc.m_args = "";
>  
>    const char * mt = 0;
> -  if(!p.get("max-time", &mt))
> +  if(!p.get("max-time", &mt)){
>      tc.m_max_time = 60000;
> -  else
> +    g_logger.debug("tc.m_max_time set to default = %d",tc.m_max_time);
> +  }  
> +  else{
>      tc.m_max_time = atoi(mt);
> -
> +    g_logger.debug("tc.m_max_time set to = %d",tc.m_max_time);
> +  }
> +  
>    if(p.get("type", &mt) && strcmp(mt, "bench") == 0)
>      tc.m_report= true;
>    else
> diff -Nrup a/storage/ndb/test/run-test/setup.cpp
> b/storage/ndb/test/run-test/setup.cpp
> --- a/storage/ndb/test/run-test/setup.cpp	2007-02-12 19:38:48 -06:00
> +++ b/storage/ndb/test/run-test/setup.cpp	2007-11-26 13:23:03 -06:00
> @@ -18,8 +18,7 @@ enum {
>    ,PO_REP = (atrt_options::AO_REPLICATION | PO_REP_SLAVE | PO_REP_MASTER)
>  };
>  
> -struct proc_option
> -{
> +struct proc_option{
>    const char * name;
>    int type;
>    int options;
> @@ -46,8 +45,7 @@ struct proc_option f_options[] = {
>  const char * ndbcs = "--ndb-connectstring=";
>  
>  bool
> -setup_config(atrt_config& config)
> -{
> +setup_config(atrt_config& config){
>    BaseString tmp(g_clusters);
>    Vector<BaseString> clusters;
>    tmp.split(clusters, ",");
> @@ -55,18 +53,15 @@ setup_config(atrt_config& config)
>    bool fqpn = clusters.size() > 1 || g_fqpn;
>    
>    size_t j,k;
> -  for (size_t i = 0; i<clusters.size(); i++)
> -  {
> +  for (size_t i = 0; i<clusters.size(); i++){
>      struct atrt_cluster *cluster = new atrt_cluster;
>      config.m_clusters.push_back(cluster);
>  
>      cluster->m_name = clusters[i];
> -    if (fqpn)
> -    {
> +    if (fqpn){
>        cluster->m_dir.assfmt("cluster%s/", cluster->m_name.c_str());
>      }
> -    else
> -    {
> +    else{
>        cluster->m_dir = "";
>      }
>      
> @@ -79,15 +74,13 @@ setup_config(atrt_config& config)
>      char ** tmp = (char**)argv;
>      const char *groups[] = { "cluster_config", 0 };
>      int ret = load_defaults(g_my_cnf, groups, &argc, &tmp);
> -    if (ret)
> -    {
> +    if (ret){
>        g_logger.error("Unable to load defaults for cluster: %s", 
>  		     clusters[i].c_str());
>        return false;
>      }
>  
> -    struct 
> -    {
> +    struct{
>        atrt_process::Type type;
>        const char * name;
>        const char * value;
> @@ -103,32 +96,27 @@ setup_config(atrt_config& config)
>      /**
>       * Find all processes...
>       */
> -    for (j = 0; j<(size_t)argc; j++)
> -    {
> -      for (k = 0; proc_args[k].name; k++)
> -      {
> -	if (!strncmp(tmp[j], proc_args[k].name, strlen(proc_args[k].name)))
> -	{
> -	  proc_args[k].value = tmp[j] + strlen(proc_args[k].name);
> -	  break;
> -	}
> +    for (j = 0; j<(size_t)argc; j++){
> +      for (k = 0; proc_args[k].name; k++){
> +	    if (!strncmp(tmp[j], proc_args[k].name, strlen(proc_args[k].name))){
> +	      proc_args[k].value = tmp[j] + strlen(proc_args[k].name);
> +	      break;
> +	    }
>        }      
>      }
>  
>      /**
>       * Load each process
>       */
> -    for (j = 0; proc_args[j].name; j++)
> -    {
> -      if (proc_args[j].value)
> -      {
> -	BaseString tmp(proc_args[j].value);
> -	Vector<BaseString> list;
> -	tmp.split(list, ",");
> -	for (k = 0; k<list.size(); k++)
> -	  if (!load_process(config, *cluster, proc_args[j].type, 
> -			    k + 1, list[k].c_str()))
> -	    return false;
> +    for (j = 0; proc_args[j].name; j++){
> +      if (proc_args[j].value){
> +	    BaseString tmp(proc_args[j].value);
> +	    Vector<BaseString> list;
> +	    tmp.split(list, ",");
> +	    for (k = 0; k<list.size(); k++)
> +	      if (!load_process(config, *cluster, proc_args[j].type, 
> +			  k + 1, list[k].c_str()))
> +	      return false;
>        }
>      }
>  
> @@ -142,11 +130,10 @@ setup_config(atrt_config& config)
>        const char *groups[] = { "mysql_cluster", 0 };
>        ret = load_defaults(g_my_cnf, groups, &argc, &tmp);
>        
> -      if (ret)
> -      {
> -	g_logger.error("Unable to load defaults for cluster: %s", 
> -		       clusters[i].c_str());
> -	return false;
> +      if (ret){
> +	    g_logger.error("Unable to load defaults for cluster: %s", 
> +		                clusters[i].c_str());
> +	    return false;
>        }
>        
>        load_options(argc, tmp, atrt_process::AP_CLUSTER, cluster->m_options);
> @@ -216,42 +203,41 @@ load_process(atrt_config& config, atrt_c
>    char ** tmp = (char**)argv;
>    const char *groups[] = { 0, 0, 0, 0 };
>    switch(type){
> -  case atrt_process::AP_NDB_MGMD:
> -    groups[0] = "cluster_config";
> -    buf[1].assfmt("cluster_config.ndb_mgmd.%d", idx);
> -    groups[1] = buf[1].c_str();
> -    buf[0].assfmt("--defaults-group-suffix=%s", cluster.m_name.c_str());
> -    argv[argc++] = buf[0].c_str();
> -    break;
> -  case atrt_process::AP_NDBD: 
> -    groups[0] = "cluster_config";
> -    buf[1].assfmt("cluster_config.ndbd.%d", idx);
> -    groups[1] = buf[1].c_str();
> -    buf[0].assfmt("--defaults-group-suffix=%s", cluster.m_name.c_str());
> -    argv[argc++] = buf[0].c_str();
> -    break;
> -  case atrt_process::AP_MYSQLD:
> -    groups[0] = "mysqld";
> -    groups[1] = "mysql_cluster";
> -    buf[0].assfmt("--defaults-group-suffix=.%d%s",idx,cluster.m_name.c_str());
> -    argv[argc++] = buf[0].c_str();
> -    break;
> -  case atrt_process::AP_CLIENT:
> -    buf[0].assfmt("client.%d%s", idx, cluster.m_name.c_str());
> -    groups[0] = buf[0].c_str();
> -    break;
> -  case atrt_process::AP_NDB_API:
> -    break;
> -  default:
> -    g_logger.critical("Unhandled process type: %d", type);
> -    return false;
> +    case atrt_process::AP_NDB_MGMD:
> +      groups[0] = "cluster_config";
> +      buf[1].assfmt("cluster_config.ndb_mgmd.%d", idx);
> +      groups[1] = buf[1].c_str();
> +      buf[0].assfmt("--defaults-group-suffix=%s", cluster.m_name.c_str());
> +      argv[argc++] = buf[0].c_str();
> +      break;
> +    case atrt_process::AP_NDBD: 
> +      groups[0] = "cluster_config";
> +      buf[1].assfmt("cluster_config.ndbd.%d", idx);
> +      groups[1] = buf[1].c_str();
> +      buf[0].assfmt("--defaults-group-suffix=%s", cluster.m_name.c_str());
> +      argv[argc++] = buf[0].c_str();
> +      break;
> +    case atrt_process::AP_MYSQLD:
> +      groups[0] = "mysqld";
> +      groups[1] = "mysql_cluster";
> +      buf[0].assfmt("--defaults-group-suffix=.%d%s",idx,cluster.m_name.c_str());
> +      argv[argc++] = buf[0].c_str();
> +      break;
> +    case atrt_process::AP_CLIENT:
> +      buf[0].assfmt("client.%d%s", idx, cluster.m_name.c_str());
> +      groups[0] = buf[0].c_str();
> +      break;
> +    case atrt_process::AP_NDB_API:
> +      break;
> +    default:
> +      g_logger.critical("Unhandled process type: %d", type);
> +      return false;
>    }
>  
>    int ret = load_defaults(g_my_cnf, groups, &argc, &tmp);
> -  if (ret)
> -  {
> +  if (ret){
>      g_logger.error("Unable to load defaults for cluster: %s", 
> -		   cluster.m_name.c_str());
> +		            cluster.m_name.c_str());
>      return false;
>    }
>    
> @@ -263,129 +249,108 @@ load_process(atrt_config& config, atrt_c
>  	     cluster.m_dir.c_str());
>    
>    switch(type){
> -  case atrt_process::AP_NDB_MGMD:
> -  {
> -    proc.m_proc.m_name.assfmt("%d-%s", proc_no, "ndb_mgmd");
> -    proc.m_proc.m_path.assign(g_prefix).append("/libexec/ndb_mgmd");
> -    proc.m_proc.m_args.assfmt("--defaults-file=%s/my.cnf",
> -			      proc.m_host->m_basedir.c_str());
> -    proc.m_proc.m_args.appfmt(" --defaults-group-suffix=%s",
> -			      cluster.m_name.c_str());
> -    proc.m_proc.m_args.append(" --nodaemon --mycnf");
> -    proc.m_proc.m_cwd.assfmt("%sndb_mgmd.%d", dir.c_str(), proc.m_index);
> -    proc.m_proc.m_env.appfmt(" MYSQL_GROUP_SUFFIX=%s", 
> -			     cluster.m_name.c_str());
> -    break;
> -  } 
> -  case atrt_process::AP_NDBD:
> -  {
> -    proc.m_proc.m_name.assfmt("%d-%s", proc_no, "ndbd");
> -    proc.m_proc.m_path.assign(g_prefix).append("/libexec/ndbd");
> -    proc.m_proc.m_args.assfmt("--defaults-file=%s/my.cnf",
> -			      proc.m_host->m_basedir.c_str());
> -    proc.m_proc.m_args.appfmt(" --defaults-group-suffix=%s",
> -			      cluster.m_name.c_str());
> -    proc.m_proc.m_args.append(" --nodaemon -n");
> -    proc.m_proc.m_cwd.assfmt("%sndbd.%d", dir.c_str(), proc.m_index);
> -    proc.m_proc.m_env.appfmt(" MYSQL_GROUP_SUFFIX=%s", 
> -			     cluster.m_name.c_str());
> -    break;
> -  } 
> -  case atrt_process::AP_MYSQLD:
> -  {
> -    proc.m_proc.m_name.assfmt("%d-%s", proc_no, "mysqld");
> -    proc.m_proc.m_path.assign(g_prefix).append("/libexec/mysqld");
> -    proc.m_proc.m_args.assfmt("--defaults-file=%s/my.cnf",
> -			      proc.m_host->m_basedir.c_str());
> -    proc.m_proc.m_args.appfmt(" --defaults-group-suffix=.%d%s",
> -			      proc.m_index,
> -			      cluster.m_name.c_str());
> -    proc.m_proc.m_args.append(" --core-file");
> -    proc.m_proc.m_cwd.appfmt("%smysqld.%d", dir.c_str(), proc.m_index);
> -    proc.m_proc.m_shutdown_options = "SIGKILL"; // not nice
> -    proc.m_proc.m_env.appfmt(" MYSQL_GROUP_SUFFIX=.%d%s", 
> -			     proc.m_index,
> -			     cluster.m_name.c_str());
> -    break;
> -  } 
> -  case atrt_process::AP_NDB_API:
> -  {
> -    proc.m_proc.m_name.assfmt("%d-%s", proc_no, "ndb_api");
> -    proc.m_proc.m_path = "";
> -    proc.m_proc.m_args = "";
> -    proc.m_proc.m_cwd.appfmt("%sndb_api.%d", dir.c_str(), proc.m_index);
> -    proc.m_proc.m_env.appfmt(" MYSQL_GROUP_SUFFIX=%s", 
> -			     cluster.m_name.c_str());
> -    break;
> -  } 
> -  case atrt_process::AP_CLIENT:
> -  {
> -    proc.m_proc.m_name.assfmt("%d-%s", proc_no, "mysql");
> -    proc.m_proc.m_path = "";
> -    proc.m_proc.m_args = "";
> -    proc.m_proc.m_cwd.appfmt("%s/client.%d", dir.c_str(), proc.m_index);
> -    proc.m_proc.m_env.appfmt(" MYSQL_GROUP_SUFFIX=.%d%s", 
> -			     proc.m_index,
> -			     cluster.m_name.c_str());
> -    break;
> -  }
> -  case atrt_process::AP_ALL:
> -  case atrt_process::AP_CLUSTER:
> -    g_logger.critical("Unhandled process type: %d", proc.m_type);
> -    return false;
> +    case atrt_process::AP_NDB_MGMD:{
> +      proc.m_proc.m_name.assfmt("%d-%s", proc_no, "ndb_mgmd");
> +      proc.m_proc.m_path.assign(g_prefix).append("/libexec/ndb_mgmd");
> +      proc.m_proc.m_args.assfmt("--defaults-file=%s/my.cnf",
> +	                            proc.m_host->m_basedir.c_str());
> +      proc.m_proc.m_args.appfmt(" --defaults-group-suffix=%s",
> +		                        cluster.m_name.c_str());
> +      proc.m_proc.m_args.append(" --nodaemon --mycnf");
> +      proc.m_proc.m_cwd.assfmt("%sndb_mgmd.%d", dir.c_str(), proc.m_index);
> +      proc.m_proc.m_env.appfmt(" MYSQL_GROUP_SUFFIX=%s", 
> +		                       cluster.m_name.c_str());
> +      break;
> +    } 
> +    case atrt_process::AP_NDBD:{
> +      proc.m_proc.m_name.assfmt("%d-%s", proc_no, "ndbd");
> +      proc.m_proc.m_path.assign(g_prefix).append("/libexec/ndbd");
> +      proc.m_proc.m_args.assfmt("--defaults-file=%s/my.cnf",
> +		                        proc.m_host->m_basedir.c_str());
> +      proc.m_proc.m_args.appfmt(" --defaults-group-suffix=%s",
> +		                        cluster.m_name.c_str());
> +      proc.m_proc.m_args.append(" --nodaemon -n");
> +      proc.m_proc.m_cwd.assfmt("%sndbd.%d", dir.c_str(), proc.m_index);
> +      proc.m_proc.m_env.appfmt(" MYSQL_GROUP_SUFFIX=%s", 
> +		                       cluster.m_name.c_str());
> +      break;
> +    } 
> +    case atrt_process::AP_MYSQLD:{
> +      proc.m_proc.m_name.assfmt("%d-%s", proc_no, "mysqld");
> +      proc.m_proc.m_path.assign(g_prefix).append("/libexec/mysqld");
> +      proc.m_proc.m_args.assfmt("--defaults-file=%s/my.cnf",
> +	                            proc.m_host->m_basedir.c_str());
> +      proc.m_proc.m_args.appfmt(" --defaults-group-suffix=.%d%s",
> +		                        proc.m_index,cluster.m_name.c_str());
> +      proc.m_proc.m_args.append(" --core-file");
> +      proc.m_proc.m_cwd.appfmt("%smysqld.%d", dir.c_str(), proc.m_index);
> +      proc.m_proc.m_shutdown_options = "SIGKILL"; // not nice
> +      proc.m_proc.m_env.appfmt(" MYSQL_GROUP_SUFFIX=.%d%s", 
> +		                       proc.m_index, cluster.m_name.c_str());
> +      break;
> +    } 
> +    case atrt_process::AP_NDB_API:{
> +      proc.m_proc.m_name.assfmt("%d-%s", proc_no, "ndb_api");
> +      proc.m_proc.m_path = "";
> +      proc.m_proc.m_args = "";
> +      proc.m_proc.m_cwd.appfmt("%sndb_api.%d", dir.c_str(), proc.m_index);
> +      proc.m_proc.m_env.appfmt(" MYSQL_GROUP_SUFFIX=%s",cluster.m_name.c_str());
> +      break;
> +    } 
> +    case atrt_process::AP_CLIENT:{
> +      proc.m_proc.m_name.assfmt("%d-%s", proc_no, "mysql");
> +      proc.m_proc.m_path = "";
> +      proc.m_proc.m_args = "";
> +      proc.m_proc.m_cwd.appfmt("%s/client.%d", dir.c_str(), proc.m_index);
> +      proc.m_proc.m_env.appfmt(" MYSQL_GROUP_SUFFIX=.%d%s", proc.m_index,
> +			                   cluster.m_name.c_str());
> +      break;
> +    }
> +    case atrt_process::AP_ALL:
> +    case atrt_process::AP_CLUSTER:
> +      g_logger.critical("Unhandled process type: %d", proc.m_type);
> +      return false;
>    }
>    
> -  if (proc.m_proc.m_path.length())
> -  {
> +  if (proc.m_proc.m_path.length()){
>      proc.m_proc.m_env.appfmt(" CMD=\"%s", proc.m_proc.m_path.c_str());
>      if (proc.m_proc.m_args.length())
>        proc.m_proc.m_env.append(" ");
> -    proc.m_proc.m_env.append(proc.m_proc.m_args);
> -    proc.m_proc.m_env.append("\" ");
> +      proc.m_proc.m_env.append(proc.m_proc.m_args);
> +      proc.m_proc.m_env.append("\" ");
>    }
>    
> -  if (type == atrt_process::AP_MYSQLD)
> -  {
> +  if (type == atrt_process::AP_MYSQLD){
>      /**
>       * Add a client for each mysqld
>       */
>      if (!load_process(config, cluster, atrt_process::AP_CLIENT, idx, hostname))
> -    {
>        return false;
> -    }
>    }
>    
>    if (type == atrt_process::AP_CLIENT)
> -  {
>      proc.m_mysqld = cluster.m_processes[cluster.m_processes.size()-2];
> -  }
> -  
> + 
>    return true;
>  }
>  
>  static 
>  bool
> -load_options(int argc, char** argv, int type, atrt_options& opts)
> -{
> -  for (size_t i = 0; i<(size_t)argc; i++)
> -  {
> -    for (size_t j = 0; f_options[j].name; j++)
> -    {
> +load_options(int argc, char** argv, int type, atrt_options& opts){
> +  for (size_t i = 0; i<(size_t)argc; i++){
> +    for (size_t j = 0; f_options[j].name; j++){
>        const char * name = f_options[j].name;
>        const size_t len = strlen(name);
> -      
> -      if ((f_options[j].type & type) && strncmp(argv[i], name, len) ==
> 0)
> -      {
> -	opts.m_loaded.put(name, argv[i]+len, true);
> -	break;
> +      if ((f_options[j].type & type) && strncmp(argv[i], name, len) ==
> 0){
> +	    opts.m_loaded.put(name, argv[i]+len, true);
> +	    break;
>        }
>      }
>    }
>    return true;
>  }
>  
> -struct proc_rule_ctx
> -{
> +struct proc_rule_ctx{
>    int m_setup;
>    atrt_config* m_config;
>    atrt_host * m_host;
> @@ -393,8 +358,7 @@ struct proc_rule_ctx
>    atrt_process* m_process;
>  };
>  
> -struct proc_rule
> -{
> +struct proc_rule{
>    int type;
>    bool (* func)(Properties& prop, proc_rule_ctx&, int extra);
>    int extra;
> @@ -424,107 +388,92 @@ proc_rule f_rules[] = 
>  };
>  
>  bool
> -configure(atrt_config& config, int setup)
> -{
> +configure(atrt_config& config, int setup){
>    Properties props;
> -  
> -  for (size_t i = 0; f_rules[i].func; i++)
> -  {
> -    bool ok = true;
> +  bool ok = true;
> +  for (size_t i = 0; f_rules[i].func; i++){
> +    ok = true;
>      proc_rule_ctx ctx;
>      bzero(&ctx, sizeof(ctx));
>      ctx.m_setup = setup;
>      ctx.m_config = &config;
> -    
> -    for (size_t j = 0; j < config.m_clusters.size(); j++)
> -    {
> +    for (size_t j = 0; j < config.m_clusters.size(); j++){
>        ctx.m_cluster = config.m_clusters[j];
> -      
> -      if (f_rules[i].type & atrt_process::AP_CLUSTER)
> -      {
> -	g_logger.debug("applying rule %d to cluster %s", i, 
> -		       ctx.m_cluster->m_name.c_str());
> -	if (! (* f_rules[i].func)(props, ctx, f_rules[i].extra))
> -	  ok = false;
> -      }
> -      else
> -      {
> -	atrt_cluster& cluster = *config.m_clusters[j];
> -	for (size_t k = 0; k<cluster.m_processes.size(); k++)
> -	{
> -	  atrt_process& proc = *cluster.m_processes[k];
> -	  ctx.m_process = cluster.m_processes[k];
> -	  if (proc.m_type & f_rules[i].type)
> -	  {
> -	    g_logger.debug("applying rule %d to %s", i, 
> -			   proc.m_proc.m_cwd.c_str());
> -	    if (! (* f_rules[i].func)(props, ctx, f_rules[i].extra))
> +      if (f_rules[i].type & atrt_process::AP_CLUSTER){
> +	    g_logger.debug("applying rule %d to cluster %s", i, 
> +		               ctx.m_cluster->m_name.c_str());
> +	    if (! (* f_rules[i].func)(props, ctx, f_rules[i].extra)){
>  	      ok = false;
> -	  }
> -	}
> +	      g_logger.error("Failed applying rule %d to cluster %s", i, 
> +		                 ctx.m_cluster->m_name.c_str());
> +	    }
> +      }
> +      else{
> +	    atrt_cluster& cluster = *config.m_clusters[j];
> +	    for (size_t k = 0; k<cluster.m_processes.size(); k++){
> +	      atrt_process& proc = *cluster.m_processes[k];
> +	      ctx.m_process = cluster.m_processes[k];
> +	      if (proc.m_type & f_rules[i].type){
> +	        g_logger.debug("applying rule %d to %s", i,
> +	                       proc.m_proc.m_cwd.c_str());
> +	        if (! (* f_rules[i].func)(props, ctx, f_rules[i].extra)){
> +	          ok = false;
> +	          g_logger.error("Failed applying rule %d to %s", i, 
> +			                 proc.m_proc.m_cwd.c_str());
> +	        }
> +	      }
> +	    }
>        }
>      }
> -    
> -    if (!ok)
> -    {
> -      return false;
> -    }
>    }
> +    
> +  if (!ok)
> +    return false;
>  
>    return true;
>  }
>  
>  static
>  atrt_process*
> -find(atrt_config& config, int type, const char * name)
> -{
> +find(atrt_config& config, int type, const char * name){
>    BaseString tmp(name);
>    Vector<BaseString> src;
>    Vector<BaseString> dst;
>    tmp.split(src, ".");
>    
>    if (src.size() != 2)
> -  {
>      return 0;
> -  }
>    atrt_cluster* cluster = 0;
>    BaseString cl;
>    cl.appfmt(".%s", src[1].c_str());
> -  for (size_t i = 0; i<config.m_clusters.size(); i++)
> -  {
> -    if (config.m_clusters[i]->m_name == cl)
> -    {
> +  for (size_t i = 0; i<config.m_clusters.size(); i++){
> +    if (config.m_clusters[i]->m_name == cl){
>        cluster = config.m_clusters[i];
>        break;
>      }
>    }   
>    
>    if (cluster == 0)
> -  {
>      return 0;
> -  }
>    
>    int idx = atoi(src[0].c_str()) - 1;
> -  for (size_t i = 0; i<cluster->m_processes.size(); i++)
> -  {
> -    if (cluster->m_processes[i]->m_type & type)
> -    {
> -      if (idx == 0)
> -	return cluster->m_processes[i];
> -      else
> -	idx --;
> +  for (size_t i = 0; i<cluster->m_processes.size(); i++){
> +    if (cluster->m_processes[i]->m_type & type){
> +      if (idx == 0){
> +	    return cluster->m_processes[i];
> +      }
> +      else{
> +	    idx --;
> +      }
>      }
>    }
> -  
>    return 0;
>  }
>  
>  static 
>  bool 
> -pr_check_replication(Properties& props, proc_rule_ctx& ctx, int)
> -{
> -  if (! (ctx.m_config->m_replication == ""))
> -  {
> +pr_check_replication(Properties& props, proc_rule_ctx& ctx, int){
> +  if (! (ctx.m_config->m_replication == "")){
>      Vector<BaseString> list;
>      ctx.m_config->m_replication.split(list, ";");
>      atrt_config& config = *ctx.m_config;
> @@ -532,40 +481,32 @@ pr_check_replication(Properties& props, 
>      ctx.m_config->m_replication = "";
>      
>      const char * msg = "Invalid replication specification";
> -    for (size_t i = 0; i<list.size(); i++)
> -    {
> +    for (size_t i = 0; i<list.size(); i++){
>        Vector<BaseString> rep;
>        list[i].split(rep, ":");
> -      if (rep.size() != 2)
> -      {
> -	g_logger.error("%s: %s (split: %d)", msg, list[i].c_str(), rep.size());
> -      return false;
> +      if (rep.size() != 2){
> +	    g_logger.error("%s: %s (split: %d)", msg, list[i].c_str(), rep.size());
> +        return false;
>        }
>        
>        atrt_process* src = find(config, atrt_process::AP_MYSQLD,rep[0].c_str());
>        atrt_process* dst = find(config, atrt_process::AP_MYSQLD,rep[1].c_str());
>        
> -      if (src == 0 || dst == 0)
> -      {
> -	g_logger.error("%s: %s (%d %d)",
> -		       msg, list[i].c_str(), src != 0, dst != 0);
> -	return false;
> +      if (src == 0 || dst == 0){
> +	    g_logger.error("%s: %s (%d %d)",
> +		               msg, list[i].c_str(), src != 0, dst != 0);
> +	    return false;
>        }
>        
> -      
> -      if (dst->m_rep_src != 0)
> -      {
> -	g_logger.error("%s: %s : %s already has replication src (%s)",
> -		       msg,
> -		       list[i].c_str(),
> -		       dst->m_proc.m_cwd.c_str(),
> -		       dst->m_rep_src->m_proc.m_cwd.c_str());
> -	return false;
> +      if (dst->m_rep_src != 0){
> +	     g_logger.error("%s: %s : %s already has replication src (%s)",
> +		                msg,list[i].c_str(),dst->m_proc.m_cwd.c_str(),
> +		                dst->m_rep_src->m_proc.m_cwd.c_str());
> +	     return false;
>        }
>        
>        dst->m_rep_src = src;
>        src->m_rep_dst.push_back(dst);
> -      
>        src->m_options.m_features |= PO_REP_MASTER;
>        dst->m_options.m_features |= PO_REP_SLAVE;
>      }
> @@ -575,26 +516,21 @@ pr_check_replication(Properties& props, 
>  
>  static 
>  bool 
> -pr_check_features(Properties& props, proc_rule_ctx& ctx, int)
> -{
> +pr_check_features(Properties& props, proc_rule_ctx& ctx, int){
>    int features = 0;
>    atrt_cluster& cluster = *ctx.m_cluster;
> -  for (size_t i = 0; i<cluster.m_processes.size(); i++)
> -  {
> +  for (size_t i = 0; i<cluster.m_processes.size(); i++){
>      if (cluster.m_processes[i]->m_type == atrt_process::AP_NDB_MGMD ||
> -	cluster.m_processes[i]->m_type == atrt_process::AP_NDB_API ||
> -	cluster.m_processes[i]->m_type == atrt_process::AP_NDBD)
> -    {
> +	    cluster.m_processes[i]->m_type == atrt_process::AP_NDB_API ||
> +	    cluster.m_processes[i]->m_type == atrt_process::AP_NDBD){
>        features |= atrt_options::AO_NDBCLUSTER;
>        break;
>      }
>    }
>    
> -  if (features)
> -  {
> +  if (features){
>      cluster.m_options.m_features |= features;
> -    for (size_t i = 0; i<cluster.m_processes.size(); i++)
> -    {
> +    for (size_t i = 0; i<cluster.m_processes.size(); i++){
>        cluster.m_processes[i]->m_options.m_features |= features;
>      }
>    }
> @@ -603,45 +539,37 @@ pr_check_features(Properties& props, pro
>  
>  static 
>  bool 
> -pr_fix_client(Properties& props, proc_rule_ctx& ctx, int)
> -{
> -  for (size_t i = 0; f_options[i].name; i++)
> -  {
> +pr_fix_client(Properties& props, proc_rule_ctx& ctx, int){
> +  for (size_t i = 0; f_options[i].name; i++){
>      proc_option& opt = f_options[i];
>      const char * name = opt.name;
> -    if (opt.type & atrt_process::AP_CLIENT)
> -    {
> +    if (opt.type & atrt_process::AP_CLIENT){
>        const char * val;
>        atrt_process& proc = *ctx.m_process; 
> -      if (!proc.m_options.m_loaded.get(name, &val))
> -      {
> -	require(proc.m_mysqld->m_options.m_loaded.get(name, &val));
> -	proc.m_options.m_loaded.put(name, val);
> -	proc.m_options.m_generated.put(name, val);
> +      if (!proc.m_options.m_loaded.get(name, &val)){
> +	    require(proc.m_mysqld->m_options.m_loaded.get(name, &val));
> +	    proc.m_options.m_loaded.put(name, val);
> +	    proc.m_options.m_generated.put(name, val);
>        }
>      }
>    }
> -  
>    return true;
>  }
>  
>  static
>  Uint32
> -try_default_port(atrt_process& proc, const char * name)
> -{
> +try_default_port(atrt_process& proc, const char * name){
>    Uint32 port = 
>      strcmp(name, "--port=") == 0 ? 3306 :
>      strcmp(name, "--PortNumber=") == 0 ? 1186 : 
>      0;
>    
>    atrt_host * host = proc.m_host;
> -  for (size_t i = 0; i<host->m_processes.size(); i++)
> -  {
> +  for (size_t i = 0; i<host->m_processes.size(); i++){
>      const char * val;
> -    if (host->m_processes[i]->m_options.m_loaded.get(name, &val))
> -    {
> +    if (host->m_processes[i]->m_options.m_loaded.get(name, &val)){
>        if ((Uint32)atoi(val) == port)
> -	return 0;
> +	    return 0;
>      }
>    }
>    return port;
> @@ -649,34 +577,28 @@ try_default_port(atrt_process& proc, con
>  
>  static
>  bool
> -generate(atrt_process& proc, const char * name, Properties& props)
> -{
> +generate(atrt_process& proc, const char * name, Properties& props){
>    atrt_options& opts = proc.m_options;
>    if (strcmp(name, "--port=") == 0 || 
> -      strcmp(name, "--PortNumber=") == 0)
> -  {
> +      strcmp(name, "--PortNumber=") == 0){
>      Uint32 val;
> -    if (g_default_ports == 0 || (val = try_default_port(proc, name)) == 0)
> -    {
> +    if (g_default_ports == 0 || (val = try_default_port(proc, name)) == 0){
>        val = g_baseport;
>        props.get("--PortNumber=", &val);
>        props.put("--PortNumber=", (val + 1), true);
>      }
> -    
>      char buf[255];
>      snprintf(buf, sizeof(buf), "%u", val);
>      opts.m_loaded.put(name, buf);
>      opts.m_generated.put(name, buf);
>      return true;
>    }
> -  else if (strcmp(name, "--datadir=") == 0)
> -  {
> +  else if (strcmp(name, "--datadir=") == 0){
>      opts.m_loaded.put(name, proc.m_proc.m_cwd.c_str());
>      opts.m_generated.put(name, proc.m_proc.m_cwd.c_str());
>      return true;
>    }
> -  else if (strcmp(name, "--FileSystemPath=") == 0)
> -  {
> +  else if (strcmp(name, "--FileSystemPath=") == 0){
>      BaseString dir;
>      dir.append(proc.m_host->m_basedir);
>      dir.append("/");
> @@ -685,40 +607,31 @@ generate(atrt_process& proc, const char 
>      opts.m_generated.put(name, dir.c_str());
>      return true;
>    }
> -  else if (strcmp(name, "--socket=") == 0)
> -  {
> +  else if (strcmp(name, "--socket=") == 0){
>      const char * sock = 0;
> -    if (g_default_ports)
> -    {
> +    if (g_default_ports){
>        sock = "/tmp/mysql.sock";
>        atrt_host * host = proc.m_host;
> -      for (size_t i = 0; i<host->m_processes.size(); i++)
> -      {
> -	const char * val;
> -	if (host->m_processes[i]->m_options.m_loaded.get(name, &val))
> -	{
> -	  if (strcmp(sock, val) == 0)
> -	  {
> -	    sock = 0;
> -	    break;
> -	  }
> -	}
> +      for (size_t i = 0; i<host->m_processes.size(); i++){
> +	    const char * val;
> +	    if (host->m_processes[i]->m_options.m_loaded.get(name, &val)){
> +	      if (strcmp(sock, val) == 0){
> +	        sock = 0;
> +	        break;
> +	      }
> +	    }
>        }
>      }
> -    
>      BaseString tmp;
> -    if (sock == 0)
> -    {
> +    if (sock == 0){
>        tmp.assfmt("%s/mysql.sock", proc.m_proc.m_cwd.c_str());
>        sock = tmp.c_str();
>      }
> -    
>      opts.m_loaded.put(name, sock);
>      opts.m_generated.put(name, sock);
>      return true;
>    }
> -  else if (strcmp(name, "--server-id=") == 0)
> -  {
> +  else if (strcmp(name, "--server-id=") == 0){
>      Uint32 val = 1;
>      props.get(name, &val);
>      char buf[255];
> @@ -728,64 +641,52 @@ generate(atrt_process& proc, const char 
>      props.put(name, (val + 1), true);
>      return true;
>    } 
> -  else if (strcmp(name, "--log-bin") == 0)
> -  {
> +  else if (strcmp(name, "--log-bin") == 0){
>      opts.m_loaded.put(name, "");
>      opts.m_generated.put(name, "");
>      return true;
>    }
> -  else if (strcmp(name, "--master-host=") == 0)
> -  {
> +  else if (strcmp(name, "--master-host=") == 0){
>      require(proc.m_rep_src != 0);
>      opts.m_loaded.put(name, proc.m_rep_src->m_host->m_hostname.c_str());
>      opts.m_generated.put(name, proc.m_rep_src->m_host->m_hostname.c_str());
>      return true;
>    }
> -  else if (strcmp(name, "--master-port=") == 0)
> -  {
> +  else if (strcmp(name, "--master-port=") == 0){
>      const char* val;
>      require(proc.m_rep_src->m_options.m_loaded.get("--port=", &val));
>      opts.m_loaded.put(name, val);
>      opts.m_generated.put(name, val);
>      return true;
>    }
> -  else if (strcmp(name, "--master-user=") == 0)
> -  {
> +  else if (strcmp(name, "--master-user=") == 0){
>      opts.m_loaded.put(name, "root");
>      opts.m_generated.put(name, "root");
>      return true;
>    }
> -  else if (strcmp(name, "--master-password=") == 0)
> -  {
> +  else if (strcmp(name, "--master-password=") == 0){
>      opts.m_loaded.put(name, "\"\"");
>      opts.m_generated.put(name, "\"\"");
>      return true;
>    }
> -  
>    g_logger.warning("Unknown parameter: %s", name);
>    return true;
>  }
>  
>  static 
>  bool 
> -pr_proc_options(Properties& props, proc_rule_ctx& ctx, int extra)
> -{
> -  for (size_t i = 0; f_options[i].name; i++)
> -  {
> +pr_proc_options(Properties& props, proc_rule_ctx& ctx, int extra){
> +  for (size_t i = 0; f_options[i].name; i++){
>      proc_option& opt = f_options[i];
>      atrt_process& proc = *ctx.m_process; 
>      const char * name = opt.name;
> -    if (opt.type & proc.m_type)
> -    {
> +    if (opt.type & proc.m_type){
>        if (opt.options == 0 || 
> -	  (opt.options & extra & proc.m_options.m_features))
> -      {
> -	const char * val;
> -	if (!proc.m_options.m_loaded.get(name, &val))
> -	{
> -	  generate(proc, name, props);
> -	}
> -      }
> +	     (opt.options & extra & proc.m_options.m_features)){
> +	    const char * val;
> +	    if (!proc.m_options.m_loaded.get(name, &val))
> +	      generate(proc, name, props);
> +	  }
>      }
>    }
>    return true;
> @@ -793,42 +694,32 @@ pr_proc_options(Properties& props, proc_
>  
>  static 
>  bool 
> -pr_fix_ndb_connectstring(Properties& props, proc_rule_ctx& ctx, int)
> -{
> +pr_fix_ndb_connectstring(Properties& props, proc_rule_ctx& ctx, int){
>    const char * val;
>    atrt_cluster& cluster = *ctx.m_cluster;
> -
> -  if (cluster.m_options.m_features & atrt_options::AO_NDBCLUSTER)
> -  {
> -    if (!cluster.m_options.m_loaded.get(ndbcs, &val))
> -    {
> +  if (cluster.m_options.m_features & atrt_options::AO_NDBCLUSTER){
> +    if (!cluster.m_options.m_loaded.get(ndbcs, &val)){
>        /**
>         * Construct connect string for this cluster
>       */
>        BaseString str;
> -      for (size_t i = 0; i<cluster.m_processes.size(); i++)
> -      {
> -	atrt_process* tmp = cluster.m_processes[i];
> -	if (tmp->m_type == atrt_process::AP_NDB_MGMD)
> -	{
> -	  if (str.length())
> -	  {
> -	    str.append(";");
> -	  }
> -	  const char * port;
> -	  require(tmp->m_options.m_loaded.get("--PortNumber=", &port));
> -	  str.appfmt("%s:%s", tmp->m_host->m_hostname.c_str(), port);
> -	}
> +      for (size_t i = 0; i<cluster.m_processes.size(); i++){
> +	    atrt_process* tmp = cluster.m_processes[i];
> +	    if (tmp->m_type == atrt_process::AP_NDB_MGMD){
> +	      if (str.length()){
> +	        str.append(";");
> +	      }
> +	      const char * port;
> +	      require(tmp->m_options.m_loaded.get("--PortNumber=", &port));
> +	      str.appfmt("%s:%s", tmp->m_host->m_hostname.c_str(), port);
> +	    }
>        }
>        cluster.m_options.m_loaded.put(ndbcs, str.c_str());
>        cluster.m_options.m_generated.put(ndbcs, str.c_str());
>        cluster.m_options.m_loaded.get(ndbcs, &val);
>      }
> -    
> -    for (size_t i = 0; i<cluster.m_processes.size(); i++)
> -    {
> -      cluster.m_processes[i]->m_proc.m_env.appfmt(" NDB_CONNECTSTRING=%s", 
> -						  val);
> +    for (size_t i = 0; i<cluster.m_processes.size(); i++){
> +      cluster.m_processes[i]->m_proc.m_env.appfmt(" NDB_CONNECTSTRING=%s",val);
>      }
>    }
>    return true;
> @@ -836,22 +727,16 @@ pr_fix_ndb_connectstring(Properties& pro
>  
>  static 
>  bool 
> -pr_set_ndb_connectstring(Properties& props, proc_rule_ctx& ctx, int)
> -{
> +pr_set_ndb_connectstring(Properties& props, proc_rule_ctx& ctx, int){
>    const char * val;
> -  
>    atrt_process& proc = *ctx.m_process;
> -  if (proc.m_options.m_features & atrt_options::AO_NDBCLUSTER)
> -  {
> -    if (!proc.m_options.m_loaded.get(ndbcs, &val))
> -    {
> +  if (proc.m_options.m_features & atrt_options::AO_NDBCLUSTER){
> +    if (!proc.m_options.m_loaded.get(ndbcs, &val)){
>        require(proc.m_cluster->m_options.m_loaded.get(ndbcs, &val));
>        proc.m_options.m_loaded.put(ndbcs, val);
>        proc.m_options.m_generated.put(ndbcs, val);
>      }
> -    
> -    if (!proc.m_options.m_loaded.get("--ndbcluster", &val))
> -    {
> +    if (!proc.m_options.m_loaded.get("--ndbcluster", &val)){
>        proc.m_options.m_loaded.put("--ndbcluster", "");
>        proc.m_options.m_generated.put("--ndbcluster", "");
>      }
> @@ -861,49 +746,39 @@ pr_set_ndb_connectstring(Properties& pro
>  
>  static 
>  bool 
> -pr_check_proc(Properties& props, proc_rule_ctx& ctx, int)
> -{
> +pr_check_proc(Properties& props, proc_rule_ctx& ctx, int){
>    bool ok = true;
>    bool generated = false;
>    const int setup = ctx.m_setup;
>    atrt_process& proc = *ctx.m_process; 
> -  for (size_t i = 0; f_options[i].name; i++)
> -  {
> +  for (size_t i = 0; f_options[i].name; i++){
>      proc_option& opt = f_options[i];
>      const char * name = opt.name;
>      if ((ctx.m_process->m_type & opt.type) &&
> -	(opt.options == 0 || (ctx.m_process->m_options.m_features & opt.options)))
> -    {
> +	    (opt.options == 0 || 
> +	    (ctx.m_process->m_options.m_features & opt.options))){
>        const char * val;
> -      if (!proc.m_options.m_loaded.get(name, &val))
> -      {
> -	ok = false;
> -	g_logger.warning("Missing paramter: %s for %s",
> -			 name, proc.m_proc.m_cwd.c_str());
> -      }
> -      else if (proc.m_options.m_generated.get(name, &val))
> -      {
> -	if (setup == 0)
> -	{
> -	  ok = false;
> -	  g_logger.warning("Missing paramter: %s for %s",
> -			   name, proc.m_proc.m_cwd.c_str());
> -	}
> -	else
> -	{
> -	  generated = true;
> -	}
> +      if (!proc.m_options.m_loaded.get(name, &val)){
> +	    ok = false;
> +	    g_logger.warning("Missing paramter: %s for %s",
> +		                 name, proc.m_proc.m_cwd.c_str());
> +      }
> +      else if (proc.m_options.m_generated.get(name, &val)){
> +	    if (setup == 0){
> +	      ok = false;
> +	      g_logger.warning("Missing paramter: %s for %s",
> +			               name, proc.m_proc.m_cwd.c_str());
> +	    }
> +	    else{
> +	      generated = true;
> +	    }
>        }
>      }
>    }
> -  
> -  if (generated)
> -  {
> +  if (generated){
>      ctx.m_config->m_generated = true;
>    }
> -  
>    //ndbout << proc << endl;
> -  
>    return ok;
>  }
>  
> @@ -913,23 +788,23 @@ operator<<(NdbOut& out, const atrt_proce
>  {
>    out << "[ atrt_process: ";
>    switch(proc.m_type){
> -  case atrt_process::AP_NDB_MGMD:
> -    out << "ndb_mgmd";
> -    break;
> -  case atrt_process::AP_NDBD: 
> -    out << "ndbd";
> -    break;
> -  case atrt_process::AP_MYSQLD:
> -    out << "mysqld";
> -    break;
> -  case atrt_process::AP_NDB_API:
> -    out << "ndbapi";
> -    break;
> -  case atrt_process::AP_CLIENT:
> -    out << "client";
> -    break;
> -  default:
> -    out << "<unknown: " << (int)proc.m_type << " >";
> +    case atrt_process::AP_NDB_MGMD:
> +      out << "ndb_mgmd";
> +      break;
> +    case atrt_process::AP_NDBD: 
> +      out << "ndbd";
> +      break;
> +    case atrt_process::AP_MYSQLD:
> +      out << "mysqld";
> +      break;
> +    case atrt_process::AP_NDB_API:
> +      out << "ndbapi";
> +      break;
> +    case atrt_process::AP_CLIENT:
> +      out << "client";
> +      break;
> +    default:
> +      out << "<unknown: " << (int)proc.m_type << " >";
>    }
>    
>    out << " cluster: " << proc.m_cluster->m_name.c_str()
> 

Thread
bk commit into 5.1 tree (jmiller:1.2582)Jonathan Miller26 Nov
  • Re: bk commit into 5.1 tree (jmiller:1.2582)Jonas Oreland26 Nov
    • RE: bk commit into 5.1 tree (jmiller:1.2582)Jonathan Miller26 Nov
    • RE: bk commit into 5.1 tree (jmiller:1.2582)Jonathan Miller27 Nov
      • Re: bk commit into 5.1 tree (jmiller:1.2582)Jonas Oreland28 Nov
        • RE: bk commit into 5.1 tree (jmiller:1.2582)Jonathan Miller28 Nov