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"));