26#ifndef ROUTER_MYSQL_ROUTER_CONF_INCLUDED
27#define ROUTER_MYSQL_ROUTER_CONF_INCLUDED
57 std::ostream &out_stream = std::cout,
58 std::ostream &err_stream = std::cerr)
68 const std::string &bootstrap_uri =
"") noexcept;
90 bool allow_standalone,
const std::string &plugin_folder
112 FRIEND_TEST(ConfigGeneratorTest, ssl_stage1_cmdline_arg_parse);
113 FRIEND_TEST(ConfigGeneratorTest, ssl_stage2_bootstrap_connection);
114 FRIEND_TEST(ConfigGeneratorTest, ssl_stage3_create_config);
138 std::unique_ptr<mysqlrouter::MySQLSession>
mysql_;
156 const std::string &save_name,
157 const std::string &option_value);
Defining the commandline argument handler class CmdArgHandler.
Handles command line arguments.
Definition: arg_handler.h:141
KeyringInfo class encapsulates loading and storing master key using master-key-reader and master-key-...
Definition: keyring_info.h:76
Definition: router_conf.h:54
virtual void prepare_command_options(CmdArgHandler &arg_handler, const std::string &bootstrap_uri="") noexcept
Definition: router_conf.cc:212
bool skipped() const
Definition: router_conf.h:73
bool is_bootstrap() const
Definition: router_conf.h:70
MySQLRouterConf(KeyringInfo &keyring_info, std::ostream &out_stream=std::cout, std::ostream &err_stream=std::cerr)
Definition: router_conf.h:56
bool skipped_
Definition: router_conf.h:142
std::string get_bootstrap_socket() const
Definition: router_conf.cc:1101
int get_read_timeout() const
Definition: router_conf.cc:1091
virtual bool is_legacy() const
Definition: router_conf.h:71
KeyringInfo & keyring_info_
Definition: router_conf.h:140
std::ostream & err_stream_
Definition: router_conf.h:145
std::string bootstrap_directory_
Valueof the argument passed to the –directory command line option.
Definition: router_conf.h:125
void assert_bootstrap_mode(const std::string &option_name) const
verify that bootstrap option (–bootstrap or -B) was given by user.
Definition: router_conf.cc:1074
mysqlrouter::MySQLSession * session() const
Definition: router_conf.h:86
mysql_harness::AutoCleaner auto_cleaner_
Definition: router_conf.h:170
std::map< std::string, std::vector< std::string > > bootstrap_multivalue_options_
key/list-of-values map of additional configuration options for bootstrap
Definition: router_conf.h:135
void commit()
Definition: router_conf.h:99
mysqlrouter::URI target_uri_
Definition: router_conf.h:137
void connect()
Definition: router_conf.cc:1106
std::map< std::string, std::string > get_config_cmdln_options() const
Definition: router_conf.cc:1163
std::map< std::string, std::string > bootstrap_options_
key/value map of additional configuration options for bootstrap
Definition: router_conf.h:129
std::string bootstrap_uri_
Value of the argument passed to the -B or –bootstrap command line option for bootstrapping.
Definition: router_conf.h:121
void save_bootstrap_option_not_empty(const std::string &option_name, const std::string &save_name, const std::string &option_value)
Saves the selected command line option in the internal options array after verifying it's value not e...
Definition: router_conf.cc:1064
int get_connect_timeout() const
Definition: router_conf.cc:1081
mysqlrouter::MySQLAccountsCleaner & get_accounts_cleaner()
Definition: router_conf.h:104
std::unique_ptr< mysqlrouter::MySQLSession > mysql_
Definition: router_conf.h:138
mysqlrouter::MySQLAccountsCleaner accounts_cleaner_
Definition: router_conf.h:171
std::ostream & out_stream_
Definition: router_conf.h:144
const std::map< std::string, std::string > & bootstrap_options() const
Definition: router_conf.h:79
void add_option(const std::string &key, const std::string &value)
Definition: router_conf.h:75
virtual ~MySQLRouterConf()=default
std::string bootstrap(const std::string &program_name, const mysql_harness::Path &origin, bool allow_standalone, const std::string &plugin_folder, mysqlrouter::SysUserOperationsBase *sys_user_operations=nullptr)
Definition: router_conf.cc:1240
std::string plugin_folder_
Definition: router_conf.h:147
Manage the MySQL Router application.
Definition: router_app.h:81
Automatic cleanup on scope exit utility class.
Definition: auto_cleaner.h:62
void clear()
Definition: auto_cleaner.cc:87
Class representing a path in a file system.
Definition: filesystem.h:63
Definition: accounts_cleaner.h:35
void clear()
Definition: accounts_cleaner.h:66
Definition: mysql_session.h:157
Base class to allow multiple SysUserOperations implementations.
Definition: sys_user_operations.h:45
Parse and create URIs according to RFC3986.
Definition: uri.h:66
Definition: router_conf.h:174
silent_exception()
Definition: router_conf.h:176
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
Definition: gcs_xcom_synode.h:64
required string key
Definition: replication_asynchronous_connection_failover.proto:60