)]}'
{"keystone/identity/backends/ldap.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6d34c45a770c7998e5e5d1dc159c22e6b449d9e9","unresolved":false,"context_lines":[{"line_number":343,"context_line":"            conn.unbind_s()"},{"line_number":344,"context_line":"        users \u003d []"},{"line_number":345,"context_line":"        for dn, member in attrs:"},{"line_number":346,"context_line":"            user_dns \u003d member[self.member_attribute] if member else []"},{"line_number":347,"context_line":"            for user_dn in user_dns:"},{"line_number":348,"context_line":"                if self.use_dumb_member and user_dn \u003d\u003d self.dumb_member:"},{"line_number":349,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAT3%2F%2F4HY%3D","line":346,"updated":"2013-12-28 17:41:48.000000000","message":"This will not always solve the issue.  If member is a non-empty dict but does not contain the member_attribute as a key, this will still raise an exception.  Suggest:\n\nuser_dns \u003d member.get(self.member_attribute, [])\n\n\nThat will ensure that if the key doesn\u0027t exist the loop is skipped and no exception is raised.","commit_id":"13573bd65492ff4868eb26f5d11318e7e086798a"},{"author":{"_account_id":9206,"name":"LIN, BO-CHUN","email":"sherry7737@gmail.com","username":"SherryLin"},"change_message_id":"c6428622312c30b38b112b59b91cc8969d85f704","unresolved":false,"context_lines":[{"line_number":343,"context_line":"            conn.unbind_s()"},{"line_number":344,"context_line":"        users \u003d []"},{"line_number":345,"context_line":"        for dn, member in attrs:"},{"line_number":346,"context_line":"            user_dns \u003d member[self.member_attribute] if member else []"},{"line_number":347,"context_line":"            for user_dn in user_dns:"},{"line_number":348,"context_line":"                if self.use_dumb_member and user_dn \u003d\u003d self.dumb_member:"},{"line_number":349,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAT3%2F%2F20U%3D","line":346,"in_reply_to":"AAAAT3%2F%2F4HY%3D","updated":"2013-12-30 03:19:46.000000000","message":"The search only get the member_attribute.\nSo, if there is no member_attribute in any group, the \"member\" is an empty dict.\nAnd your suggestion is good, I will follow your suggestion and commit code again.","commit_id":"13573bd65492ff4868eb26f5d11318e7e086798a"}],"keystone/tests/test_backend_ldap.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d4c4631e4a3a8db8be99004bff28d1a6b000d673","unresolved":false,"context_lines":[{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    def test_list_group_members_when_no_members(self):"},{"line_number":271,"context_line":"        # List group members when there is no member in the group."},{"line_number":272,"context_line":"        # It should not occur any exception"},{"line_number":273,"context_line":"        group_id \u003d None"},{"line_number":274,"context_line":"        group \u003d dict(name\u003duuid.uuid4().hex,"},{"line_number":275,"context_line":"                     domain_id\u003dCONF.identity.default_domain_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAT3%2F%2Fq9Y%3D","line":272,"updated":"2014-01-03 18:41:45.000000000","message":"could reword this to \"No exception should be raised.\"","commit_id":"17c2ec03454bfcf20970b9d91fb2d525b1fef746"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d4c4631e4a3a8db8be99004bff28d1a6b000d673","unresolved":false,"context_lines":[{"line_number":270,"context_line":"    def test_list_group_members_when_no_members(self):"},{"line_number":271,"context_line":"        # List group members when there is no member in the group."},{"line_number":272,"context_line":"        # It should not occur any exception"},{"line_number":273,"context_line":"        group_id \u003d None"},{"line_number":274,"context_line":"        group \u003d dict(name\u003duuid.uuid4().hex,"},{"line_number":275,"context_line":"                     domain_id\u003dCONF.identity.default_domain_id)"},{"line_number":276,"context_line":"        group_id \u003d self.identity_api.create_group(group_id, group)[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAT3%2F%2Fq9w%3D","line":273,"updated":"2014-01-03 18:41:45.000000000","message":"remove this line because it doesn\u0027t do anything.","commit_id":"17c2ec03454bfcf20970b9d91fb2d525b1fef746"}]}
