mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-25 16:16:29 +00:00
Add configuration file parameter "config_directory"
This enables explicit provision of an external configuration file
directory, which if set will be passed to "pg_ctl" as the -D
parameter. Otherwise "pg_ctl" will default to using the data directory,
which will cause some operations to fail if the configuration files
are not present there.
Note this is implemented primarily for feature completeness and for
development/testing purposes. Users who have installed "repmgr" from
a package should not rely on "pg_ctl" to stop/start/restart PostgreSQL,
instead they should set the appropriate "service_..._command" for their
operating system. For more details see:
https://repmgr.org/docs/4.0/configuration-service-commands.html
Note: in a future release, the presence of "config_directory" in repmgr.conf
will be used to implictly set "--copy-external-config-files=samepath" when
cloning a standby; this is a behaviour change so will be implemented in the
next major realease (repmgr 4.1).
Implements GitHub #424.
This commit is contained in:
@@ -1328,6 +1328,15 @@ check_cli_parameters(const int action)
|
||||
_("--no-upstream-connection only effective in Barman mode"));
|
||||
}
|
||||
}
|
||||
|
||||
if (strlen(config_file_options.config_directory))
|
||||
{
|
||||
if (runtime_options.copy_external_config_files == false)
|
||||
{
|
||||
item_list_append(&cli_warnings,
|
||||
_("\"config_directory\" set in repmgr.conf, but --copy-external-config-files not provided"));
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -2735,6 +2744,33 @@ data_dir_required_for_action(t_server_action action)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Copy the location of the configuration file directory into the
|
||||
* provided buffer; if "config_directory" provided, use that, otherwise
|
||||
* default to the data directory.
|
||||
*
|
||||
* This is primarily intended for use with "pg_ctl" (which itself shouldn't
|
||||
* be used outside of development environments).
|
||||
*/
|
||||
void
|
||||
get_node_config_directory(char *config_dir_buf)
|
||||
{
|
||||
if (config_file_options.config_directory[0] != '\0')
|
||||
{
|
||||
strncpy(config_dir_buf, config_file_options.config_directory, MAXPGPATH);
|
||||
return;
|
||||
}
|
||||
|
||||
if (config_file_options.data_directory[0] != '\0')
|
||||
{
|
||||
strncpy(config_dir_buf, config_file_options.data_directory, MAXPGPATH);
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
get_node_data_directory(char *data_dir_buf)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user