diff --git a/opensuse-monitor.py b/opensuse-monitor.py new file mode 100755 index 0000000..3a1e569 --- /dev/null +++ b/opensuse-monitor.py @@ -0,0 +1,37 @@ +#!/usr/bin/python3 +import json +from pathlib import Path +import pika +import sys + +MY_TASKS_DIR = Path(__file__).parent / "tasks" + +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=True) + +result = channel.queue_declare("", exclusive=True) +queue_name = result.method.queue + +channel.queue_bind(exchange='pubsub', + queue=queue_name,routing_key='#') + +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']: + return + + (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.start_consuming()