Revision b9eef123 ganeti/ganeti-eventd.py
b/ganeti/ganeti-eventd.py | ||
---|---|---|
2 | 2 |
# |
3 | 3 |
# Copyright (c) 2010 Greek Research and Technology Network |
4 | 4 |
# |
5 |
"""Ganeti notification daemon with amqp
|
|
5 |
"""Ganeti notification daemon with AMQP
|
|
6 | 6 |
|
7 | 7 |
A daemon to monitor the Ganeti job queue and publish job progress |
8 | 8 |
and Ganeti VM state notifications to the ganeti exchange |
... | ... | |
112 | 112 |
instance = instances.split('-')[0] |
113 | 113 |
routekey = "ganeti.%s.event.%s" % (instance,op.status) |
114 | 114 |
|
115 |
self.logger.debug("Delivering msg: %s (key=%s)"
|
|
116 |
% (json.dumps(msg), routekey))
|
|
115 |
self.logger.debug("Delivering msg: %s (key=%s)",
|
|
116 |
json.dumps(msg), routekey)
|
|
117 | 117 |
msg = amqp.Message(json.dumps(msg)) |
118 |
msg.properties["delivery_mode"] = 2 # Persistent |
|
118 |
msg.properties["delivery_mode"] = 2 # Persistent
|
|
119 | 119 |
|
120 | 120 |
while True: |
121 | 121 |
try: |
122 | 122 |
self.chan.basic_publish(msg, |
123 | 123 |
exchange=settings.EXCHANGE_GANETI, |
124 |
routing_key = routekey)
|
|
124 |
routing_key=routekey)
|
|
125 | 125 |
return |
126 | 126 |
except socket.error: |
127 |
self.logger.error("Server went away, reconnecting...")
|
|
127 |
self.logger.exception("Server went away, reconnecting...")
|
|
128 | 128 |
self.chan = self.open_channel() |
129 | 129 |
except Exception: |
130 |
self.logger.error("Uknown error (msg: %s)", msg)
|
|
130 |
self.logger.exception("Caught unexpected exception (msg: %s)", msg)
|
|
131 | 131 |
raise |
132 | 132 |
|
133 | 133 |
handler_logger = None |
Also available in: Unified diff