From 343290f159f2ffb85c73bb50880339335b4e5bae Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Tue, 13 Dec 2011 09:33:00 +0200 Subject: [PATCH] londiste compare: use number of failed tables as exit code --- python/londiste/compare.py | 2 ++ python/londiste/syncer.py | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) 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() -- 2.39.5