)]}'
{"keystone/identity/backends/ldap/common.py":[{"author":{"_account_id":25011,"name":"Drew Freiberger","email":"drew.freiberger@canonical.com","username":"afreiberger"},"change_message_id":"897df743ffc86eaa4a728d8ad5631d2b09685994","unresolved":false,"context_lines":[{"line_number":1305,"context_line":"        attrs \u003d list(set([self.id_attr]))"},{"line_number":1306,"context_line":"        with self.get_connection() as conn:"},{"line_number":1307,"context_line":"            res \u003d conn.search_s(dn,"},{"line_number":1308,"context_line":"                                ldap.SCOPE_SUBTREE,"},{"line_number":1309,"context_line":"                                query,"},{"line_number":1310,"context_line":"                                attrs)"},{"line_number":1311,"context_line":"        _, attrs \u003d res[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_1db3764f","line":1308,"updated":"2019-06-20 14:17:29.000000000","message":"this should be ldap.SCOPE_BASE since you\u0027re querying the object directly.","commit_id":"8b89509a65df9e81a0824d8f0768a33bce264982"},{"author":{"_account_id":25011,"name":"Drew Freiberger","email":"drew.freiberger@canonical.com","username":"afreiberger"},"change_message_id":"897df743ffc86eaa4a728d8ad5631d2b09685994","unresolved":false,"context_lines":[{"line_number":1309,"context_line":"                                query,"},{"line_number":1310,"context_line":"                                attrs)"},{"line_number":1311,"context_line":"        _, attrs \u003d res[0]"},{"line_number":1312,"context_line":"        uid \u003d attrs[\u0027uid\u0027][0]"},{"line_number":1313,"context_line":"        return uid"},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_22717b0d","line":1312,"updated":"2019-06-20 14:17:29.000000000","message":"I believe that you\u0027ll want to query out the self.id_attr which was requested in attrs, not the static value \u0027uid\u0027.  I\u0027d also name the result user_id, as that\u0027s what keystone would refer to this attribute as, in order to avoid confusion.\n\nuser_id \u003d attrs[self.id_attr][0]","commit_id":"8b89509a65df9e81a0824d8f0768a33bce264982"},{"author":{"_account_id":25011,"name":"Drew Freiberger","email":"drew.freiberger@canonical.com","username":"afreiberger"},"change_message_id":"f69391b0f1ba0c3f670d5f47801c44115a0b70af","unresolved":false,"context_lines":[{"line_number":1309,"context_line":"                                query,"},{"line_number":1310,"context_line":"                                attrs)"},{"line_number":1311,"context_line":"        _, attrs \u003d res[0]"},{"line_number":1312,"context_line":"        uid \u003d attrs[\u0027uid\u0027][0]"},{"line_number":1313,"context_line":"        return uid"},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_01c0f47b","line":1312,"in_reply_to":"9fb8cfa7_22717b0d","updated":"2019-06-20 14:47:52.000000000","message":"Given the FIXME at line 1331 in _ldap_res_to_model, i think we need to adopt the logic:\n\nif len(attrs[self.id_attr]) \u003e 1:\n  user_id \u003d ldap.dn.str2dn(dn)[0][0][1]","commit_id":"8b89509a65df9e81a0824d8f0768a33bce264982"},{"author":{"_account_id":25011,"name":"Drew Freiberger","email":"drew.freiberger@canonical.com","username":"afreiberger"},"change_message_id":"897df743ffc86eaa4a728d8ad5631d2b09685994","unresolved":false,"context_lines":[{"line_number":1310,"context_line":"                                attrs)"},{"line_number":1311,"context_line":"        _, attrs \u003d res[0]"},{"line_number":1312,"context_line":"        uid \u003d attrs[\u0027uid\u0027][0]"},{"line_number":1313,"context_line":"        return uid"},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":""},{"line_number":1316,"context_line":"    def _ldap_res_to_model(self, res):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_9db8c6e5","line":1313,"updated":"2019-06-20 14:17:29.000000000","message":"again, update to return user_id","commit_id":"8b89509a65df9e81a0824d8f0768a33bce264982"},{"author":{"_account_id":25011,"name":"Drew Freiberger","email":"drew.freiberger@canonical.com","username":"afreiberger"},"change_message_id":"e42a221bc3c4cc4c4bb31e28bba698940142e5b0","unresolved":false,"context_lines":[{"line_number":1309,"context_line":"                                query,"},{"line_number":1310,"context_line":"                                attrs)"},{"line_number":1311,"context_line":"        _, attrs \u003d res[0]"},{"line_number":1312,"context_line":"        user_id \u003d attrs[self.id_attr][0]"},{"line_number":1313,"context_line":"        return user_id"},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_7033b414","line":1312,"updated":"2019-06-20 19:44:47.000000000","message":"We are still going to need to fall-back to _dn_to_rdn_id() result with the same logic as _ldap_res_to_model\n\nSuggest:\n\nif len(attrs[self.id_attr]) \u003d 1:\n    user_id \u003d attrs[self.id_attr][0]\nelse:\n    user_id \u003d self._dn_to_rdn(dn)","commit_id":"12f638dacae4094774da9fd2a79405102f7e043f"},{"author":{"_account_id":25011,"name":"Drew Freiberger","email":"drew.freiberger@canonical.com","username":"afreiberger"},"change_message_id":"3e8872d99b69d865e95ca53a905d913a1de81d9d","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"        if len(attrs[self.id_attr]) \u003d 1:"},{"line_number":1313,"context_line":"            user_id \u003d attrs[self.id_attr][0]"},{"line_number":1314,"context_line":"        else:"},{"line_number":1315,"context_line":"            user_id \u003d self._dn_to_rdn(dn)"},{"line_number":1316,"context_line":"        return user_id"},{"line_number":1317,"context_line":""},{"line_number":1318,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_92a85978","line":1315,"updated":"2019-06-26 16:09:58.000000000","message":"this should be _dn_to_rdn_id  missing _id","commit_id":"24101b57b46f3859e95ef7b6940a9afac8fc0871"}]}
