diff --git a/opensuse-monitor.py b/opensuse-monitor.py index 8479d10..18e5581 100755 --- a/opensuse-monitor.py +++ b/opensuse-monitor.py @@ -3,39 +3,46 @@ import json from pathlib import Path import pika import random -import sys import time MY_TASKS_DIR = Path(__file__).parent / "tasks" + def listen_events(): - connection = pika.BlockingConnection(pika.URLParameters("amqps://opensuse:opensuse@rabbit.opensuse.org")) + connection = pika.BlockingConnection( + pika.URLParameters("amqps://opensuse:opensuse@rabbit.opensuse.org") + ) channel = connection.channel() - channel.exchange_declare(exchange='pubsub', exchange_type='topic', passive=True, durable=False) + channel.exchange_declare( + exchange="pubsub", exchange_type="topic", passive=True, durable=False + ) result = channel.queue_declare("", exclusive=True) queue_name = result.method.queue - channel.queue_bind(exchange='pubsub', - queue=queue_name,routing_key='opensuse.obs.package.commit') + channel.queue_bind( + exchange="pubsub", queue=queue_name, routing_key="opensuse.obs.package.commit" + ) - print(' [*] Waiting for logs. To exit press CTRL+C') + print(" [*] Waiting for logs. To exit press CTRL+C") def callback(ch, method, properties, body): if method.routing_key not in ("opensuse.obs.package.commit",): return body = json.loads(body) - if 'project' in body and 'package' in body and body['project'] == 'openSUSE:Factory': - if '/' in body['package']: + if ( + "project" in body + and "package" in body + and body["project"] == "openSUSE:Factory" + ): + if "/" in body["package"]: return - (MY_TASKS_DIR / body['package']).touch() - print(" [x] %r:%r" % (method.routing_key, body['package'])) + (MY_TASKS_DIR / body["package"]).touch() + print(" [x] %r:%r" % (method.routing_key, body["package"])) - channel.basic_consume(queue_name, - callback, - auto_ack=True) + channel.basic_consume(queue_name, callback, auto_ack=True) channel.start_consuming() @@ -43,10 +50,10 @@ def listen_events(): def main(): while True: try: - listen_events(); - except pika.exceptions.ConnectionClosed: - time.sleep(random.randint(10,100)) + listen_events() + except (pika.exceptions.ConnectionClosed, pika.exceptions.AMQPHeartbeatTimeout): + time.sleep(random.randint(10, 100)) -if __name__ == '__main__': - main() +if __name__ == "__main__": + main()