X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=ud-replicated;h=8bef0a51d327fdeb18a6f140db908f63818f8759;hb=b13771828d0938c805b3824bd2c7162933946ad3;hp=1e19ef4ac0b14470f5d2c19de616391a34e52d33;hpb=b56535412882ea06155eb3faaaa2357c52a4279e;p=mirror%2Fuserdir-ldap.git diff --git a/ud-replicated b/ud-replicated index 1e19ef4..8bef0a5 100755 --- a/ud-replicated +++ b/ud-replicated @@ -25,6 +25,7 @@ from dsa_mq.connection import Connection from dsa_mq.config import Config +import json import logging import logging.handlers import optparse @@ -76,8 +77,17 @@ last_run = 0 def do_replicate(message): global last_run last_update = int(time.time()) - LOG.debug("Got message at %s: %s" % (last_update, message['message'])) - if last_run > message.get('timestamp', 0): + timestamp = last_update + try: + message = json.loads(message) + except ValueError: + pass + + if isinstance(message, dict): + timestamp = message.get('timestamp', last_update) + message = message.get('message', 'update required') + LOG.debug("Got message at %s: %s" % (last_update, message)) + if last_run > timestamp, last_update): return command = ['/usr/bin/ud-replicate'] @@ -94,7 +104,7 @@ def do_replicate(message): LOG.debug('%s finished with ret: 0' % ' '.join(command)) finally: os.environ['TERM'] = old_term - last_run = int(time.time()) + last_run = last_update def main(): conn = Connection(conf=mq_conf) @@ -115,5 +125,7 @@ def main(): sys.exit(0) if __name__ == '__main__': - do_replicate('startup complete') + do_replicate(json.dumps( + {'timestamp': time.time(), + 'message': 'startup complete'})) main()