[trigger/event] Correction d'erreurs

* Il faut faire des copies des dicos et des listes, sinon on les modifie in place
 * routing_key foireuse (trigger.announce au lieu de trigger.event)
 * Exchange erroné (trigger.event au lieu de trigger)
This commit is contained in:
Pierre-Elliott Bécue 2014-06-14 17:13:03 +02:00
parent d45f55dae6
commit bfd2f185e2

View file

@ -26,7 +26,7 @@ class Event(cmb.BasicProducer):
"""
logger.info("Starting trigger Event program…")
super(Event, self).__init__(trigger_config.master, 'trigger.event', app_id)
super(Event, self).__init__(trigger_config.master, 'trigger', app_id)
self._connection = self.connect()
self.get_chan()
@ -49,7 +49,7 @@ class Event(cmb.BasicProducer):
raise
def announce(self, body):
self.send_message("trigger.announce", body)
self.send_message("trigger.event", body)
def diff_o_matic(body=()):
"""Fait un diff exhaustif des deux dicos"""
@ -57,26 +57,26 @@ def diff_o_matic(body=()):
if not body:
raise("diff_o_matic received %r as an argument, which is unusable." % (body,))
before = body[1] or {}
after = body[2] or {}
before = dict(body[1]) or {}
after = dict(body[2]) or {}
# set(dico) retourne un set de dico.keys()
keys_pool = set(before).union(set(after))
diff = {}
for key in key_pool:
for key in keys_pool:
if before.has_key(key):
if not isinstance(before[key], list):
blist = [before[key]]
else:
blist = before[key]
blist = list(before[key])
else:
blist = []
if after.has_key(key):
if not isinstance(after[key], list):
alist = [after[key]]
else:
alist = after[key]
alist = list(after[key])
else:
alist = []
moins, plus = compare_lists(blist, alist)