Sentinel: when writing config on disk, remember sentinels runid.

This commit is contained in:
antirez 2013-11-19 11:11:43 +01:00
parent 5450833d02
commit 0a35f65301

View File

@ -1320,10 +1320,11 @@ char *sentinelHandleConfiguration(char **argv, int argc) {
{
return "Wrong hostname or port for slave.";
}
} else if (!strcasecmp(argv[0],"known-sentinel") && argc == 4) {
} else if (!strcasecmp(argv[0],"known-sentinel") &&
(argc == 4 || argc == 5)) {
sentinelRedisInstance *si;
/* known-sentinel <name> <ip> <port> */
/* known-sentinel <name> <ip> <port> [runid] */
ri = sentinelGetMasterByName(argv[1]);
if (!ri) return "No such master with specified name.";
if ((si = createSentinelRedisInstance(NULL,SRI_SENTINEL,argv[2],
@ -1331,6 +1332,7 @@ char *sentinelHandleConfiguration(char **argv, int argc) {
{
return "Wrong hostname or port for sentinel.";
}
if (argc == 5) si->runid = sdsnew(argv[4]);
} else {
return "Unrecognized sentinel configuration statement.";
}
@ -1442,8 +1444,10 @@ void rewriteConfigSentinelOption(struct rewriteConfigState *state) {
while((de = dictNext(di2)) != NULL) {
ri = dictGetVal(de);
line = sdscatprintf(sdsempty(),
"sentinel known-sentinel %s %s %d",
master->name, ri->addr->ip, ri->addr->port);
"sentinel known-sentinel %s %s %d%s%s",
master->name, ri->addr->ip, ri->addr->port,
ri->runid ? " " : "",
ri->runid ? ri->runid : "");
rewriteConfigRewriteLine(state,"sentinel",line,1);
}
dictReleaseIterator(di2);