)]}'
{"keystone/identity/backends/ldap.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"c5aba5de23018a0f36556970f0c3908b7b6432a6","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":"    def get_all_filtered(self, hints):"},{"line_number":291,"context_line":"        query \u003d self.filter_query(hints, self.ldap_filter)"},{"line_number":292,"context_line":"#        query \u003d self.filter_query(hints)"},{"line_number":293,"context_line":"        return [self.filter_attributes(user)"},{"line_number":294,"context_line":"                for user in self.get_all(query, hints)]"},{"line_number":295,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"dab17558_f83e9726","line":292,"updated":"2016-05-10 10:50:36.000000000","message":"remove this","commit_id":"9c3f4f77eef36aa69bdda600f238f9e7934a17da"}],"keystone/tests/unit/test_backend_ldap.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"fb53492471d2c676a3f937dc177f5e62cf8db468","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                          self.identity_api.get_user,"},{"line_number":238,"context_line":"                          self.user_foo[\u0027id\u0027])"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def test_list_user_filter(self):"},{"line_number":241,"context_line":"        # Try without filter"},{"line_number":242,"context_line":"        hints \u003d driver_hints.Hints()"},{"line_number":243,"context_line":"        hints.add_filter(\u0027name\u0027, \u0027FOO\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_9c7c1622","line":240,"range":{"start_line":240,"start_character":8,"end_line":240,"end_character":29},"updated":"2016-05-06 12:06:57.000000000","message":"suggestion: test_list_users_with_filter or test_list_users_with_ldap_filter","commit_id":"61c2a8e6cf0e3afdaa5a37203dc83f9c90657c37"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"fb53492471d2c676a3f937dc177f5e62cf8db468","unresolved":false,"context_lines":[{"line_number":240,"context_line":"    def test_list_user_filter(self):"},{"line_number":241,"context_line":"        # Try without filter"},{"line_number":242,"context_line":"        hints \u003d driver_hints.Hints()"},{"line_number":243,"context_line":"        hints.add_filter(\u0027name\u0027, \u0027FOO\u0027)"},{"line_number":244,"context_line":"        users \u003d self.identity_api.list_users("},{"line_number":245,"context_line":"            domain_scope\u003dself._set_domain_scope("},{"line_number":246,"context_line":"                self.user_foo[\u0027domain_id\u0027]),"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_bcee3aea","line":243,"range":{"start_line":243,"start_character":33,"end_line":243,"end_character":38},"updated":"2016-05-06 12:06:57.000000000","message":"need to use self.user_foo[\u0027name\u0027] (or similar)","commit_id":"61c2a8e6cf0e3afdaa5a37203dc83f9c90657c37"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"fb53492471d2c676a3f937dc177f5e62cf8db468","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                self.user_foo[\u0027domain_id\u0027]),"},{"line_number":247,"context_line":"            hints\u003dhints)"},{"line_number":248,"context_line":"        self.assertEqual(self.user_foo[\u0027name\u0027], users[0][\u0027name\u0027])"},{"line_number":249,"context_line":"        # Try with filter"},{"line_number":250,"context_line":"        driver \u003d self.identity_api._select_identity_driver("},{"line_number":251,"context_line":"            users[0][\u0027domain_id\u0027])"},{"line_number":252,"context_line":"        driver.user.ldap_filter \u003d \u0027(CN\u003dDOES_NOT_MATCH)\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_bc9c7a6a","line":249,"updated":"2016-05-06 12:06:57.000000000","message":"add a new line here, also add more details to the comments or add a docstring to the test.","commit_id":"61c2a8e6cf0e3afdaa5a37203dc83f9c90657c37"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"fb53492471d2c676a3f937dc177f5e62cf8db468","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        # Try with filter"},{"line_number":250,"context_line":"        driver \u003d self.identity_api._select_identity_driver("},{"line_number":251,"context_line":"            users[0][\u0027domain_id\u0027])"},{"line_number":252,"context_line":"        driver.user.ldap_filter \u003d \u0027(CN\u003dDOES_NOT_MATCH)\u0027"},{"line_number":253,"context_line":"        users \u003d self.identity_api.list_users("},{"line_number":254,"context_line":"            domain_scope\u003dself._set_domain_scope("},{"line_number":255,"context_line":"                self.user_foo[\u0027domain_id\u0027]),"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_5cabce89","line":252,"range":{"start_line":252,"start_character":34,"end_line":252,"end_character":55},"updated":"2016-05-06 12:06:57.000000000","message":"would be nice to have a test where the filter returns something","commit_id":"61c2a8e6cf0e3afdaa5a37203dc83f9c90657c37"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"ad0c6143d51279b6a140f5b29d79016cd0b79efe","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def test_list_users_with_filter(self):"},{"line_number":241,"context_line":"        hints \u003d driver_hints.Hints()"},{"line_number":242,"context_line":"        hints.add_filter(\u0027name\u0027, self.user_foo[\u0027name\u0027])"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        # Try without filter"},{"line_number":245,"context_line":"        users \u003d self.identity_api.list_users("}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_848f8122","line":242,"range":{"start_line":242,"start_character":8,"end_line":242,"end_character":55},"updated":"2016-05-06 23:44:45.000000000","message":"if you remove this, you can list all users in the DEFAULT_DOMAIN_ID.","commit_id":"f3ff0afcb602cc066ccf1b66404ea61bd608610f"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"e91c869a7216f3e76ad509d8dbb986efcc640a73","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def test_list_users_with_filter(self):"},{"line_number":241,"context_line":"        hints \u003d driver_hints.Hints()"},{"line_number":242,"context_line":"        hints.add_filter(\u0027name\u0027, self.user_foo[\u0027name\u0027])"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        # Try without filter"},{"line_number":245,"context_line":"        users \u003d self.identity_api.list_users("}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_6cb19b8f","line":242,"range":{"start_line":242,"start_character":8,"end_line":242,"end_character":55},"in_reply_to":"dab17558_848f8122","updated":"2016-05-07 16:53:49.000000000","message":"yes... but that\u0027s not what we\u0027re trying to do here.","commit_id":"f3ff0afcb602cc066ccf1b66404ea61bd608610f"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"ad0c6143d51279b6a140f5b29d79016cd0b79efe","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        users \u003d self.identity_api.list_users("},{"line_number":246,"context_line":"            domain_scope\u003dself._set_domain_scope("},{"line_number":247,"context_line":"                self.user_foo[\u0027domain_id\u0027]),"},{"line_number":248,"context_line":"            hints\u003dhints)"},{"line_number":249,"context_line":"        self.assertEqual(len(users), 1)"},{"line_number":250,"context_line":"        self.assertEqual(self.user_foo[\u0027name\u0027], users[0][\u0027name\u0027])"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_04a431a4","line":248,"range":{"start_line":248,"start_character":12,"end_line":248,"end_character":24},"updated":"2016-05-06 23:44:45.000000000","message":"removing this will result in a list with five users (https://github.com/openstack/keystone/blob/master/keystone/tests/unit/default_fixtures.py#L62)","commit_id":"f3ff0afcb602cc066ccf1b66404ea61bd608610f"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"e91c869a7216f3e76ad509d8dbb986efcc640a73","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        users \u003d self.identity_api.list_users("},{"line_number":246,"context_line":"            domain_scope\u003dself._set_domain_scope("},{"line_number":247,"context_line":"                self.user_foo[\u0027domain_id\u0027]),"},{"line_number":248,"context_line":"            hints\u003dhints)"},{"line_number":249,"context_line":"        self.assertEqual(len(users), 1)"},{"line_number":250,"context_line":"        self.assertEqual(self.user_foo[\u0027name\u0027], users[0][\u0027name\u0027])"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_acab831c","line":248,"range":{"start_line":248,"start_character":12,"end_line":248,"end_character":24},"in_reply_to":"dab17558_04a431a4","updated":"2016-05-07 16:53:49.000000000","message":"yes... but that\u0027s not what we\u0027re trying to test","commit_id":"f3ff0afcb602cc066ccf1b66404ea61bd608610f"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"ad0c6143d51279b6a140f5b29d79016cd0b79efe","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        # Try with filter"},{"line_number":253,"context_line":"        driver \u003d self.identity_api._select_identity_driver("},{"line_number":254,"context_line":"            users[0][\u0027domain_id\u0027])"},{"line_number":255,"context_line":"        driver.user.ldap_filter \u003d \u0027(CN\u003d%s)\u0027 % self.user_sna"},{"line_number":256,"context_line":"        users \u003d self.identity_api.list_users("},{"line_number":257,"context_line":"            domain_scope\u003dself._set_domain_scope("},{"line_number":258,"context_line":"                self.user_foo[\u0027domain_id\u0027]),"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_c4b069e0","line":255,"range":{"start_line":255,"start_character":8,"end_line":255,"end_character":59},"updated":"2016-05-06 23:44:45.000000000","message":"adding this, the list_users() below should return only user_sna.","commit_id":"f3ff0afcb602cc066ccf1b66404ea61bd608610f"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"e91c869a7216f3e76ad509d8dbb986efcc640a73","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        # Try with filter"},{"line_number":253,"context_line":"        driver \u003d self.identity_api._select_identity_driver("},{"line_number":254,"context_line":"            users[0][\u0027domain_id\u0027])"},{"line_number":255,"context_line":"        driver.user.ldap_filter \u003d \u0027(CN\u003d%s)\u0027 % self.user_sna"},{"line_number":256,"context_line":"        users \u003d self.identity_api.list_users("},{"line_number":257,"context_line":"            domain_scope\u003dself._set_domain_scope("},{"line_number":258,"context_line":"                self.user_foo[\u0027domain_id\u0027]),"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_cc66c728","line":255,"range":{"start_line":255,"start_character":8,"end_line":255,"end_character":59},"in_reply_to":"dab17558_c4b069e0","updated":"2016-05-07 16:53:49.000000000","message":"if there were no further filtering based on the hints, yes... but we\u0027re going to do further filtering based on hints, so no.","commit_id":"f3ff0afcb602cc066ccf1b66404ea61bd608610f"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"ad0c6143d51279b6a140f5b29d79016cd0b79efe","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        users \u003d self.identity_api.list_users("},{"line_number":257,"context_line":"            domain_scope\u003dself._set_domain_scope("},{"line_number":258,"context_line":"                self.user_foo[\u0027domain_id\u0027]),"},{"line_number":259,"context_line":"            hints\u003dhints)"},{"line_number":260,"context_line":"        self.assertEqual(users, [])"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    def test_remove_role_grant_from_user_and_project(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_4477593a","line":259,"range":{"start_line":259,"start_character":12,"end_line":259,"end_character":23},"updated":"2016-05-06 23:44:45.000000000","message":"this is already filtering by the username, so the ldap_filter won\u0027t work.","commit_id":"f3ff0afcb602cc066ccf1b66404ea61bd608610f"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"e91c869a7216f3e76ad509d8dbb986efcc640a73","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        users \u003d self.identity_api.list_users("},{"line_number":257,"context_line":"            domain_scope\u003dself._set_domain_scope("},{"line_number":258,"context_line":"                self.user_foo[\u0027domain_id\u0027]),"},{"line_number":259,"context_line":"            hints\u003dhints)"},{"line_number":260,"context_line":"        self.assertEqual(users, [])"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    def test_remove_role_grant_from_user_and_project(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_4c73f7e7","line":259,"range":{"start_line":259,"start_character":12,"end_line":259,"end_character":23},"in_reply_to":"dab17558_4477593a","updated":"2016-05-07 16:53:49.000000000","message":"define \"won\u0027t work\"... If you mean that it won\u0027t return any users, then yes. But that\u0027s exactly what we are trying to prove/test.","commit_id":"f3ff0afcb602cc066ccf1b66404ea61bd608610f"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"0ae092816d597b62ccd7befe86aab38bfef8c8b2","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                          self.identity_api.get_user,"},{"line_number":238,"context_line":"                          self.user_foo[\u0027id\u0027])"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def test_list_users_with_filter(self):"},{"line_number":241,"context_line":"        hints \u003d driver_hints.Hints()"},{"line_number":242,"context_line":"        hints.add_filter(\u0027name\u0027, self.user_foo[\u0027name\u0027])"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_0f7281ad","line":240,"range":{"start_line":240,"start_character":8,"end_line":240,"end_character":35},"updated":"2016-05-07 17:32:43.000000000","message":"please change the test name to specify that it is testing list users by name and also using a ldap filter.","commit_id":"e97127e3750759c15fc3266dbcb8f2eaa7af58fc"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"b836ad462933bbf8ea3e8b9ac3a9df0ac3f3ccee","unresolved":false,"context_lines":[{"line_number":235,"context_line":"                          self.identity_api.get_user,"},{"line_number":236,"context_line":"                          self.user_foo[\u0027id\u0027])"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    def test_list_users_by_name_and_with_filter(self):"},{"line_number":239,"context_line":"        # confirm that the user is not exposed when it does not match the"},{"line_number":240,"context_line":"        # filter setting in conf even if it is requested by name in user list"},{"line_number":241,"context_line":"        hints \u003d driver_hints.Hints()"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_5c433eaf","line":238,"updated":"2016-05-26 14:23:57.000000000","message":"suggest the following order for this test:\n1 - set ldap_filter (limit for user_sna and user_two)\n2 - list all users\n3 - check that only two above were returned\n4 - add a hint for user_foo name\n5 - list all users with the hint above\n6 - check that no user was returned","commit_id":"322a744ba852a5a4e59c713a52168fa8db2552ca"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"3d3ffcd7a7339893b36519f40b65b600792cc75a","unresolved":false,"context_lines":[{"line_number":235,"context_line":"                          self.identity_api.get_user,"},{"line_number":236,"context_line":"                          self.user_foo[\u0027id\u0027])"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    def test_list_users_by_name_and_with_filter(self):"},{"line_number":239,"context_line":"        # confirm that the user is not exposed when it does not match the"},{"line_number":240,"context_line":"        # filter setting in conf even if it is requested by name in user list"},{"line_number":241,"context_line":"        hints \u003d driver_hints.Hints()"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_c82be8e9","line":238,"in_reply_to":"bab6814e_5c433eaf","updated":"2016-05-26 15:15:34.000000000","message":"what you\u0027re suggesting is a little different, but I did originally try to write something that showed a user IS exposed when it matches the filter setting in conf, to go along with the test here that it is NOT exposed when it doesn\u0027t match. Unfortunately the LDAP UT framework is such that that is not currently possible to get that to work (even with help from raildo and ayoung).  Would be a lot of work to fix that up and I didn\u0027t want to take that on here.","commit_id":"322a744ba852a5a4e59c713a52168fa8db2552ca"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"b836ad462933bbf8ea3e8b9ac3a9df0ac3f3ccee","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        hints.add_filter(\u0027name\u0027, self.user_foo[\u0027name\u0027])"},{"line_number":243,"context_line":"        domain_id \u003d self.user_foo[\u0027domain_id\u0027]"},{"line_number":244,"context_line":"        driver \u003d self.identity_api._select_identity_driver(domain_id)"},{"line_number":245,"context_line":"        driver.user.ldap_filter \u003d (\u0027(|(cn\u003d%s)(cn\u003d%s))\u0027 %"},{"line_number":246,"context_line":"                                   (self.user_sna[\u0027id\u0027], self.user_two[\u0027id\u0027]))"},{"line_number":247,"context_line":"        users \u003d self.identity_api.list_users("},{"line_number":248,"context_line":"            domain_scope\u003dself._set_domain_scope(domain_id),"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_bc886a23","line":245,"updated":"2016-05-26 14:23:57.000000000","message":"nit: add a comment explaining the ldap_filter will limit the search to only user_sna and user_two","commit_id":"322a744ba852a5a4e59c713a52168fa8db2552ca"}]}
