diff options
-rw-r--r-- | contrib/pgxc_ctl/coord_cmd.c | 8 | ||||
-rw-r--r-- | contrib/pgxc_ctl/datanode_cmd.c | 17 | ||||
-rw-r--r-- | contrib/pgxc_ctl/gtm_cmd.c | 20 |
3 files changed, 30 insertions, 15 deletions
diff --git a/contrib/pgxc_ctl/coord_cmd.c b/contrib/pgxc_ctl/coord_cmd.c index aa68a9aed5..ec69a35760 100644 --- a/contrib/pgxc_ctl/coord_cmd.c +++ b/contrib/pgxc_ctl/coord_cmd.c @@ -82,9 +82,9 @@ cmd_t *prepare_initCoordinatorMaster(char *nodeName) remoteDirCheck[0] = '\0'; if (!forceInit) { - sprintf(remoteDirCheck, "if [ \"$(ls -A %s 2> /dev/null)\" ]; then echo 'ERROR: " + sprintf(remoteDirCheck, "if [ '$(ls -A %s 2> /dev/null)' ]; then echo 'ERROR: " "target directory (%s) exists and not empty. " - "Skip Coordinator initilialization'; exit; fi", + "Skip Coordinator initilialization'; exit; fi;", aval(VAR_coordMasterDirs)[jj], aval(VAR_coordMasterDirs)[jj] ); @@ -92,7 +92,7 @@ cmd_t *prepare_initCoordinatorMaster(char *nodeName) cmd = cmdInitdb = initCmd(aval(VAR_coordMasterServers)[jj]); snprintf(newCommand(cmdInitdb), MAXLINE, - "%s;" + "%s" "rm -rf %s;" "mkdir -p %s;" "PGXC_CTL_SILENT=1 initdb --nodename %s -D %s", @@ -269,7 +269,7 @@ cmd_t *prepare_initCoordinatorSlave(char *nodeName) remoteDirCheck[0] = '\0'; if (!forceInit) { - sprintf(remoteDirCheck, "if [ \"$(ls -A %s 2> /dev/null)\" ]; then echo 'ERROR: " + sprintf(remoteDirCheck, "if [ '$(ls -A %s 2> /dev/null)' ]; then echo 'ERROR: " "target directory (%s) exists and not empty. " "Skip Coordinator slave initilialization'; exit; fi;", aval(VAR_coordSlaveDirs)[idx], diff --git a/contrib/pgxc_ctl/datanode_cmd.c b/contrib/pgxc_ctl/datanode_cmd.c index 109c0f5a06..dff0001e76 100644 --- a/contrib/pgxc_ctl/datanode_cmd.c +++ b/contrib/pgxc_ctl/datanode_cmd.c @@ -65,6 +65,7 @@ cmd_t *prepare_initDatanodeMaster(char *nodeName) FILE *f; char timeStamp[MAXTOKEN+1]; char remoteDirCheck[MAXPATH * 2 + 128]; + char remoteWalDirCheck[MAXPATH * 2 + 128]; bool wal; if ((idx = datanodeIdx(nodeName)) < 0) @@ -78,19 +79,20 @@ cmd_t *prepare_initDatanodeMaster(char *nodeName) wal = false; remoteDirCheck[0] = '\0'; + remoteWalDirCheck[0] = '\0'; if (!forceInit) { - sprintf(remoteDirCheck, "if [ \"$(ls -A %s 2> /dev/null)\" ]; then echo 'ERROR: " + sprintf(remoteDirCheck, "if [ '$(ls -A %s 2> /dev/null)' ]; then echo 'ERROR: " "target directory (%s) exists and not empty. " - "Skip Datanode initilialization'; exit; fi", + "Skip Datanode initilialization'; exit; fi;", aval(VAR_datanodeMasterDirs)[idx], aval(VAR_datanodeMasterDirs)[idx] ); if (wal) { - sprintf(remoteDirCheck, "if [ \"$(ls -A %s 2> /dev/null)\" ]; then echo 'ERROR: " + sprintf(remoteWalDirCheck, "if [ '$(ls -A %s 2> /dev/null)' ]; then echo 'ERROR: " "target directory (%s) exists and not empty. " - "Skip Datanode initilialization'; exit; fi", + "Skip Datanode initilialization'; exit; fi;", aval(VAR_datanodeMasterWALDirs)[idx], aval(VAR_datanodeMasterWALDirs)[idx] ); @@ -101,10 +103,11 @@ cmd_t *prepare_initDatanodeMaster(char *nodeName) /* Build each datanode's initialize command */ cmd = cmdInitdb = initCmd(aval(VAR_datanodeMasterServers)[idx]); snprintf(newCommand(cmdInitdb), MAXLINE, - "%s;" + "%s %s" "rm -rf %s;" "mkdir -p %s; PGXC_CTL_SILENT=1 initdb --nodename %s %s %s -D %s", remoteDirCheck, + remoteWalDirCheck, aval(VAR_datanodeMasterDirs)[idx], aval(VAR_datanodeMasterDirs)[idx], aval(VAR_datanodeNames)[idx], wal ? "-X" : "", @@ -296,9 +299,9 @@ cmd_t *prepare_initDatanodeSlave(char *nodeName) remoteDirCheck[0] = '\0'; if (!forceInit) { - sprintf(remoteDirCheck, "if [ \"$(ls -A %s 2> /dev/null)\" ]; then echo 'ERROR: " + sprintf(remoteDirCheck, "if [ '$(ls -A %s 2> /dev/null)' ]; then echo 'ERROR: " "target directory (%s) exists and not empty. " - "Skip Datanode initilialization'; exit; fi", + "Skip Datanode initilialization'; exit; fi;", aval(VAR_datanodeSlaveDirs)[idx], aval(VAR_datanodeSlaveDirs)[idx] ); diff --git a/contrib/pgxc_ctl/gtm_cmd.c b/contrib/pgxc_ctl/gtm_cmd.c index 3994bda73a..8371e101c0 100644 --- a/contrib/pgxc_ctl/gtm_cmd.c +++ b/contrib/pgxc_ctl/gtm_cmd.c @@ -58,9 +58,9 @@ cmd_t *prepare_initGtmMaster(bool stop) remoteDirCheck[0] = '\0'; if (!forceInit) { - sprintf(remoteDirCheck, "if [ \"$(ls -A %s 2> /dev/null)\" ]; then echo 'ERROR: " + sprintf(remoteDirCheck, "set -x; if [ '$(ls -A %s 2> /dev/null)' ]; then echo 'ERROR: " "target directory (%s) exists and not empty. " - "Skip GTM initilialization'; exit; fi", + "Skip GTM initilialization'; exit; fi;", sval(VAR_gtmMasterDir), sval(VAR_gtmMasterDir) ); @@ -69,7 +69,7 @@ cmd_t *prepare_initGtmMaster(bool stop) /* Kill current gtm, bild work directory and run initgtm */ cmdInitGtmMaster = initCmd(sval(VAR_gtmMasterServer)); snprintf(newCommand(cmdInitGtmMaster), MAXLINE, - "%s;" + "%s" "[ -f %s/gtm.pid ] && gtm_ctl -D %s -m immediate -Z gtm stop;" "rm -rf %s;" "mkdir -p %s;" @@ -567,7 +567,6 @@ cmd_t *prepare_stopGtmMaster(void) cmdGtmCtl = initCmd(sval(VAR_gtmMasterServer)); snprintf(newCommand(cmdGtmCtl), MAXLINE, "gtm_ctl stop -Z gtm -D %s", - sval(VAR_gtmMasterDir), sval(VAR_gtmMasterDir)); return(cmdGtmCtl); } @@ -1043,6 +1042,7 @@ cmd_t *prepare_initGtmProxy(char *nodeName) FILE *f; char timestamp[MAXTOKEN+1]; char **fileList = NULL; + char remoteDirCheck[MAXPATH * 2 + 128]; if ((idx = gtmProxyIdx(nodeName)) < 0) { @@ -1050,13 +1050,25 @@ cmd_t *prepare_initGtmProxy(char *nodeName) return NULL; } + remoteDirCheck[0] = '\0'; + if (!forceInit) + { + sprintf(remoteDirCheck, "if [ '$(ls -A %s 2> /dev/null)' ]; then echo 'ERROR: " + "target directory (%s) exists and not empty. " + "Skip GTM proxy initilialization'; exit; fi;", + aval(VAR_gtmProxyDirs)[idx], + aval(VAR_gtmProxyDirs)[idx]); + } + /* Build directory and run initgtm */ cmdInitGtm = initCmd(aval(VAR_gtmProxyServers)[idx]); snprintf(newCommand(cmdInitGtm), MAXLINE, + "%s" "[ -f %s/gtm_proxy.pid ] && gtm_ctl -D %s -m immediate -Z gtm_proxy stop;" "rm -rf %s;" "mkdir -p %s;" "PGXC_CTL_SILENT=1 initgtm -Z gtm_proxy -D %s", + remoteDirCheck, aval(VAR_gtmProxyDirs)[idx], aval(VAR_gtmProxyDirs)[idx], aval(VAR_gtmProxyDirs)[idx], |