summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Kreen2011-12-13 07:33:00 +0000
committerMarko Kreen2011-12-13 07:33:00 +0000
commit343290f159f2ffb85c73bb50880339335b4e5bae (patch)
tree471ddb4a98fcdf121d7abf2e4d815ac7d9c5803c
parent1f0497ca114ebf5af2ac1780d6dd676f385c1265 (diff)
londiste compare: use number of failed tables as exit code
-rw-r--r--python/londiste/compare.py2
-rw-r--r--python/londiste/syncer.py9
2 files changed, 10 insertions, 1 deletions
diff --git a/python/londiste/compare.py b/python/londiste/compare.py
index 7274d180..f053e60d 100644
--- a/python/londiste/compare.py
+++ b/python/londiste/compare.py
@@ -47,6 +47,8 @@ class Comparator(Syncer):
if src_str != dst_str:
self.log.warning("%s: Results do not match!" % dst_tbl)
+ return 1
+ return 0
if __name__ == '__main__':
script = Comparator(sys.argv[1:])
diff --git a/python/londiste/syncer.py b/python/londiste/syncer.py
index 5d4716d2..b5dd58d0 100644
--- a/python/londiste/syncer.py
+++ b/python/londiste/syncer.py
@@ -13,6 +13,8 @@ class ATable:
class Syncer(skytools.DBScript):
"""Walks tables in primary key order and checks if data matches."""
+ bad_tables = 0
+
def __init__(self, args):
"""Syncer init."""
skytools.DBScript.__init__(self, 'londiste3', args)
@@ -133,6 +135,9 @@ class Syncer(skytools.DBScript):
src_db.commit()
dst_db.commit()
+ # signal caller about bad tables
+ sys.exit(self.bad_tables)
+
def force_tick(self, setup_curs):
q = "select pgq.force_tick(%s)"
setup_curs.execute(q, [self.queue_name])
@@ -221,7 +226,9 @@ class Syncer(skytools.DBScript):
lock_db.commit()
# do work
- self.process_sync(src_tbl, dst_tbl, src_db, dst_db)
+ bad = self.process_sync(src_tbl, dst_tbl, src_db, dst_db)
+ if bad:
+ self.bad_tables += 1
# done
src_db.commit()