From b8a686fc520d38f2b71b450d7c615c09be9eb1d2 Mon Sep 17 00:00:00 2001 From: gord chung Date: Sat, 25 Nov 2017 19:23:55 -0500 Subject: [PATCH] sort when using groupby groupby requires items to be sorted as it's clumping consecutive items together. also, just use itemgetter instead of lambda Change-Id: I1676fc60ebc2c9ff03ea00cc67061fdfb3b50868 --- oslo_messaging/notify/dispatcher.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/oslo_messaging/notify/dispatcher.py b/oslo_messaging/notify/dispatcher.py index caa80e05a..90d135b2b 100644 --- a/oslo_messaging/notify/dispatcher.py +++ b/oslo_messaging/notify/dispatcher.py @@ -16,6 +16,7 @@ import itertools import logging +import operator import six @@ -118,9 +119,9 @@ class BatchNotificationDispatcher(NotificationDispatcher): """Dispatch notification messages to the appropriate endpoint method. """ - messages_grouped = itertools.groupby(( - self._extract_user_message(m) - for m in incoming), lambda x: x[0]) + messages_grouped = itertools.groupby(sorted( + (self._extract_user_message(m) for m in incoming), + key=operator.itemgetter(0)), operator.itemgetter(0)) requeues = set() for priority, messages in messages_grouped: