Add dry-run mode for pglister_sync
authorMagnus Hagander <magnus@hagander.net>
Wed, 21 Mar 2018 09:51:19 +0000 (10:51 +0100)
committerMagnus Hagander <magnus@hagander.net>
Wed, 21 Mar 2018 09:51:19 +0000 (10:51 +0100)
To make it more testable, add an option that rolls back the transaction
at the end.

loader/pglister_sync.py

index 3638a58d3559b3bc2d34f3fd0dac3e7b85010580..dd1b0983f52216e3d990368a43a0ab1f4c589f9a 100755 (executable)
@@ -5,11 +5,17 @@
 
 import os
 import sys
+import argparse
 from ConfigParser import ConfigParser
 import psycopg2
 import requests
 
 if __name__=="__main__":
+       parser = argparse.ArgumentParser(description="Synchronize lists from pglister")
+       parser.add_argument('--dryrun', action='store_true', help="Don't commit changes to database")
+
+       args = parser.parse_args()
+
        cfg = ConfigParser()
        cfg.read('%s/archives.ini' % os.path.realpath(os.path.dirname(sys.argv[0])))
        try:
@@ -87,5 +93,9 @@ if __name__=="__main__":
        for n, in curs.fetchall():
                print "List %s exists in archives, but not in upstream! Should it be marked inactive?"
 
-       conn.commit()
+       if args.dryrun:
+               print "Dry-run, rolling back"
+               conn.rollback()
+       else:
+               conn.commit()
        conn.close()