summaryrefslogtreecommitdiff
path: root/server-tools/instance-manager
diff options
context:
space:
mode:
authorunknown <petr@mysql.com>2005-07-21 22:40:53 +0400
committerunknown <petr@mysql.com>2005-07-21 22:40:53 +0400
commita38f5cd5cde6c90d64fd53646124965dd2d59777 (patch)
tree8e766ff2dc502bb300c5dbdeea3bcf2b4dff1ca9 /server-tools/instance-manager
parent34fa3be594434bae844c087f7a79bca5103b758f (diff)
downloadmariadb-git-a38f5cd5cde6c90d64fd53646124965dd2d59777.tar.gz
Post-review fixes for WL#2713 "Change IM behaviour so, that it only reads and alters one config file only."
server-tools/instance-manager/commands.cc: get rid of single_defaults_file_option and use Options::config_file instead server-tools/instance-manager/commands.h: get rid of single_defaults_file_option and use Options::config_file instead server-tools/instance-manager/instance_map.cc: get rid of single_defaults_file_option and use Options::config_file instead server-tools/instance-manager/instance_map.h: get rid of single_defaults_file_option and use Options::config_file instead server-tools/instance-manager/manager.cc: get rid of single_defaults_file_option and use Options::config_file instead server-tools/instance-manager/options.cc: Disable --defaults-extra-file and --no-defaults options for the IM as they have no sence. Don't use print_defaults as it prints out wrong "first option" information for IM. Use only Options::config_file to process options server-tools/instance-manager/options.h: get rid of single_defaults_file_option and use Options::config_file instead
Diffstat (limited to 'server-tools/instance-manager')
-rw-r--r--server-tools/instance-manager/commands.cc13
-rw-r--r--server-tools/instance-manager/commands.h1
-rw-r--r--server-tools/instance-manager/instance_map.cc17
-rw-r--r--server-tools/instance-manager/instance_map.h4
-rw-r--r--server-tools/instance-manager/manager.cc3
-rw-r--r--server-tools/instance-manager/options.cc57
-rw-r--r--server-tools/instance-manager/options.h3
7 files changed, 29 insertions, 69 deletions
diff --git a/server-tools/instance-manager/commands.cc b/server-tools/instance-manager/commands.cc
index 885233ca13c..ad9d46be1ed 100644
--- a/server-tools/instance-manager/commands.cc
+++ b/server-tools/instance-manager/commands.cc
@@ -644,11 +644,6 @@ Set_option::Set_option(Instance_map *instance_map_arg,
if ((instance= instance_map->find(name, len)))
{
instance_name= instance->options.instance_name;
- if (instance_map->single_defaults_file_option != NULL)
- single_defaults_file=
- strchr(instance_map->single_defaults_file_option, '=') + 1;
- else
- single_defaults_file= NULL;
/* add prefix for add_option */
if ((option_len_arg < MAX_OPTION_LEN - 1) ||
@@ -696,12 +691,8 @@ int Set_option::correct_file(int skip)
{
int error;
- if (single_defaults_file != NULL)
- error= modify_defaults_file(single_defaults_file, option,
- option_value, instance_name, skip);
- else
- error= modify_defaults_file(Options::default_config_file, option,
- option_value, instance_name, skip);
+ error= modify_defaults_file(Options::config_file, option,
+ option_value, instance_name, skip);
switch (error)
{
diff --git a/server-tools/instance-manager/commands.h b/server-tools/instance-manager/commands.h
index 7681b28aba5..bfd38d34889 100644
--- a/server-tools/instance-manager/commands.h
+++ b/server-tools/instance-manager/commands.h
@@ -187,7 +187,6 @@ protected:
public:
const char *instance_name;
uint instance_name_len;
- const char *single_defaults_file;
/* buffer for the option */
enum { MAX_OPTION_LEN= 1024 };
char option[MAX_OPTION_LEN];
diff --git a/server-tools/instance-manager/instance_map.cc b/server-tools/instance-manager/instance_map.cc
index cee8ba5a92d..7356d79e27a 100644
--- a/server-tools/instance-manager/instance_map.cc
+++ b/server-tools/instance-manager/instance_map.cc
@@ -113,10 +113,8 @@ err_new_instance:
C_MODE_END
-Instance_map::Instance_map(const char *default_mysqld_path_arg,
- const char *single_defaults_file_option_arg):
-mysqld_path(default_mysqld_path_arg),
-single_defaults_file_option(single_defaults_file_option_arg)
+Instance_map::Instance_map(const char *default_mysqld_path_arg):
+mysqld_path(default_mysqld_path_arg)
{
pthread_mutex_init(&LOCK_instance_map, 0);
}
@@ -240,20 +238,13 @@ int Instance_map::load()
/* the name of the program may be orbitrary here in fact */
argv_options[0]= "mysqlmanager";
- if (single_defaults_file_option != NULL)
- {
- argc= 2;
- argv_options[1]= single_defaults_file_option;
- argv_options[2]= '\0';
- }
- else
- argv_options[1]= '\0';
+ argv_options[1]= '\0';
/*
If the routine failed, we'll simply fallback to defaults in
complete_initialization().
*/
- if (my_search_option_files(Options::default_config_file, &argc,
+ if (my_search_option_files(Options::config_file, &argc,
(char ***) &argv, &args_used,
process_option, (void*) this))
log_info("Falling back to compiled-in defaults");
diff --git a/server-tools/instance-manager/instance_map.h b/server-tools/instance-manager/instance_map.h
index 84855712be5..666a16c7040 100644
--- a/server-tools/instance-manager/instance_map.h
+++ b/server-tools/instance-manager/instance_map.h
@@ -64,8 +64,7 @@ public:
int unlock();
int init();
- Instance_map(const char *default_mysqld_path_arg,
- const char *single_defaults_file_option_arg);
+ Instance_map(const char *default_mysqld_path_arg);
~Instance_map();
/* loads options from config files */
@@ -77,7 +76,6 @@ public:
public:
const char *mysqld_path;
- const char *single_defaults_file_option;
Guardian_thread *guardian;
private:
diff --git a/server-tools/instance-manager/manager.cc b/server-tools/instance-manager/manager.cc
index df854227c8e..2bb887716b0 100644
--- a/server-tools/instance-manager/manager.cc
+++ b/server-tools/instance-manager/manager.cc
@@ -68,8 +68,7 @@ void manager(const Options &options)
*/
User_map user_map;
- Instance_map instance_map(options.default_mysqld_path,
- options.single_defaults_file_option);
+ Instance_map instance_map(options.default_mysqld_path);
Guardian_thread guardian_thread(thread_registry,
&instance_map,
options.monitoring_interval);
diff --git a/server-tools/instance-manager/options.cc b/server-tools/instance-manager/options.cc
index 6fad798b49a..34a9a0792e9 100644
--- a/server-tools/instance-manager/options.cc
+++ b/server-tools/instance-manager/options.cc
@@ -36,8 +36,7 @@ const char *Options::pid_file_name= QUOTE(DEFAULT_PID_FILE_NAME);
const char *Options::socket_file_name= QUOTE(DEFAULT_SOCKET_FILE_NAME);
const char *Options::password_file_name= QUOTE(DEFAULT_PASSWORD_FILE_NAME);
const char *Options::default_mysqld_path= QUOTE(DEFAULT_MYSQLD_PATH);
-const char *Options::default_config_file= QUOTE(DEFAULT_CONFIG_FILE);
-const char *Options::single_defaults_file_option= 0; /* No default value */
+const char *Options::config_file= QUOTE(DEFAULT_CONFIG_FILE);
const char *Options::bind_address= 0; /* No default value */
const char *Options::user= 0; /* No default value */
uint Options::monitoring_interval= DEFAULT_MONITORING_INTERVAL;
@@ -144,7 +143,12 @@ static void usage()
printf("Usage: %s [OPTIONS] \n", my_progname);
my_print_help(my_long_options);
- print_defaults("my", default_groups);
+ printf("\nThe following options may be given as the first argument:\n"
+ "--print-defaults Print the program argument list and exit\n"
+ "--defaults-file=# Only read manager configuration and instance\n"
+ " setings from the given file #. The same file\n"
+ " will be used to modify configuration of instances\n"
+ " with SET commands.\n");
my_print_variables(my_long_options);
}
@@ -216,58 +220,37 @@ C_MODE_END
int Options::load(int argc, char **argv)
{
- int rc;
- char **original_argv;
- int original_argc;
- char *original_argv_buff[1024];
- int use_new_argv= 0;
-
saved_argv= argv;
- original_argv= original_argv_buff;
- original_argc= argc;
- if (argc >= 2 && is_prefix(argv[1],"--defaults-file="))
+ if (argc >= 2)
{
- if (is_prefix(argv[1],"--defaults-file="))
+ if (is_prefix(argv[1], "--defaults-file="))
{
- /* set --defaults-file, so that we read only this file */
- Options::single_defaults_file_option= argv[1];
+ Options::config_file= strchr(argv[1], '=') + 1;
}
- if (is_prefix(argv[1],"--defaults-extra-file="))
+ if (is_prefix(argv[1], "--defaults-extra-file=") ||
+ is_prefix(argv[1], "--no-defaults"))
{
- int argv_pos= 1;
-
- original_argv[0]= argv[0];
- use_new_argv= 1;
- /* skip --defaullts-extra-file */
- while (++argv_pos != argc)
- original_argv[argv_pos]=argv[argv_pos];
- original_argv[argv_pos]= 0;
/* the log is not enabled yet */
- fprintf(stderr, "--defaults-extra-file is not supported by IM."
- " Skipping the option. \n");
- original_argc--;
+ fprintf(stderr, "The --defaults-extra-file and --no-defaults options"
+ " are not supported by\n"
+ "Instance Manager. Program aborted.\n");
+ goto err;
}
}
- /* here load_defaults will save pointer to free allocated memory */
- if (use_new_argv)
- saved_argv= original_argv;
- else
- saved_argv= argv;
-
/* config-file options are prepended to command-line ones */
- load_defaults(default_config_file, default_groups, &original_argc,
+ load_defaults(config_file, default_groups, &argc,
&saved_argv);
- if ((rc= handle_options(&original_argc, &saved_argv, my_long_options,
- get_one_option)) != 0)
+ if ((handle_options(&argc, &saved_argv, my_long_options,
+ get_one_option)) != 0)
goto err;
return 0;
err:
- return rc;
+ return 1;
}
void Options::cleanup()
diff --git a/server-tools/instance-manager/options.h b/server-tools/instance-manager/options.h
index de9a61c2de3..761d366dfb4 100644
--- a/server-tools/instance-manager/options.h
+++ b/server-tools/instance-manager/options.h
@@ -36,11 +36,10 @@ struct Options
static const char *default_mysqld_path;
static const char *user;
/* the option which should be passed to process_default_option_files */
- static const char *single_defaults_file_option;
static uint monitoring_interval;
static uint port_number;
static const char *bind_address;
- static const char *default_config_file;
+ static const char *config_file;
/* argv pointer returned by load_defaults() to be used by free_defaults() */
static char **saved_argv;