The branch, 1.0.112 has been updated
       via  ce7301315fcb7a6878eb4cea444c2772c13c2cb0 (commit)
       via  718061488d5636100e3159e8a5f7bf0baf089d5a (commit)
       via  7dc8fbc23be7a79e6164f1bee6c0aa4597b8e937 (commit)
       via  9d17f95e277628e98af2b04de0cf4f3ea2dbee0b (commit)
      from  1095be7fe3c0f8ab810f44d4fe8f22d6fbad5720 (commit)

http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=1.0.112


- Log -----------------------------------------------------------------
commit ce7301315fcb7a6878eb4cea444c2772c13c2cb0
Author: Ronnie Sahlberg <ronniesahlb...@gmail.com>
Date:   Mon May 24 15:20:39 2010 +1000

    new version 1.0.112-22
    
    +* Mon May 24 2010 : Version 1.0.112-22
    + - Fix bug in 62.cnfs to allow exports that are quoted.
    + - Add monitoring og Quorum for the 62.cnfs script
    + - Allow restoredb to restore a backup to to a different database

commit 718061488d5636100e3159e8a5f7bf0baf089d5a
Author: Ronnie Sahlberg <ronniesahlb...@gmail.com>
Date:   Thu May 20 11:26:37 2010 +1000

    Enhance the "ctdb restoredb" command so you can restore a backup into a 
different database.

commit 7dc8fbc23be7a79e6164f1bee6c0aa4597b8e937
Author: Ronnie Sahlberg <ronniesahlb...@gmail.com>
Date:   Mon May 24 12:33:47 2010 +1000

    Add monitoring of quorum and make the node UNHEALTHY when quarum is lost

commit 9d17f95e277628e98af2b04de0cf4f3ea2dbee0b
Author: Ronnie Sahlberg <ronniesahlb...@gmail.com>
Date:   Mon May 24 09:51:52 2010 +1000

    in 62.cnfs, lines in /etc/exports can have hte exports quoted,
    so strip off any initial " on the exports line

-----------------------------------------------------------------------

Summary of changes:
 config/events.d/62.cnfs    |   29 ++++++++++++++++++++++++++++-
 packaging/RPM/ctdb.spec.in |    6 +++++-
 tools/ctdb.c               |   16 +++++++++++-----
 3 files changed, 44 insertions(+), 7 deletions(-)


Changeset truncated at 500 lines:

diff --git a/config/events.d/62.cnfs b/config/events.d/62.cnfs
index 2e01d8a..2577675 100755
--- a/config/events.d/62.cnfs
+++ b/config/events.d/62.cnfs
@@ -7,8 +7,9 @@ loadconfig
 
 STATEDIR=$CTDB_BASE/state/gpfs
 
+
 # filesystems needed by nfs
-NFS_FSS=`cat /etc/exports | egrep -v "^#" | sed -e "s/[ \t]*[^ \t]*$//"`
+NFS_FSS=`cat /etc/exports | egrep -v "^#" | sed -e "s/[ \t]*[^ \t]*$//" -e 
"s/\"//g"`
 
 
 
@@ -22,6 +23,12 @@ check_if_healthy() {
                 exit 0
         }
 
+        [ -f "$STATEDIR/gpfsnoquorum" ] && {
+                logger No GPFS quorum. Node is UNHEALTHY
+                $CTDB_BASE/events.d/62.cnfs unhealthy "No GPFS quorum. Nodfe 
is UNHEALTHY."
+               exit 0
+       }
+
         logger All required GPFS resources are available. CNFS part is healthy.
         $CTDB_BASE/events.d/62.cnfs healthy
 }
@@ -81,11 +88,31 @@ case "$1" in
     # It checks that all required NFS filesystems are mounted 
     # and flags the node healthy if so.
     gpfsstartup)
+       # assume we always have quorum when starting
+       # we are only interested in the case when we explicitely
+       # lost quorum in an otherwise happy cluster
+        mkdir -p $STATEDIR
+        rm -f "$STATEDIR/gpfsnoquorum"
         logger "GPFS is is started."
         check_if_healthy
         ;;
 
 
+    gpfsquorumreached)
+        mkdir -p $STATEDIR
+        rm -f "$STATEDIR/gpfsnoquorum"
+        logger "GPFS quorum has been reached."
+        check_if_healthy
+        ;;
+
+    gpfsquorumloss)
+        mkdir -p $STATEDIR
+        touch "$STATEDIR/gpfsnoquorum"
+        logger "GPFS quorum has been lost."
+        $CTDB_BASE/events.d/62.cnfs unhealthy "GPFS quorum was lost! Marking 
node as UNHEALTHY."
+        ;;
+
+
 
 
 
