mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
WL #2713 Change IM behaviour so, that it only reads and alters one config file only.
Implemented on brian's request. server-tools/instance-manager/Makefile.am: define default config file server-tools/instance-manager/commands.cc: Use specified or default file to edit with SET commands instead of hardcoded file server-tools/instance-manager/commands.h: add member to SET commands server-tools/instance-manager/instance_map.cc: rename first_option -> single_defaults_option, made logging a bit more verbose server-tools/instance-manager/instance_map.h: rename first_option -> single_defaults_file + made it public server-tools/instance-manager/manager.cc: rename first_option -> single_defaults_file server-tools/instance-manager/mysqlmanager.cc: goto generic error label instead of simple return server-tools/instance-manager/options.cc: skip --defaults-extra file and give a message if it was specified, made IM to read one config file only server-tools/instance-manager/options.h: added new members to the option structure
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
#include "mysql_manager_error.h"
|
||||
#include "protocol.h"
|
||||
#include "buffer.h"
|
||||
#include "options.h"
|
||||
|
||||
#include <m_string.h>
|
||||
#include <mysql.h>
|
||||
@@ -643,6 +644,12 @@ 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) ||
|
||||
(option_value_len_arg < MAX_OPTION_LEN - 1))
|
||||
@@ -689,15 +696,26 @@ int Set_option::correct_file(int skip)
|
||||
{
|
||||
int error;
|
||||
|
||||
error= modify_defaults_file("/etc/my.cnf", option,
|
||||
option_value, instance_name, skip);
|
||||
if (error > 0)
|
||||
return ER_OUT_OF_RESOURCES;
|
||||
else if (error < 0)
|
||||
return ER_ACCESS_OPTION_FILE;
|
||||
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);
|
||||
|
||||
/* everything was fine */
|
||||
return 0;
|
||||
switch (error)
|
||||
{
|
||||
case 0:
|
||||
return 0; /* everything was fine */
|
||||
case 1:
|
||||
return ER_OUT_OF_RESOURCES;
|
||||
case 2:
|
||||
return ER_ACCESS_OPTION_FILE;
|
||||
default:
|
||||
DBUG_ASSERT(0); /* should never get here */
|
||||
}
|
||||
|
||||
return 0; /* keep compiler happy */
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user