update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
authorTero Marttila <terom@paivola.fi>
Tue, 20 Mar 2012 14:40:14 +0200
changeset 582 b0c761c4d5f8
parent 581 6292cb597954
child 583 b65ce9123039
update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
lib/update.args
lib/update.operations
--- a/lib/update.args	Tue Mar 20 14:35:38 2012 +0200
+++ b/lib/update.args	Tue Mar 20 14:40:14 2012 +0200
@@ -29,7 +29,8 @@
 COMMIT_FORCE=
 COMMIT_MSG=' '
 
-DEPLOY_SKIP=
+DEPLOY_NOOP=
+DEPLOY_FORCE=
 
 ## Output command-line argument help.
 function help_args {
@@ -59,6 +60,10 @@
     -C      do not commit changes
     -c      commit changes
     -m MSG  commit message
+
+Deploy:
+    -R      do not reload zones
+    -r      force reload zones
 END
 }
 
@@ -66,7 +71,7 @@
 function parse_args {
     OPTIND=1
 
-    while getopts 'hd:qvDVpFSsnCcm:' opt "$@"; do
+    while getopts 'hd:qvDVpFSsnCcm:Rr' opt "$@"; do
         case $opt in
             h)  
                 help_args $0
@@ -102,12 +107,15 @@
                 UPDATE_DIFF=y
                 SERIAL_NOUPDATE=y
                 COMMIT_SKIP=y
-                DEPLOY_SKIP=y
+                DEPLOY_NOOP=y
                 ;;
 
             C)  COMMIT_SKIP=y ;;
             c)  COMMIT_FORCE=y ;;
             m)  COMMIT_MSG="$OPTARG" ;;
+
+            R)  DEPLOY_NOOP=y   ;;
+            r)  DEPLOY_FORCE=y  ;;
            
             ?)  
                 die 
--- a/lib/update.operations	Tue Mar 20 14:35:38 2012 +0200
+++ b/lib/update.operations	Tue Mar 20 14:40:14 2012 +0200
@@ -217,6 +217,13 @@
     fi
 }
 
+# Run rndc reload
+function do_reload {
+    # run
+    indent "        rndc: " \
+        $RNDC reload
+}
+
 ## Load update zonefiles into bind:
 #
 #   deploy_zones    
@@ -225,18 +232,24 @@
 function deploy_zones {
     local msg="Reload zones"
 
-    if [ $DEPLOY_SKIP ]; then
-        log_skip    "$msg: skipped"
+    if [ $DEPLOY_FORCE ]; then
+        log_force  "$msg..."
+        
+        do_reload
+
+    elif [ $DEPLOY_NOOP ]; then
+        log_noop    "$msg: skipped"
     
     elif [ ! -r $RNDC_KEY ]; then
         log_error   "  $msg: rndc: permission denied: $RNDC_KEY"
 
+        return 1
+
     else
         log_update  "$msg..."
 
         # run
-        indent "        rndc: " \
-            $RNDC reload
+        do_reload
     fi
 }
 ## Commit changes in $DATA to version control: