Commit graph

16 commits

Author SHA1 Message Date
unknown
5d8222cd6f changes to IM that came from Petr and JimW's review.
server-tools/instance-manager/IMService.cpp:
  make sure HandleServiceOptions returns 0 on success and 1 on failure
server-tools/instance-manager/mysqlmanager.cc:
  default return value is 1.
  simplify some code bits by just jumping to err on error.
  move options.cleanup inside the err block.  In this case, the err block
  is more than just an error block.  It is the terminating block
  for both error and success.  You set return_value to 0 for success
  or leave it as 1 for failure.  This simplies this function a bit.
server-tools/instance-manager/options.cc:
  remove the malloc for default password filename on Windows and replace
  with statically allocated memory.
  
  default Options:saved_argv to NULL so that we will know if we need
  to free it in cleanup()
  
  setup the default config file location for Windows inside the
  setup_windows_defaults function and remove this code from load()
  
  rework setup_windows_defaults so that it properly returns 0 on success
  and 1 on error and so it fills in the default location for the
  log file, password file, and config file.
2005-08-09 07:57:37 -06:00
unknown
9a2ea3700b Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-5.0
into  fedora.(none):/home/reggie/bk/im_patch


server-tools/instance-manager/manager.cc:
  Auto merged
server-tools/instance-manager/mysqlmanager.cc:
  Auto merged
server-tools/instance-manager/options.h:
  Auto merged
server-tools/instance-manager/commands.cc:
  final merge of IM port code for Windows
server-tools/instance-manager/instance_map.cc:
  final merge of IM port code for Windows
server-tools/instance-manager/options.cc:
  final merge of IM port code for Windows
2005-08-04 09:33:44 -05:00
unknown
34fa3be594 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
2005-07-21 14:21:23 +04:00
unknown
875b0e6322 initial import of Windows port of IM.
server-tools/instance-manager/commands.cc:
  type cleanups for compiling on Windows
  now using Options::config_file for the location of the single 
  my.cnf file we are using
server-tools/instance-manager/guardian.cc:
  pthread_mutex_lock and unlock do not return a value on Windows
  so we return 0 in all cases
server-tools/instance-manager/instance.cc:
  big changes here.
  Had to implement Windows versions of launch_and_wait and kill()
server-tools/instance-manager/instance.h:
  added some function defs
server-tools/instance-manager/instance_map.cc:
  pthread_mutex_lock and unlock do not return a value on Windows
  Also, now using only the file named as Options::config_file
server-tools/instance-manager/instance_options.h:
  added reference to port.h
server-tools/instance-manager/listener.cc:
  reworked and simplified the socket handling code.
  Added windows versions of the code that sets the sockets to be
  non-blocking and non-inheritable
server-tools/instance-manager/listener.h:
  change Options to always be a struct.  Really surprised GCC was 
  letting this go.  Options was declared to be struct in some places
  and class in other places.
server-tools/instance-manager/log.cc:
  added reference to port.h
server-tools/instance-manager/manager.cc:
  moved all the signal code inside some #ifndef __WIN__ blocks
server-tools/instance-manager/manager.h:
  change Options to always be a struct.  Really surprised GCC was 
  letting this go.  Options was declared to be struct in some places
  and class in other places.
server-tools/instance-manager/mysqlmanager.cc:
  added in the Windows service code.
server-tools/instance-manager/options.cc:
  Added in the windows options for running as a service and the code
  for loading settings only from a single file
server-tools/instance-manager/options.h:
  added definitions for the new Windows service vars and routines
server-tools/instance-manager/parse_output.cc:
  added reference to port.h
server-tools/instance-manager/priv.cc:
  added reference to port.h
server-tools/instance-manager/priv.h:
  linuxthreads should not be visible on Windows
server-tools/instance-manager/thread_registry.cc:
  more __WIN__ blocking
server-tools/instance-manager/user_map.cc:
  fixed passwd file code to handle files with \r\n line endings
