Add option "--initdb-no-pwprompt"

Previously repmgr passed the -W flag to initdb, which forced
manual input of a password; this option removes the -W flag
to make repetitive testing easier.
This commit is contained in:
Ian Barwick
2014-12-24 19:07:08 +09:00
parent ee69730f8b
commit 6f80cd5441
2 changed files with 11 additions and 4 deletions

View File

@@ -112,6 +112,7 @@ main(int argc, char **argv)
{"ignore-rsync-warning", no_argument, NULL, 'I'},
{"min-recovery-apply-delay", required_argument, NULL, 'r'},
{"verbose", no_argument, NULL, 'v'},
{"initdb-no-pwprompt", no_argument, NULL, 1},
{NULL, 0, NULL, 0}
};
@@ -212,6 +213,9 @@ main(int argc, char **argv)
case 'v':
runtime_options.verbose = true;
break;
case 1:
runtime_options.initdb_no_pwprompt = true;
break;
default:
usage();
exit(ERR_BAD_CONFIG);
@@ -1716,8 +1720,10 @@ do_witness_create(void)
if (!runtime_options.superuser[0])
strncpy(runtime_options.superuser, "postgres", MAXLEN);
sprintf(script, "%s/pg_ctl %s -D %s init -o \"-W -U %s\"", options.pg_bindir,
options.pgctl_options, runtime_options.dest_dir, runtime_options.superuser);
sprintf(script, "%s/pg_ctl %s -D %s init -o \"%s-U %s\"", options.pg_bindir,
options.pgctl_options, runtime_options.dest_dir,
runtime_options.initdb_no_pwprompt ? "" : "-W ",
runtime_options.superuser);
log_info("Initialize cluster for witness: %s.\n", script);
r = system(script);
@@ -1955,7 +1961,7 @@ help(const char *progname)
" to happen\n"));
printf(_(" -W, --wait wait for a master to appear\n"));
printf(_(" -r, --min-recovery-apply-delay=VALUE enable recovery time delay, value has to be a valid time atom (e.g. 5min)"));
printf(_(" --initdb-no-pwprompt don't require superuser password when running initdb\n"));
printf(_("\n%s performs some tasks like clone a node, promote it or making follow\n"), progname);
printf(_("another node and then exits.\n\n"));
printf(_("COMMANDS:\n"));

View File

@@ -62,6 +62,7 @@ typedef struct
bool force;
bool wait_for_master;
bool ignore_rsync_warn;
bool initdb_no_pwprompt;
char masterport[MAXLEN];
char localport[MAXLEN];
@@ -72,6 +73,6 @@ typedef struct
char min_recovery_apply_delay[MAXLEN];
} t_runtime_options;
#define T_RUNTIME_OPTIONS_INITIALIZER { "", "", "", "", "", "", "", DEFAULT_WAL_KEEP_SEGMENTS, false, false, false, false, "", "", 0, "" }
#define T_RUNTIME_OPTIONS_INITIALIZER { "", "", "", "", "", "", "", DEFAULT_WAL_KEEP_SEGMENTS, false, false, false, false, false, "", "", 0, "" }
#endif