)]}'
{"keystone/identity/backends/ldap/core.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"ec1f66a9d28931e24df83f4a96cef0c3c328d34b","unresolved":false,"context_lines":[{"line_number":929,"context_line":"                    user_id \u003d self.user_api._dn_to_id(user_dn)"},{"line_number":930,"context_line":"                    users.append(self.user_api.get(user_id))"},{"line_number":931,"context_line":"                except exception.UserNotFound:"},{"line_number":932,"context_line":"                    LOG.warning(_(\"Group member \u0027%(user_dn)s\u0027 not found in\""},{"line_number":933,"context_line":"                                \" \u0027%(group_dn)s\u0027. The user should be removed\""},{"line_number":934,"context_line":"                                \" from the group. The user will be ignored.\") %"},{"line_number":935,"context_line":"                                dict(user_dn\u003duser_dn, group_dn\u003dgroup_dn))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FlyA%3D","line":932,"updated":"2013-05-02 17:30:19.000000000","message":"Is this going to fill up server logs?","commit_id":"9766e2038641896f2f7ed7cfbda65aac99fe8921"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1bc0784004245db9da02349e77e1b189ea716aa9","unresolved":false,"context_lines":[{"line_number":929,"context_line":"                    user_id \u003d self.user_api._dn_to_id(user_dn)"},{"line_number":930,"context_line":"                    users.append(self.user_api.get(user_id))"},{"line_number":931,"context_line":"                except exception.UserNotFound:"},{"line_number":932,"context_line":"                    LOG.warning(_(\"Group member \u0027%(user_dn)s\u0027 not found in\""},{"line_number":933,"context_line":"                                \" \u0027%(group_dn)s\u0027. The user should be removed\""},{"line_number":934,"context_line":"                                \" from the group. The user will be ignored.\") %"},{"line_number":935,"context_line":"                                dict(user_dn\u003duser_dn, group_dn\u003dgroup_dn))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2Fj9U%3D","line":932,"in_reply_to":"AAAAOn%2F%2FlyA%3D","updated":"2013-05-03 19:32:23.000000000","message":"ayoung - I looked through the code to see how often this might be called and it\u0027s not just the list group users operation, other operations wind up calling this (_delete_tokens_for_group was the first place). Since I\u0027m not sure how common this will be, I\u0027ll change it to a debug.","commit_id":"9766e2038641896f2f7ed7cfbda65aac99fe8921"}],"tests/test_backend_ldap.py":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"daa4c3dc9b1d75b349d07b288554a5e14fac92d7","unresolved":false,"context_lines":[{"line_number":534,"context_line":"    def test_get_roles_for_user_and_domain(self):"},{"line_number":535,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1101287\u0027)"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    def test_list_group_members_no_entry(self):"},{"line_number":538,"context_line":"        \"\"\"List group members with deleted user."},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"        If a group has a deleted entry for a member, the non-deleted members"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FpAM%3D","line":537,"updated":"2013-04-30 22:11:58.000000000","message":"I might go with missing_entry here instead of no_entry.","commit_id":"a2fc8f540adb56ffbcafe96598421965df995bf5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a1c44eaa36896df811a5c59337b2921560f87b40","unresolved":false,"context_lines":[{"line_number":534,"context_line":"    def test_get_roles_for_user_and_domain(self):"},{"line_number":535,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1101287\u0027)"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    def test_list_group_members_no_entry(self):"},{"line_number":538,"context_line":"        \"\"\"List group members with deleted user."},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"        If a group has a deleted entry for a member, the non-deleted members"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2Fo5s%3D","line":537,"in_reply_to":"AAAAOn%2F%2FpAM%3D","updated":"2013-04-30 23:13:38.000000000","message":"Done","commit_id":"a2fc8f540adb56ffbcafe96598421965df995bf5"},{"author":{"_account_id":6456,"name":"Sahdev Zala","email":"spzala@us.ibm.com","username":"spzala"},"change_message_id":"8838100dcd7408c270482d3508a736eec0b4f0bb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2012 OpenStack LLC"},{"line_number":4,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":7,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FoK0%3D","line":4,"updated":"2013-05-01 11:40:54.000000000","message":"Can we have it here? I doubt it but I am not sure. Giving -1 for this, will change if I am wrong.","commit_id":"9766e2038641896f2f7ed7cfbda65aac99fe8921"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"5ad8d5e86a31a2a68c544bd3c8985991ebd25f28","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2012 OpenStack LLC"},{"line_number":4,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":7,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FoKA%3D","line":4,"in_reply_to":"AAAAOn%2F%2FoK0%3D","updated":"2013-05-01 12:07:13.000000000","message":"there is no copyright assignment with openstack, so this is the correct thing to do (add individual copyright when changing files)","commit_id":"9766e2038641896f2f7ed7cfbda65aac99fe8921"},{"author":{"_account_id":6456,"name":"Sahdev Zala","email":"spzala@us.ibm.com","username":"spzala"},"change_message_id":"532de24d0bd6e43386dacaf250aa9ab0fb5d96c4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2012 OpenStack LLC"},{"line_number":4,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":7,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FoAk%3D","line":4,"in_reply_to":"AAAAOn%2F%2FoKA%3D","updated":"2013-05-01 14:42:55.000000000","message":"Ahhh.... Thanks, Sean! I didn\u0027t see anything similar in keystone code so was doubtful but this is great to know and will keep in mind!","commit_id":"9766e2038641896f2f7ed7cfbda65aac99fe8921"},{"author":{"_account_id":6456,"name":"Sahdev Zala","email":"spzala@us.ibm.com","username":"spzala"},"change_message_id":"8838100dcd7408c270482d3508a736eec0b4f0bb","unresolved":false,"context_lines":[{"line_number":561,"context_line":"        self.identity_api.add_user_to_group(user_2_id, group_id)"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"        # Delete user 2."},{"line_number":564,"context_line":"        self.identity_api.user.delete(user_2_id)"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        # List group users and verify only user 1."},{"line_number":567,"context_line":"        res \u003d self.identity_api.list_users_in_group(group_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FoKg%3D","line":564,"updated":"2013-05-01 11:40:54.000000000","message":"I think ideally we should check, when delete user, that if it\u0027s member of any group.. we remove it from group as well. But I am fine if we want to do that as a separate bug?","commit_id":"9766e2038641896f2f7ed7cfbda65aac99fe8921"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"167d8e992d94c85bf6c3fa1e47a97ddec61936e6","unresolved":false,"context_lines":[{"line_number":561,"context_line":"        self.identity_api.add_user_to_group(user_2_id, group_id)"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"        # Delete user 2."},{"line_number":564,"context_line":"        self.identity_api.user.delete(user_2_id)"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        # List group users and verify only user 1."},{"line_number":567,"context_line":"        res \u003d self.identity_api.list_users_in_group(group_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2Fn6o%3D","line":564,"in_reply_to":"AAAAOn%2F%2FoKg%3D","updated":"2013-05-01 15:02:12.000000000","message":"I\u0027d prefer that\u0027s a separate bug. Part of the issue with LDAP is that the administration of users and groups could be done directly to the LDAP directory rather than through Keystone. So the admin could delete the user entry and not update the group entry.","commit_id":"9766e2038641896f2f7ed7cfbda65aac99fe8921"}]}