server-tools/instance-manager/IMService.cpp:
  New BitKeeper file ``server-tools/instance-manager/IMService.cpp''
server-tools/instance-manager/IMService.h:
  New BitKeeper file ``server-tools/instance-manager/IMService.h''
server-tools/instance-manager/WindowsService.cpp:
  New BitKeeper file ``server-tools/instance-manager/WindowsService.cpp''
server-tools/instance-manager/WindowsService.h:
  New BitKeeper file ``server-tools/instance-manager/WindowsService.h''
server-tools/instance-manager/mysqlmanager.vcproj:
  New BitKeeper file ``server-tools/instance-manager/mysqlmanager.vcproj''
server-tools/instance-manager/port.h:
  New BitKeeper file ``server-tools/instance-manager/port.h''
2005-07-20 10:55:40 -05:00
unknown
6b4dbcb4db post-review fixes
include/my_sys.h:
  added prototype for the defaults correction function
libmysql/Makefile.shared:
  my_chsize added to libmysql to let my_correct_defaults_file be used from libmysql
mysys/default.c:
  New defaults function added we use it to correct defaults file. Currently the function doesn't lock defaults
  file. This is because of the linking and backwards-compatibility issues. This needs to be fixed later.
mysys/my_chsize.c:
  comment added
server-tools/instance-manager/buffer.cc:
  cleanup
server-tools/instance-manager/commands.cc:
  refactoring: removed do_command method from most of the classes
server-tools/instance-manager/commands.h:
  cleanup
server-tools/instance-manager/guardian.cc:
  cleanup
server-tools/instance-manager/instance.cc:
  cleanup
server-tools/instance-manager/instance_map.cc:
  cleanup
server-tools/instance-manager/instance_options.cc:
  cleanup
server-tools/instance-manager/instance_options.h:
  cleanup
server-tools/instance-manager/listener.cc:
  cleanup
server-tools/instance-manager/log.cc:
  cleanup
server-tools/instance-manager/manager.cc:
  cleanup
server-tools/instance-manager/messages.cc:
  new errors added
server-tools/instance-manager/mysql_connection.cc:
  cleanup
server-tools/instance-manager/mysql_manager_error.h:
  new error codes added
server-tools/instance-manager/mysqlmanager.cc:
  clenup
server-tools/instance-manager/options.cc:
  cleanup
server-tools/instance-manager/parse.cc:
  removed unused function
server-tools/instance-manager/parse.h:
  removed prototype
server-tools/instance-manager/protocol.cc:
  cleanup
server-tools/instance-manager/protocol.h:
  added enum to be used in protocol.cc instead of the constants
2005-05-16 01:54:02 +04:00
unknown
ddfdd6aa3b Fix for AIX compilation failure: sacred knowledge of my_global.h nature (it should be
included before any other include) was hidden from me.


server-tools/instance-manager/commands.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/commands.h:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/factory.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/guardian.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/guardian.h:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/instance.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/instance.h:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/instance_map.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/instance_map.h:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/instance_options.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/log.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/manager.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/messages.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/messages.h:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/mysql_connection.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/mysqlmanager.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/options.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/parse.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/parse_output.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/protocol.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/protocol.h:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/thread_registry.cc:
  Fix for AIX compilation failure & cleanup
server-tools/instance-manager/user_map.h:
  Fix for AIX compilation failure & cleanup
2005-03-22 02:04:14 +03:00
unknown
deba12cd34 some more cleanups and fixes
server-tools/instance-manager/commands.cc:
  typo fixed
server-tools/instance-manager/instance.cc:
  moved options.complete_initialization to the instance::complete_initialization
server-tools/instance-manager/instance.h:
  moved options.complete_initialization to the Instance::complete_initialization
server-tools/instance-manager/instance_map.cc:
  moved options.complete_initialization to the Instance::complete_initialization, added code to create
  default instance if none is given iin config. file
server-tools/instance-manager/instance_map.h:
  complete_initialization now returns an error in case of a problem