diff --git a/packaging/RPM/ctdb.spec.in b/packaging/RPM/ctdb.spec.in
index d147a3f..42179e5 100644
--- a/packaging/RPM/ctdb.spec.in
+++ b/packaging/RPM/ctdb.spec.in
@@ -5,7 +5,7 @@ Vendor: Samba Team
 Packager: Samba Team <sa...@samba.org>
 Name: ctdb
 Version: 1.0.112
-Release: 21
+Release: 22
 Epoch: 0
 License: GNU GPL version 3
 Group: System Environment/Daemons
@@ -125,6 +125,10 @@ rm -rf $RPM_BUILD_ROOT
 %{_docdir}/ctdb/tests/bin/ctdb_transaction
 
 %changelog
+* Mon May 24 2010 : Version 1.0.112-22
+ - Fix bug in 62.cnfs to allow exports that are quoted.
+ - Add monitoring og Quorum for the 62.cnfs script
+ - Allow restoredb to restore a backup to to a different database
 * Fri May 21 2010 : Version 1.0.112-21
  - Fix a bug where we would fail to remove the natgw configuration
    and would leave a ip address for natgw still remaining on loopback.
diff --git a/tools/ctdb.c b/tools/ctdb.c
index 0976366..2939f88 100644
--- a/tools/ctdb.c
+++ b/tools/ctdb.c
@@ -3346,8 +3346,9 @@ static int control_restoredb(struct ctdb_context *ctdb, 
int argc, const char **a
        uint32_t generation;
        struct tm *tm;
        char tbuf[100];
+       char *dbname;
 
-       if (argc != 1) {
+       if (argc < 1 || argc > 2) {
                DEBUG(DEBUG_ERR,("Invalid arguments\n"));
                return -1;
        }
@@ -3366,6 +3367,11 @@ static int control_restoredb(struct ctdb_context *ctdb, 
int argc, const char **a
                return -1;
        }
 
+       dbname = dbhdr.name;
+       if (argc == 2) {
+               dbname = argv[1];
+       }
+
        outdata.dsize = dbhdr.size;
        outdata.dptr = talloc_size(tmp_ctx, outdata.dsize);
        if (outdata.dptr == NULL) {
@@ -3380,12 +3386,12 @@ static int control_restoredb(struct ctdb_context *ctdb, 
int argc, const char **a
        tm = localtime(&dbhdr.timestamp);
        strftime(tbuf,sizeof(tbuf)-1,"%Y/%m/%d %H:%M:%S", tm);
        printf("Restoring database '%s' from backup @ %s\n",
-               dbhdr.name, tbuf);
+               dbname, tbuf);
 
 
-       ctdb_db = ctdb_attach(ctdb, dbhdr.name, dbhdr.persistent, 0);
+       ctdb_db = ctdb_attach(ctdb, dbname, dbhdr.persistent, 0);
        if (ctdb_db == NULL) {
-               DEBUG(DEBUG_ERR,("Unable to attach to database '%s'\n", 
dbhdr.name));
+               DEBUG(DEBUG_ERR,("Unable to attach to database '%s'\n", 
dbname));
                talloc_free(tmp_ctx);
                return -1;
        }
@@ -4057,7 +4063,7 @@ static const struct {
        { "delip",           control_delip,             false,  false, "delete 
an ip address from a node", "<ip>"},
        { "eventscript",     control_eventscript,       true,   false, "run the 
eventscript with the given parameters on a node", "<arguments>"},
        { "backupdb",        control_backupdb,          false,  false, "backup 
the database into a file.", "<database> <file>"},
-       { "restoredb",        control_restoredb,        false,  false, "restore 
the database from a file.", "<file>"},
+       { "restoredb",        control_restoredb,        false,  false, "restore 
the database from a file.", "<file> [dbname]"},
        { "dumpdbbackup",    control_dumpdbbackup,      false,  true,  "dump 
database backup from a file.", "<file>"},
        { "wipedb",           control_wipedb,        false,     false, "wipe 
the contents of a database.", "<dbname>"},
        { "recmaster",        control_recmaster,        false,  false, "show 
the pnn for the recovery master."},


-- 
CTDB repository

Reply via email to