]> gitweb.michael.orlitzky.com - untangle-https-backup.git/commitdiff
Catch and report HTTPExceptions in addition to HTTPErrors.
authorMichael Orlitzky <michael@orlitzky.com>
Sun, 1 Jan 2017 22:06:51 +0000 (17:06 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 1 Jan 2017 22:06:51 +0000 (17:06 -0500)
bin/untangle-https-backup

index dab5c1807bb8e9c712c34d0a184df270f93a15e9..69e46ba0c6af76de91f61a8db725c7df4b25fd26 100755 (executable)
@@ -5,6 +5,7 @@ Back up Untangle configurations via the web admin UI.
 
 from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
 import configparser
+from http.client import HTTPException
 from os import chmod
 from urllib.error import HTTPError, URLError
 from sys import stderr
@@ -51,13 +52,22 @@ for section in config.sections():
         chmod(filename, 0o600)
 
     # If it didn't work, but in a predictable way (some host is down),
-    # then we report that error and keep going.
+    # then we report that error and keep going. At least one sort of
+    # HTTPException (BadStatusLine) is not translated by urllib into
+    # an HTTPError, so we catch HTTPExceptions too.
     except URLError as e:
-        msg =  u.name + ': ' + str(e.reason) + ' from ' + u.host
+        tpl = '{:s}: {:s} from {:s}'
+        msg = tpl.format(u.name, str(e.reason), u.host)
         print(msg, file=stderr)
         status = EXIT_BACKUPS_FAILED
     except HTTPError as e:
-        msg =  u.name + ': ' + 'HTTP error ' + str(e.code) + ' from ' + u.host
+        tpl = '{:s}: HTTP error {:s} from {:s}'
+        msg = tpl.format(u.name, str(e.code), u.host)
+        print(msg, file=stderr)
+        status = EXIT_BACKUPS_FAILED
+    except HTTPException as e:
+        tpl = '{:s}: HTTP exception {:s} from {:s}'
+        msg = tpl.format(u.name, repr(e), u.host)
         print(msg, file=stderr)
         status = EXIT_BACKUPS_FAILED