server-tools/instance-manager/instance_options.cc:
  some error handling added
server-tools/instance-manager/instance_options.h:
  error handling added
server-tools/instance-manager/manager.cc:
  error handling added
server-tools/instance-manager/mysqlmanager.cc:
  stop mysqlmanager if options were not loaded correctly
server-tools/instance-manager/options.cc:
  return-value added
server-tools/instance-manager/options.h:
  return-value added to the OPtions::load()
server-tools/instance-manager/parse_output.cc:
  no need to examine mysqld --help -v termination status
2005-02-15 04:38:33 +03:00
unknown
95e650e50a --user option added to mysqlmanager
server-tools/instance-manager/mysql_connection.cc:
  removed unsed method
server-tools/instance-manager/mysqlmanager.cc:
  add --user option handling
server-tools/instance-manager/options.cc:
  --user option added
server-tools/instance-manager/options.h:
  user option added + some cleanup
2005-02-05 14:04:49 +03:00
unknown
ab432d6c05 Various fixes (cleanups, valgrind, makefiles, ...)
server-tools/instance-manager/Makefile.am:
  increased default_monitoring interval
server-tools/instance-manager/guardian.cc:
  some fixes for proper shutdown
server-tools/instance-manager/guardian.h:
  removed init() prototype, as it was never used
server-tools/instance-manager/instance.cc:
  cleanup() function removed
server-tools/instance-manager/instance.h:
  cleanup() prototype removed
server-tools/instance-manager/instance_map.cc:
  Instance_map::cleanup() removed, as instances have nothing to clean up
server-tools/instance-manager/instance_map.h:
  Instance_map::cleanup() prototype removed
server-tools/instance-manager/instance_options.cc:
  added print_argv() function for debug purposes
server-tools/instance-manager/instance_options.h:
  declared print_argv()
server-tools/instance-manager/listener.cc:
  some fixed in listener for proper shutdown
server-tools/instance-manager/log.cc:
  cleanup
server-tools/instance-manager/log.h:
  cleanup
server-tools/instance-manager/manager.cc:
  some comments added
server-tools/instance-manager/mysqlmanager.cc:
  we need to free memory in the very end
server-tools/instance-manager/options.cc:
  fixed default options handling (as they were not working properly), added new method to cleanup Options
server-tools/instance-manager/options.h:
  cleanup() declared
server-tools/instance-manager/thread_registry.cc:
  cleanup
server-tools/instance-manager/user_map.cc:
  missing password file is not a critical error anymore, as IM should be able to work as mysqld_safe only
2005-02-03 20:48:58 +03:00
unknown
f7ef17dda1 merge
BitKeeper/etc/ignore:
  auto-union
server-tools/instance-manager/mysqlmanager.cc:
  Auto merged
sql/net_serv.cc:
  Auto merged
2004-12-09 04:22:28 +03:00
unknown
163d8b27aa portability fix
server-tools/instance-manager/mysqlmanager.cc:
  removed non-portable sys_siglist
2004-11-17 01:52:33 +03:00
unknown
b5536bb962 Some minor IM fixes
server-tools/instance-manager/Makefile.am:
  Makefile.am cleanup
server-tools/instance-manager/commands.cc:
  cleanup
server-tools/instance-manager/instance_map.cc:
  fix the problem caused thread deadlock (as load ends up in the find()
  call which now also locks an instance map mutex)
server-tools/instance-manager/listener.cc:
  portability fix
server-tools/instance-manager/manager.cc:
  Ignore SIGPIPE
server-tools/instance-manager/mysqlmanager.cc:
  cleanup
server-tools/instance-manager/options.cc:
  options renamed
2004-11-15 14:53:30 +03:00
unknown
a5435ea78a Intermediate commit - just to make new files visible to bk in the new
tree


server-tools/instance-manager/Makefile.am:
  Fixed IM linking to avoid using both mysys and libmysql as the define the
  same symbols and therefore conflict
server-tools/instance-manager/listener.cc:
  Added ability to listen network ports
server-tools/instance-manager/listener.h:
  Various additions to the Listener_thread_args
server-tools/instance-manager/log.cc:
  merge
server-tools/instance-manager/log.h:
  merge
server-tools/instance-manager/manager.cc:
  Fixes and additions to enable guardian functionality
server-tools/instance-manager/manager.h:
  Changed manager() signature
server-tools/instance-manager/mysqlmanager.cc:
  Various fixes
server-tools/instance-manager/options.cc:
  Added handling of default values for new options in the Options struct. (such
  as default_user, default_password, monitoring_interval e.t.c)
server-tools/instance-manager/options.h:
  Added new options to the Options struct
sql/net_serv.cc:
  Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM
server-tools/instance-manager/buffer.cc:
  Simple implementation of variable-length buffer
server-tools/instance-manager/command.cc:
  Abstract command. All commands are derived from Command class
server-tools/instance-manager/commands.h:
  Interfaces for all commands we have
server-tools/instance-manager/factory.cc:
  Commands factory. This class hides command instantiation. The idea is to
  handle various protocols this way. (different commands for different
  protocols
server-tools/instance-manager/guardian.cc:
  Guardian thread implementation (monitor and restart instances in case of a
  failure
server-tools/instance-manager/guardian.h:
  Guardian_thread and Guardian_thread_args class interface. The
  Guardian_thread is responsible for monitoring and restarting instances
server-tools/instance-manager/instance.cc:
  Instance class contains methods and data to manage a single instance
server-tools/instance-manager/instance.h:
  This file contains class an instance class interface. The class is
  responsible for starting/stopping an instance
server-tools/instance-manager/instance_map.cc:
  The instance repository. This class is also responsible for initialization
  of Instance class objects.
server-tools/instance-manager/instance_options.cc:
  The Instance_options class contains all methods to get and  handle options
  of an instance
server-tools/instance-manager/mysql_connection.cc:
  The class responsible for handling MySQL client/server protocol connections
server-tools/instance-manager/mysql_manager_error.h:
  The list of Instance Manger-specific errors
server-tools/instance-manager/parse.cc:
  Simple query parser
server-tools/instance-manager/parse.h:
  Parser interface
server-tools/instance-manager/protocol.cc:
  Here implemented functions used to handle mysql client/server protocol
server-tools/instance-manager/protocol.h:
  Interface for MySQL client/server protocol
server-tools/instance-manager/thread_registry.cc:
  Thread registry stores information about every thread. It's main function is
  to provide graceful shutdown for all threads.
server-tools/instance-manager/user_map.h:
  User map contains hash with user names and passwords
2004-10-23 11:32:52 +04:00
unknown
d531f2df62 Fix for the previous commit. I've added includes to the wrong file :(
server-tools/instance-manager/manager.cc:
  Unnecessary incudes removed
server-tools/instance-manager/mysqlmanager.cc:
  Added missing includes
2004-10-12 16:35:15 +04:00
unknown
df6047f047 First implementation for signal handling and multi-threading:
safe shutdown and signal deliverence to all threads in 
the manager process


server-tools/instance-manager/Makefile.am:
  added listener.{h,cc} (listener thread)
  and thread_repository.{h,cc} - 
  class to handle threads && signals
server-tools/instance-manager/log.h:
  minor fixes
server-tools/instance-manager/manager.cc:
  unnecessary error checking was removed 
  added implementation for signal thread
server-tools/instance-manager/manager.h:
  header guards're added
server-tools/instance-manager/mysqlmanager.cc:
  unnecessary error checking was removed
server-tools/instance-manager/options.cc:
  minor fixes
server-tools/instance-manager/options.h:
  removed wrong declaration
2003-08-19 19:55:20 +04:00
unknown
e561c3ee60 First implementation of instance-manager carcass:
logging, options, angel process.


configure.in:
  added support for instance-manager directory
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2003-08-16 21:44:24 +04:00