do not handle --cluster-yes for cluster fix mode
This commit is contained in:
parent
57b4fb0d84
commit
e8b09d2203
@ -1797,8 +1797,11 @@ static void usage(void) {
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int confirmWithYes(char *msg) {
|
static int confirmWithYes(char *msg, int force) {
|
||||||
if (config.cluster_manager_command.flags & CLUSTER_MANAGER_CMD_FLAG_YES) {
|
/* if force is true and --cluster-yes option is on,
|
||||||
|
* do not prompt for an answer */
|
||||||
|
if (force &&
|
||||||
|
(config.cluster_manager_command.flags & CLUSTER_MANAGER_CMD_FLAG_YES)) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4476,12 +4479,16 @@ static int clusterManagerFixSlotsCoverage(char *all_slots) {
|
|||||||
}
|
}
|
||||||
dictReleaseIterator(iter);
|
dictReleaseIterator(iter);
|
||||||
|
|
||||||
|
/* we want explicit manual confirmation from users for all the fix cases */
|
||||||
|
int force = 0;
|
||||||
|
|
||||||
/* Handle case "1": keys in no node. */
|
/* Handle case "1": keys in no node. */
|
||||||
if (listLength(none) > 0) {
|
if (listLength(none) > 0) {
|
||||||
printf("The following uncovered slots have no keys "
|
printf("The following uncovered slots have no keys "
|
||||||
"across the cluster:\n");
|
"across the cluster:\n");
|
||||||
clusterManagerPrintSlotsList(none);
|
clusterManagerPrintSlotsList(none);
|
||||||
if (confirmWithYes("Fix these slots by covering with a random node?")){
|
if (confirmWithYes("Fix these slots by covering with a random node?",
|
||||||
|
force)) {
|
||||||
listIter li;
|
listIter li;
|
||||||
listNode *ln;
|
listNode *ln;
|
||||||
listRewind(none, &li);
|
listRewind(none, &li);
|
||||||
@ -4507,7 +4514,8 @@ static int clusterManagerFixSlotsCoverage(char *all_slots) {
|
|||||||
if (listLength(single) > 0) {
|
if (listLength(single) > 0) {
|
||||||
printf("The following uncovered slots have keys in just one node:\n");
|
printf("The following uncovered slots have keys in just one node:\n");
|
||||||
clusterManagerPrintSlotsList(single);
|
clusterManagerPrintSlotsList(single);
|
||||||
if (confirmWithYes("Fix these slots by covering with those nodes?")){
|
if (confirmWithYes("Fix these slots by covering with those nodes?",
|
||||||
|
force)) {
|
||||||
listIter li;
|
listIter li;
|
||||||
listNode *ln;
|
listNode *ln;
|
||||||
listRewind(single, &li);
|
listRewind(single, &li);
|
||||||
@ -4539,7 +4547,7 @@ static int clusterManagerFixSlotsCoverage(char *all_slots) {
|
|||||||
printf("The following uncovered slots have keys in multiple nodes:\n");
|
printf("The following uncovered slots have keys in multiple nodes:\n");
|
||||||
clusterManagerPrintSlotsList(multi);
|
clusterManagerPrintSlotsList(multi);
|
||||||
if (confirmWithYes("Fix these slots by moving keys "
|
if (confirmWithYes("Fix these slots by moving keys "
|
||||||
"into a single node?")) {
|
"into a single node?", force)) {
|
||||||
listIter li;
|
listIter li;
|
||||||
listNode *ln;
|
listNode *ln;
|
||||||
listRewind(multi, &li);
|
listRewind(multi, &li);
|
||||||
@ -5502,7 +5510,8 @@ assign_replicas:
|
|||||||
}
|
}
|
||||||
clusterManagerOptimizeAntiAffinity(ip_nodes, ip_count);
|
clusterManagerOptimizeAntiAffinity(ip_nodes, ip_count);
|
||||||
clusterManagerShowNodes();
|
clusterManagerShowNodes();
|
||||||
if (confirmWithYes("Can I set the above configuration?")) {
|
int force = 1;
|
||||||
|
if (confirmWithYes("Can I set the above configuration?", force)) {
|
||||||
listRewind(cluster_manager.nodes, &li);
|
listRewind(cluster_manager.nodes, &li);
|
||||||
while ((ln = listNext(&li)) != NULL) {
|
while ((ln = listNext(&li)) != NULL) {
|
||||||
clusterManagerNode *node = ln->value;
|
clusterManagerNode *node = ln->value;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user