)]}'
{"keystone/common/ldap/core.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"b9ce7bf7efb034c18c8aadf54f5442b0a170c8aa","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                              ldap_filter.escape_filter_chars(name)))"},{"line_number":284,"context_line":"        res \u003d self.get_all(query)"},{"line_number":285,"context_line":"        try:"},{"line_number":286,"context_line":"            return res[0]"},{"line_number":287,"context_line":"        except IndexError:"},{"line_number":288,"context_line":"            raise self._not_found(name)"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAANH%2F%2F%2BPk%3D","line":286,"updated":"2013-02-28 23:10:03.000000000","message":"Don\u0027t you have to ensure len(res) is always 1? What if there are two or more users found?","commit_id":"1201d72a261a49cb7c30a88be8433486d9085f1f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"f81140b4bf8f43c42cbe3113a10af742b2e39b1d","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                              ldap_filter.escape_filter_chars(name)))"},{"line_number":284,"context_line":"        res \u003d self.get_all(query)"},{"line_number":285,"context_line":"        try:"},{"line_number":286,"context_line":"            return res[0]"},{"line_number":287,"context_line":"        except IndexError:"},{"line_number":288,"context_line":"            raise self._not_found(name)"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F%2BZk%3D","line":286,"in_reply_to":"AAAAN3%2F%2F%2BZ0%3D","updated":"2013-03-04 21:21:07.000000000","message":"The impact of the bug should be limited to v2, as v3 is expected to return a list when querying by name (and it wouldn\u0027t use get_by_name anyway)","commit_id":"1201d72a261a49cb7c30a88be8433486d9085f1f"},{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"b0a38428d7aea7e6fd46f072ac7713e899e6fe35","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                              ldap_filter.escape_filter_chars(name)))"},{"line_number":284,"context_line":"        res \u003d self.get_all(query)"},{"line_number":285,"context_line":"        try:"},{"line_number":286,"context_line":"            return res[0]"},{"line_number":287,"context_line":"        except IndexError:"},{"line_number":288,"context_line":"            raise self._not_found(name)"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAANH%2F%2F9w0%3D","line":286,"in_reply_to":"AAAANH%2F%2F%2BPk%3D","updated":"2013-03-01 08:19:50.000000000","message":"We never did this check and I don\u0027t believe it\u0027s necessary since even if someone managed to create two elements with the same name (shoot one\u0027s leg), we shouldn\u0027t prevent one from fetching any one of them by name.","commit_id":"1201d72a261a49cb7c30a88be8433486d9085f1f"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"6667dd407509995b824a07e513e6fec550cf5852","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                              ldap_filter.escape_filter_chars(name)))"},{"line_number":284,"context_line":"        res \u003d self.get_all(query)"},{"line_number":285,"context_line":"        try:"},{"line_number":286,"context_line":"            return res[0]"},{"line_number":287,"context_line":"        except IndexError:"},{"line_number":288,"context_line":"            raise self._not_found(name)"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F%2BZ0%3D","line":286,"in_reply_to":"AAAANH%2F%2F9Qk%3D","updated":"2013-03-04 21:18:30.000000000","message":"Lets file a bug for this, but not hold up this change.","commit_id":"1201d72a261a49cb7c30a88be8433486d9085f1f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"961e508c04871d65a9ef4099f09c92cfa2b69098","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                              ldap_filter.escape_filter_chars(name)))"},{"line_number":284,"context_line":"        res \u003d self.get_all(query)"},{"line_number":285,"context_line":"        try:"},{"line_number":286,"context_line":"            return res[0]"},{"line_number":287,"context_line":"        except IndexError:"},{"line_number":288,"context_line":"            raise self._not_found(name)"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAANH%2F%2F9Qk%3D","line":286,"in_reply_to":"AAAANH%2F%2F9w0%3D","updated":"2013-03-01 16:10:08.000000000","message":"I also think it\u0027s a bug, but it was not introduced by this change. If multiple users matched the filter then this function will return whichever the server decided to return first and the order returned could be random. We should look at how other LDAP authenticators work (like Apache mod_authnz_ldap).","commit_id":"1201d72a261a49cb7c30a88be8433486d9085f1f"}]}
