* tentative merge of onelab myplc
[myplc.git] / plc.d / db
index d018893..8f5fc14 100755 (executable)
--- a/plc.d/db
+++ b/plc.d/db
@@ -7,7 +7,7 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2006 The Trustees of Princeton University
 #
-# $Id$
+# $Id: db 316 2007-04-24 17:25:09Z thierry $
 #
 
 # Source function library and configuration
@@ -36,27 +36,41 @@ function migrate_db()
        extension=${script##*.}
        if [ $index -gt $subversion ] ; then
            if [ "$extension" = "sql" ] ; then
+               dialog " - $script (dbdumped)"
+               dump_planetlab_db "before-$script"
                psql -U $PLC_DB_USER -f $file $PLC_DB_NAME
            elif [ -x $file ] ; then
+               dialog " - $script (dbdumped)"
+               dump_planetlab_db "before-$script"
                $file
+           else
+               dialog "\nWarning: migration $file not executable"
            fi
            check
        fi
     done
 }
 
-# Dumps the database
-function dump_db()
+# Dumps the database - optional argument to specify filename suffix
+function dump_planetlab_db()
 {
-    dump=/var/lib/pgsql/backups/$(date +"$PLC_DB_NAME.%Y-%m-%d-%H-%M.sql")
+    if [ -n "$1" ] ; then suffix="-$1" ; else suffix="" ; fi
+    dump=/var/lib/pgsql/backups/$(date +"$PLC_DB_NAME.%Y-%m-%d-%H-%M-%S${suffix}.sql")
     pg_dump -U $PLC_DB_USER $PLC_DB_NAME > $dump
     check
 }
 
+function dump_drupal_db()
+{
+    dump=/var/lib/pgsql/backups/$(date +"drupal.%Y-%m-%d-%H-%M-%S.sql")
+    pg_dump -U $PLC_DB_USER drupal > $dump
+    check
+}
+
 # Clean up old backups
 function clean_dumps()
 {
-    find /var/lib/pgsql/backups -name "$PLC_DB_NAME.*.sql" -atime +15 | xargs rm -f
+    find /var/lib/pgsql/backups '(' -name "$PLC_DB_NAME.*.sql" -o -name "drupal.*.sql" ')' -a -atime +15 | xargs rm -f
     check
 }
 
@@ -101,10 +115,11 @@ EOF
        ;;
 
     dump)
-       MESSAGE=$"Dumping the database"
+       MESSAGE=$"Dumping the databases in /var/lib/pgsql/backups"
        dialog "$MESSAGE"
 
-       dump_db
+       dump_planetlab_db
+       dump_drupal_db
        result "$MESSAGE"
        ;;