From 6e409a91bad01adcf281eea374755f83f6576472 Mon Sep 17 00:00:00 2001 From: Ross Williams Date: Wed, 13 Feb 2019 04:28:35 -0500 Subject: [PATCH] Correct usage of sorted() in mongodb_user (#46792) * Correct usage of sorted() in mongodb_user sorted() can't be called on a list of dicts without supplying a key parameter. This is explained really well in the Sorting HOWTO https://docs.python.org/3.6/howto/sorting.html#key-functions This commit fixes #46791 * Fix PEP8 issues --- lib/ansible/modules/database/mongodb/mongodb_user.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ansible/modules/database/mongodb/mongodb_user.py b/lib/ansible/modules/database/mongodb/mongodb_user.py index e821ef98d8a..b93601c4387 100644 --- a/lib/ansible/modules/database/mongodb/mongodb_user.py +++ b/lib/ansible/modules/database/mongodb/mongodb_user.py @@ -178,6 +178,7 @@ import os import ssl as ssl_lib import traceback from distutils.version import LooseVersion +from operator import itemgetter try: from pymongo.errors import ConnectionFailure @@ -319,7 +320,7 @@ def check_if_roles_changed(uinfo, roles, db_name): roles_as_list_of_dict = make_sure_roles_are_a_list_of_dict(roles, db_name) uinfo_roles = uinfo.get('roles', []) - if sorted(roles_as_list_of_dict) == sorted(uinfo_roles): + if sorted(roles_as_list_of_dict, key=itemgetter('db')) == sorted(uinfo_roles, key=itemgetter('db')): return False return True