]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
add a new command for ctdb_control to trigger a recovery
authorRonnie Sahlberg <sahlberg@ronnie>
Wed, 23 May 2007 22:08:45 +0000 (08:08 +1000)
committerRonnie Sahlberg <sahlberg@ronnie>
Wed, 23 May 2007 22:08:45 +0000 (08:08 +1000)
(This used to be ctdb commit 6da2a4ab1b9c955d55a1c6817506a74539623892)

1  2 
ctdb/tools/ctdb_control.c

index 992991c2324f35f1127f55fcc694ab0b72e27772,fd564fda701a3dd2a18b33f7148ad3bd95a449aa..8b765fe12197678e593770884a15318cc8968aac
@@@ -59,7 -59,8 +59,9 @@@ static void usage(void
                "  setmonmode <vnn> <mode>            set monitoring mode\n"
                "  attach <dbname>                    attach a database\n"
                "  getpid <vnn>                       get the pid of a ctdb daemon\n"
+               "  dumpmemory <vnn|all>               dump memory map to log\n"
                "  shutdown <vnn>                     shutdown a remote ctdb\n"
++              "  recovery <vnn>                     trigger a recovery\n"
                "  freeze <vnn|all>                   freeze a node\n"
                "  thaw <vnn|all>                     thaw a node\n"
        );
@@@ -372,6 -373,6 +374,28 @@@ static int control_shutdown(struct ctdb
        return 0;
  }
  
++/*
++  trigger a recovery
++ */
++static int control_recovery(struct ctdb_context *ctdb, int argc, const char **argv)
++{
++      int ret;
++
++
++      ret = ctdb_ctrl_freeze(ctdb, timeval_current_ofs(timelimit, 0), CTDB_CURRENT_NODE);
++      if (ret != 0) {
++              printf("Unable to freeze node\n");
++              return ret;
++      }
++      ret = ctdb_ctrl_setrecmode(ctdb, timeval_current_ofs(timelimit, 0), CTDB_CURRENT_NODE, CTDB_RECOVERY_ACTIVE);
++      if (ret != 0) {
++              printf("Unable to set recovery mode\n");
++              return ret;
++      }
++
++      return 0;
++}
++
  /*
    display recovery mode of a remote node
   */
@@@ -1055,6 -1056,6 +1079,7 @@@ int main(int argc, const char *argv[]
                { "dumpmemory", control_dumpmemory },
                { "getpid", control_getpid },
                { "shutdown", control_shutdown },
++              { "recovery", control_recovery },
                { "freeze", control_freeze },
                { "thaw", control_thaw },
        };